Multivan және Mikrotik RouterOS жүйесінде маршруттау

Кіріспе

Мақаланы қабылдауға бос әурешіліктен басқа, орыстілді телеграмма қауымдастығының бейіндік топтарындағы осы тақырып бойынша сұрақтардың жиілігі себеп болды. Мақала жаңадан Mikrotik RouterOS (бұдан әрі - ROS) әкімшілеріне арналған. Ол маршрутизацияға баса назар аудара отырып, тек мультиванға қатысты. Бонус ретінде қауіпсіз және ыңғайлы жұмысты қамтамасыз ету үшін ең аз жеткілікті параметрлер бар. Кезектер, жүктемені теңестіру, вландар, көпірлер, арна жағдайын көп сатылы терең талдау және т.б. тақырыптарын ашуды іздейтіндер уақыт пен күш-жігерді оқуды ысырап етпеуі мүмкін.

Бастапқы деректер

Сынақ субъектісі ретінде ROS 6.45.3 нұсқасы бар бес портты Mikrotik маршрутизаторы таңдалды. Ол екі жергілікті желі (LAN1 және LAN2) және үш провайдер (ISP1, ISP2, ISP3) арасындағы трафикті бағыттайды. ISP1 арнасының статикалық «сұр» мекенжайы бар, ISP2 - «ақ», DHCP арқылы алынған, ISP3 - PPPoE рұқсатымен «ақ». Қосылу схемасы суретте көрсетілген:

Multivan және Mikrotik RouterOS жүйесінде маршруттау

Тапсырма MTK маршрутизаторын схема негізінде конфигурациялау болып табылады:

  1. Сақтық көшірме провайдеріне автоматты түрде ауысуды қамтамасыз етіңіз. Негізгі провайдер - ISP2, бірінші резерв - ISP1, екінші резерв - ISP3.
  2. LAN1 желісіне Интернетке кіруді тек ISP1 арқылы ұйымдастырыңыз.
  3. Мекенжай тізімі негізінде таңдалған провайдер арқылы жергілікті желілерден Интернетке трафикті бағыттау мүмкіндігін қамтамасыз етіңіз.
  4. Жергілікті желіден Интернетке (DSTNAT) қызметтерді жариялау мүмкіндігін қамтамасыз ету
  5. Интернеттен минималды жеткілікті қауіпсіздікті қамтамасыз ету үшін брандмауэр сүзгісін орнатыңыз.
  6. Маршрутизатор таңдалған бастапқы мекенжайға байланысты үш провайдердің кез келгені арқылы өз трафигін шығара алады.
  7. Жауап пакеттерінің олар келген арнаға (соның ішінде LAN) бағытталуын қамтамасыз етіңіз.

ЕСКЕРТУ. Нұсқадан нұсқаға ауысатын «қораптан тыс» бастапқы конфигурацияларда тосынсыйлардың болмауына кепілдік беру үшін біз маршрутизаторды «нөлден» конфигурациялаймыз. Winbox конфигурациялау құралы ретінде таңдалды, онда өзгерістер визуалды түрде көрсетіледі. Параметрлердің өзі Winbox терминалындағы пәрмендер арқылы орнатылады. Конфигурацияға арналған физикалық қосылым Ether5 интерфейсіне тікелей қосылу арқылы жүзеге асырылады.

Мультиван деген не, бұл мәселе ме, әлде қастандық желілерін тоқып жатқан айлакер ақылды адамдар ма, туралы аздап пайымдау.

Ізденімпаз және мұқият әкімші осындай немесе ұқсас схеманы өз бетімен орнатып, кенеттен оның қалыпты жұмыс істеп тұрғанын түсінеді. Иә, иә, реттелетін маршруттау кестелерісіз және осы тақырыптағы мақалалардың көпшілігі толы басқа маршрут ережелерінсіз. Тексерейік?

Интерфейстер мен әдепкі шлюздерде адрестеуді теңшей аламыз ба? Иә:

ISP1 жүйесінде мекенжай мен шлюз тіркелді қашықтық=2 и тексеру шлюзі = пинг.
ISP2 жүйесінде әдепкі dhcp клиент параметрі - тиісінше қашықтық бірге тең болады.
ISP3 жүйесінде pppoe клиент параметрлерінде қашан add-default-route=иә қою әдепкі-бағыт-қашықтық=3.

Шығу кезінде NAT тіркеуді ұмытпаңыз:

/ip брандмауэр nat қосу әрекеті=маскарад тізбегі=srcnat out-interface-list=WAN

Нәтижесінде жергілікті сайттардың пайдаланушылары негізгі ISP2 провайдері арқылы мысықтарды жүктеп алуды ұнатады және механизм арқылы арналарды брондау мүмкіндігі бар. шлюзді тексеру 1 ескертуді қараңыз

Тапсырманың 1 тармағы орындалды. Таңбалары бар мультиван қайда? Жоқ…

Әрі қарай. ISP1 арқылы жергілікті желіден арнайы клиенттерді шығару керек:

/ip брандмауэрінің басқару элементі қосу әрекеті=бағдар тізбегі=dst-адрес-тізімін алдын ала бағыттау=!BOGONS
өту=иә route-dst=100.66.66.1 src-address-list=Va_ISP1
/ip брандмауэрінің басқару элементі қосу әрекеті=бағдар тізбегі=dst-адрес-тізімін алдын ала бағыттау=!BOGONS
өту=бағыт жоқ-dst=100.66.66.1 src-мекен-жайы=192.168.88.0/24

Тапсырманың 2 және 3 тармақтары орындалды. Этикеткалар, штамптар, маршрут ережелері, қайдасың?!

Интернеттен клиенттер үшін 172.17.17.17 мекенжайы бар сүйікті OpenVPN серверіне кіруге рұқсат беру керек пе? Өтінемін:

/ip бұлтты жинағы ddns-enabled=иә

Теңдес ретінде біз клиентке келесі нәтижені береміз: «:қойыңыз [ip бұлтты алу dns-атын]«

Интернеттен портты қайта жіберуді тіркейміз:

/ip брандмауэр nat қосу әрекеті = dst-nat тізбегі = dstnat dst-port = 1194
in-interface-list=WAN протоколы=udp to-addresses=172.17.17.17

4-тармақ дайын.

Біз 5-тармақ үшін брандмауэр мен басқа қауіпсіздікті орнаттық, сонымен бірге бәрі пайдаланушылар үшін жұмыс істеп жатқанына және сүйікті сусыны бар контейнерге қол жеткізгеніне қуаныштымыз ...
А! Туннельдер ұмытылды.

Google мақаласы арқылы конфигурацияланған l2tp-client сіздің сүйікті голландтық VDS-ке көтерілді ме? Иә.
IPsec бар l2tp-сервері көтерілді және IP бұлтынан DNS атауы бойынша клиенттер (жоғарыдан қараңыз) жабысып қалды ма? Иә.
Орындығымызға сүйеніп, ішімдік ішіп отырып, біз тапсырманың 6 және 7 тармақтарын жалқаулықпен қарастырамыз. Біз ойлаймыз - бұл бізге керек пе? Бәрібір, ол солай жұмыс істейді (c) ... Сонымен, егер ол әлі де қажет болмаса, онда бұл болды. Мультиван енгізілді.

Мультиван дегеніміз не? Бұл бірнеше Интернет арналарын бір маршрутизаторға қосу.

Мақаланы одан әрі оқудың қажеті жоқ, өйткені күмәнді қолдану мүмкіндігін көрсетуден басқа не болуы мүмкін?

Тапсырманың 6 және 7 тармақтарына қызығушылық танытатын, сондай-ақ перфекционизмнің қышуын сезінгендер үшін біз тереңірек сүңгеміз.

Мультиванды енгізудің ең маңызды міндеті - трафикті дұрыс бағыттау. Атап айтқанда: қайсысына (немесе қайсысына) қарамастан қараңыз. Ескертпе 3 Интернет провайдерінің арналары біздің маршрутизатордағы әдепкі маршрутты қарастырады, ол пакет келген нақты арнаға жауап қайтаруы керек. Тапсырма түсінікті. Мәселе қайда? Шынында да, қарапайым жергілікті желіде тапсырма бірдей, бірақ ешкім қосымша параметрлермен алаңдамайды және қиындықты сезінбейді. Айырмашылығы мынада: Интернеттегі кез келген бағытталатын түйінге қарапайым жергілікті желідегідей нақты бір арна арқылы емес, біздің әрбір арнамыз арқылы қол жеткізуге болады. «Ақаулық» мынада, егер бізге ISP3 IP мекенжайына сұраныс келсе, біздің жағдайда жауап ISP2 арнасы арқылы өтеді, өйткені әдепкі шлюз сонда бағытталған. Жапырақтар және провайдер қате деп тастайды. Мәселе анықталды. Оны қалай шешуге болады?

Шешім үш кезеңге бөлінеді:

  1. Алдын ала орнату. Бұл кезеңде маршрутизатордың негізгі параметрлері орнатылады: жергілікті желі, брандмауэр, мекенжай тізімдері, шаш қыстырғышы NAT және т.б.
  2. Мультиван. Бұл кезеңде қажетті қосылымдар белгіленіп, маршруттау кестелеріне сұрыпталады.
  3. Интернет провайдеріне қосылу. Бұл кезеңде Интернетке қосылуды қамтамасыз ететін интерфейстер конфигурацияланады, маршруттау және интернет арналарын брондау механизмі іске қосылады.

1. Алдын ала орнату

1.1. Біз маршрутизатор конфигурациясын пәрменмен тазалаймыз:

/system reset-configuration skip-backup=yes no-defaults=yes

келісемін»Қауіпті! Бәрібір қалпына келтіру керек пе? [y/N]:” және қайта жүктегеннен кейін біз Winbox-қа MAC арқылы қосыламыз. Бұл кезеңде конфигурация мен пайдаланушы базасы тазартылады.

1.2. Жаңа пайдаланушы жасау:

/user add group=full name=knight password=ultrasecret comment=”Not horse”

оның астына кіріп, әдепкісін жойыңыз:

/user remove admin

ЕСКЕРТУ. Автор қауіпсіз деп санайтын және пайдалануды ұсынатын әдепкі пайдаланушыны өшіру және өшірмеу.

1.3. Брандмауэрде, табу параметрлерінде және басқа MAC серверлерінде жұмыс істеу ыңғайлылығы үшін біз негізгі интерфейс тізімдерін жасаймыз:

/interface list add name=WAN comment="For Internet"
/interface list add name=LAN comment="For Local Area"

Түсініктемелері бар интерфейстерге қол қою

/interface ethernet set ether1 comment="to ISP1"
/interface ethernet set ether2 comment="to ISP2"
/interface ethernet set ether3 comment="to ISP3"
/interface ethernet set ether4 comment="to LAN1"
/interface ethernet set ether5 comment="to LAN2"

және интерфейс тізімдерін толтырыңыз:

/interface list member add interface=ether1 list=WAN comment=ISP1
/interface list member add interface=ether2 list=WAN comment=ISP2 
/interface list member add interface=ether3 list=WAN comment="to ISP3"
/interface list member add interface=ether4 list=LAN  comment="LAN1"
/interface list member add interface=ether5 list=LAN  comment="LAN2"

ЕСКЕРТУ. Түсінікті пікірлер жазу бұған жұмсалған уақытты қажет етеді, сонымен қатар ол ақауларды жоюды және конфигурацияны түсінуді айтарлықтай жеңілдетеді.

Автор қауіпсіздік мақсатында ether3 интерфейсін IP протоколы арқылы өтпейтініне қарамастан, «WAN» интерфейс тізіміне қосу қажет деп санайды.

Ether3-де PPP интерфейсі көтерілгеннен кейін оны «WAN» интерфейстер тізіміне қосу керек екенін ұмытпаңыз.

1.4. Біз маршрутизаторды MAC арқылы провайдер желілерінен көршілерді анықтаудан және басқарудан жасырамыз:

/ip neighbor discovery-settings set discover-interface-list=!WAN
/tool mac-server set allowed-interface-list=LAN
/tool mac-server mac-winbox set allowed-interface-list=LAN

1.5. Маршрутизаторды қорғау үшін брандмауэр сүзгі ережелерінің ең аз жеткілікті жиынтығын жасаймыз:

/ip firewall filter add action=accept chain=input comment="Related Established Untracked Allow" 
connection-state=established,related,untracked

(ереже қосылған желілерден де, маршрутизатордан да басталатын орнатылған және қатысты қосылымдарға рұқсат береді)

/ip firewall filter add action=accept chain=input comment="ICMP from ALL" protocol=icmp

(пинг және тек қана пинг емес. Барлық icmp рұқсат етілген. MTU мәселелерін табу үшін өте пайдалы)

/ip firewall filter add action=drop chain=input comment="All other WAN Drop" in-interface-list=WAN

(енгізу тізбегін жабатын ереже Интернеттен келетін барлық басқа нәрселерге тыйым салады)

/ip firewall filter add action=accept chain=forward 
comment="Established, Related, Untracked allow" 
connection-state=established,related,untracked

(ереже маршрутизатор арқылы өтетін орнатылған және байланысты қосылымдарға мүмкіндік береді)

/ip firewall filter add action=drop chain=forward comment="Invalid drop" connection-state=invalid

(ереже маршрутизатор арқылы өтетін қосылым күйі=жарамсыз қосылымдарды қалпына келтіреді. Оны Mikrotik қатты ұсынады, бірақ кейбір сирек жағдайларда пайдалы трафикті блоктай алады)

/ip firewall filter add action=drop chain=forward comment="Drop all from WAN not DSTNATed"  
connection-nat-state=!dstnat connection-state=new in-interface-list=WAN

(ереже Интернеттен келетін және dstnat процедурасынан өтпеген пакеттерге маршрутизатор арқылы өтуге тыйым салады. Бұл жергілікті желілерді біздің сыртқы желілерімізбен бір хабар тарату доменінде бола отырып, сыртқы IP мекенжайларын тіркеуші ретінде тіркейтін зиянкестерден қорғайды. шлюз және осылайша, біздің жергілікті желілерді «зерттеуге» тырысыңыз.)

ЕСКЕРТУ. LAN1 және LAN2 желілері сенімді және олардың арасындағы және олардан келетін трафик сүзгіленбеген деп есептейік.

1.6. Бағытталмайтын желілер тізімімен тізім жасаңыз:

/ip firewall address-list
add address=0.0.0.0/8 comment=""This" Network" list=BOGONS
add address=10.0.0.0/8 comment="Private-Use Networks" list=BOGONS
add address=100.64.0.0/10 comment="Shared Address Space. RFC 6598" list=BOGONS
add address=127.0.0.0/8 comment=Loopback list=BOGONS
add address=169.254.0.0/16 comment="Link Local" list=BOGONS
add address=172.16.0.0/12 comment="Private-Use Networks" list=BOGONS
add address=192.0.0.0/24 comment="IETF Protocol Assignments" list=BOGONS
add address=192.0.2.0/24 comment=TEST-NET-1 list=BOGONS
add address=192.168.0.0/16 comment="Private-Use Networks" list=BOGONS
add address=198.18.0.0/15 comment="Network Interconnect Device Benchmark Testing"
 list=BOGONS
add address=198.51.100.0/24 comment=TEST-NET-2 list=BOGONS
add address=203.0.113.0/24 comment=TEST-NET-3 list=BOGONS
add address=224.0.0.0/4 comment=Multicast list=BOGONS
add address=192.88.99.0/24 comment="6to4 Relay Anycast" list=BOGONS
add address=240.0.0.0/4 comment="Reserved for Future Use" list=BOGONS
add address=255.255.255.255 comment="Limited Broadcast" list=BOGONS

(Бұл Интернетке бағытталмайтын және сәйкесінше орындалатын мекенжайлар мен желілердің тізімі.)

ЕСКЕРТУ. Тізім өзгеруі мүмкін, сондықтан мен сізге өзектілігін мерзімді түрде тексеруге кеңес беремін.

1.7. Маршрутизатордың өзі үшін DNS орнатыңыз:

/ip dns set servers=1.1.1.1,8.8.8.8

ЕСКЕРТУ. ROS-тың ағымдағы нұсқасында динамикалық серверлер статикалық серверлерден басымдылыққа ие. Атауды шешу сұрауы тізімдегі ретпен бірінші серверге жіберіледі. Келесі серверге көшу ағымдағы сервер қол жетімді болмаған кезде жүзеге асырылады. Күту уақыты үлкен - 5 секундтан астам. «Құлаған сервер» қайта қосылғанда, кері қайтару автоматты түрде болмайды. Бұл алгоритмді және мультиванның болуын ескере отырып, автор провайдерлер ұсынған серверлерді пайдаланбауды ұсынады.

1.8. Жергілікті желіні орнатыңыз.
1.8.1. Біз LAN интерфейстерінде статикалық IP мекенжайларын конфигурациялаймыз:

/ip address add interface=ether4 address=192.168.88.254/24 comment="LAN1 IP"
/ip address add interface=ether5 address=172.16.1.0/23 comment="LAN2 IP"

1.8.2. Біз негізгі маршруттау кестесі арқылы жергілікті желілерге маршруттардың ережелерін орнатамыз:

/ip route rule add dst-address=192.168.88.0/24 table=main comment=”to LAN1”
/ip route rule add dst-address=172.16.0.0/23 table=main comment="to LAN2"

ЕСКЕРТУ. Бұл әдепкі маршрут арқылы өтпейтін маршрутизатор интерфейстерінің сыртқы IP мекенжайларының көздері бар LAN мекенжайларына қол жеткізудің жылдам және оңай тәсілдерінің бірі.

1.8.3. LAN1 және LAN2 үшін Hairpin NAT қосу:

/ip firewall nat add action=src-nat chain=srcnat comment="Hairpin to LAN1" 
out-interface=ether4 src-address=192.168.88.0/24 to-addresses=192.168.88.254
/ip firewall nat add action=src-nat chain=srcnat comment="Hairpin to LAN2" 
out-interface=ether5 src-address=172.16.0.0/23 to-addresses=172.16.1.0

ЕСКЕРТУ. Бұл желі ішінде болған кезде сыртқы IP арқылы ресурстарға (dstnat) қол жеткізуге мүмкіндік береді.

2. Шын мәнінде, өте дұрыс мультиванды жүзеге асыру

«Олар сұраған жерден жауап беру» мәселесін шешу үшін біз екі ROS құралын қолданамыз: қосылу белгісі и бағыттау белгісі. қосылу белгісі қажетті қосылымды белгілеуге, содан кейін қолдану шарты ретінде осы белгімен жұмыс істеуге мүмкіндік береді бағыттау белгісі. Және қазірдің өзінде бағыттау белгісі жұмыс істеуге болады ip бағыты и маршрут ережелері. Біз құралдарды анықтадық, енді қандай қосылымдарды белгілеу керектігін шешу керек - бір рет, дәл қай жерде белгілеу керек - екі.

Біріншісі арқылы бәрі қарапайым - біз маршрутизаторға Интернеттен тиісті арна арқылы келетін барлық қосылымдарды белгілеуіміз керек. Біздің жағдайда бұл үш белгі болады (арналар саны бойынша): «conn_isp1», «conn_isp2» және «conn_isp3».

Екінші нюанс мынада, кіріс қосылымдары екі түрлі болады: транзиттік және маршрутизатордың өзіне арналған. Қосылу белгісінің механизмі кестеде жұмыс істейді манжа. Пакеттің қозғалысын mikrotik-trainings.com ресурсының мамандары жасаған оңайлатылған диаграммада қарастырыңыз (жарнама емес):

Multivan және Mikrotik RouterOS жүйесінде маршруттау

Көрсеткілерден кейін пакеттің «енгізу интерфейсі”, тізбек арқылы өтеді”Алдын ала бағыттау» және содан кейін ғана ол блокта транзиттік және жергілікті болып бөлінеді «Маршруттау туралы шешім«. Сондықтан екі құсты бір таспен өлтіру үшін біз пайдаланамыз Қосылу белгісі кестеде Mangle алдын ала бағыттау тізбектер Алдын ала бағыттау.

Ескерту:. ROS жүйесінде «Бағыттау белгісі» белгілері Ip/Маршруттар/Ережелер бөлімінде «Кесте» ретінде және басқа бөлімдерде «Бағыттау белгісі» ретінде берілген. Бұл түсінуге кейбір шатасулар әкелуі мүмкін, бірақ шын мәнінде, бұл бірдей нәрсе және Linux жүйесіндегі iproute2 ішіндегі rt_tables аналогы.

2.1. Біз провайдердің әрқайсысынан кіріс қосылымдарын белгілейміз:

/ip firewall mangle add action=mark-connection chain=prerouting 
comment="Connmark in from ISP1" connection-mark=no-mark in-interface=ether1  new-connection-mark=conn_isp1 passthrough=no

/ip firewall mangle add action=mark-connection chain=prerouting 
comment="Connmark in from ISP2" connection-mark=no-mark in-interface=ether2  new-connection-mark=conn_isp2 passthrough=no

/ip firewall mangle add action=mark-connection chain=prerouting 
comment="Connmark in from ISP3" connection-mark=no-mark in-interface=pppoe-isp3  new-connection-mark=conn_isp3 passthrough=no

ЕСКЕРТУ. Белгіленген қосылымдарды белгілемеу үшін мен қосылым-күй=жаңа орнына қосылым белгісі=белгісіз жағдайын қолданамын, себебі бұл дұрысырақ деп ойлаймын, сонымен қатар кіріс сүзгісінде жарамсыз қосылымдарды қабылдамау.


passthrough=жоқ - себебі бұл іске асыру әдісінде қайта белгілеу алынып тасталады және жылдамдату үшін бірінші сәйкестіктен кейін ережелерді санауды тоқтатуға болады.

Біз әзірге маршруттауға ешқандай кедергі келтірмейтінімізді есте ұстаған жөн. Қазір тек дайындық кезеңдері қалды. Іске асырудың келесі кезеңі жергілікті желідегі межелі жерден белгіленген байланыс арқылы қайтарылатын транзиттік трафикті өңдеу болады. Анау. жол бойында маршрутизатор арқылы өткен пакеттер (диаграмманы қараңыз):

“Кіріс интерфейсі”=>”Алдын ала бағыттау”=>”Бағыттау шешімі”=>”Алға”=>”Бағдарламадан кейінгі”=>”Шығару интерфейсі” және жергілікті желідегі адресатқа жетті.

Маңызды! ROS жүйесінде сыртқы және ішкі интерфейстерге логикалық бөлу жоқ. Жоғарыдағы диаграммаға сәйкес жауап пакетінің жолын қадағалайтын болсақ, онда ол сұрау сияқты логикалық жолмен жүреді:

“Кіріс интерфейсі”=>”Алдын ала бағыттау”=>”Бағыттау шешімі”=>”Алға”=>”Бағдарламадан кейінгі”=>”Шығару интерфейсі” тек өтініш үшін»Кіріс интерфейсі” ISP интерфейсі болды, ал жауап үшін – LAN

2.2. Біз транзиттік трафикті сәйкес бағыттау кестелеріне бағыттаймыз:

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Routemark transit out via ISP1" connection-mark=conn_isp1 
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_isp1 passthrough=no

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Routemark transit out via ISP2" connection-mark=conn_isp2 
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_isp2 passthrough=no

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Routemark transit out via ISP3" connection-mark=conn_isp3 
dst-address-type=!local in-interface-list=!WAN new-routing-mark=to_isp3 passthrough=no

Түсініктеме. in-interface-list=!WAN - біз тек жергілікті желіден және маршрутизатордың интерфейстерінің адресінің тағайындалған мекенжайы жоқ dst-address-type=!local трафикімен ғана жұмыс істейміз.

Жол бойында маршрутизаторға келген жергілікті пакеттер үшін де солай:

“Енгізу интерфейсі”=>”Алдын ала бағыттау”=>”Бағыттау шешімі”=>”Енгізу”=>”Жергілікті процесс”

Маңызды! Жауап келесі жолмен болады:

”Жергілікті процесс”=>”Бағыттау шешімі”=>”Шығару”=>”Бағдарламадан кейінгі”=>”Шығару интерфейсі”

2.3. Біз жергілікті трафикті сәйкес бағыттау кестелеріне бағыттаймыз:

/ip firewall mangle add action=mark-routing chain=output 
comment="Routemark local out via ISP1" connection-mark=conn_isp1 dst-address-type=!local 
new-routing-mark=to_isp1 passthrough=no

/ip firewall mangle add action=mark-routing chain=output 
comment="Routemark local out via ISP2" connection-mark=conn_isp2 dst-address-type=!local 
new-routing-mark=to_isp2 passthrough=no

/ip firewall mangle add action=mark-routing chain=output 
comment="Routemark local out via ISP3" connection-mark=conn_isp3 dst-address-type=!local 
new-routing-mark=to_isp3 passthrough=no

Бұл кезеңде сұрау түскен интернет-каналға жауап жіберуге дайындық міндеті шешілді деп санауға болады. Барлығы белгіленген, таңбаланған және бағыттауға дайын.
Бұл орнатудың тамаша «жанама» әсері екі (ISP2, ISP3) провайдерлерінен бір уақытта DSNAT портын қайта жіберумен жұмыс істеу мүмкіндігі болып табылады. Мүлде жоқ, өйткені ISP1-де бізде бағытталмайтын мекенжай бар. Бұл әсер, мысалы, әртүрлі интернет арналарын қарайтын екі MX бар пошта сервері үшін маңызды.

Сыртқы IP маршрутизаторларымен жергілікті желілердің жұмысының нюанстарын жою үшін біз абзацтардағы шешімдерді қолданамыз. 1.8.2 және 3.1.2.6.

Сонымен қатар, мәселенің 3-тармағын шешу үшін таңбалары бар құралды пайдалануға болады. Біз оны келесідей жүзеге асырамыз:

2.4. Біз жергілікті клиенттерден трафикті маршруттау тізімдерінен сәйкес кестелерге бағыттаймыз:

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Address List via ISP1" dst-address-list=!BOGONS new-routing-mark=to_isp1 
passthrough=no src-address-list=Via_ISP1

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Address List via ISP2" dst-address-list=!BOGONS new-routing-mark=to_isp2 
passthrough=no src-address-list=Via_ISP2

/ip firewall mangle add action=mark-routing chain=prerouting 
comment="Address List via ISP3" dst-address-list=!BOGONS new-routing-mark=to_isp3 
passthrough=no src-address-list=Via_ISP3

Нәтижесінде ол келесідей көрінеді:

Multivan және Mikrotik RouterOS жүйесінде маршруттау

3. Интернет провайдеріне қосылымды орнатыңыз және брендті бағыттауды қосыңыз

3.1. ISP1 қосылымын орнату:
3.1.1. Статикалық IP мекенжайын конфигурациялаңыз:

/ip address add interface=ether1 address=100.66.66.2/30 comment="ISP1 IP"

3.1.2. Статикалық маршруттауды орнату:
3.1.2.1. Әдепкі "төтенше жағдай" бағытын қосыңыз:

/ip route add comment="Emergency route" distance=254 type=blackhole

ЕСКЕРТУ. Бұл маршрут кез келген провайдерлердің байланыстарының күйіне қарамастан, жергілікті процестерден трафикке Маршрутты шешу сатысынан өтуге мүмкіндік береді. Шығатын жергілікті трафиктің нюансы мынада: пакет кем дегенде бір жерде қозғалуы үшін негізгі маршруттау кестесінде әдепкі шлюзге белсенді маршрут болуы керек. Олай болмаса, пакет жай ғана жойылады.

Құрал кеңейтімі ретінде шлюзді тексеру Арна күйін тереңірек талдау үшін мен рекурсивті маршрут әдісін пайдалануды ұсынамын. Әдістің мәні мынада: біз маршрутизаторға оның шлюзіне жолды тікелей емес, аралық шлюз арқылы іздеуді айтамыз. 4.2.2.1, 4.2.2.2 және 4.2.2.3 сәйкесінше ISP1, ISP2 және ISP3 үшін «сынақ» шлюздері ретінде таңдалады.

3.1.2.2. «Тексеру» мекенжайына бағыт:

/ip route add check-gateway=ping comment="For recursion via ISP1"  
distance=1 dst-address=4.2.2.1 gateway=100.66.66.1 scope=10

ЕСКЕРТУ. 4.2.2.1 нұсқасын болашақта рекурсивті шлюз ретінде пайдалану үшін ROS мақсатты ауқымындағы ауқым мәнін әдепкіге төмендетеміз. Мен атап өтемін: «сынақ» мекенжайына баратын бағыттың ауқымы сынаққа сілтеме жасайтын бағыттың мақсатты көлемінен аз немесе оған тең болуы керек.

3.1.2.3. Маршрутизация белгісі жоқ трафик үшін рекурсивті әдепкі маршрут:

/ip route add comment="Unmarked via ISP1" distance=2 gateway=4.2.2.1

ЕСКЕРТУ. Қашықтық=2 мәні пайдаланылады, себебі ISP1 тапсырма шарттарына сәйкес бірінші сақтық көшірме ретінде жарияланған.

3.1.2.4. «to_isp1» маршруттық белгісі бар трафик үшін рекурсивті әдепкі маршрут:

/ip route add comment="Marked via ISP1 Main" distance=1 gateway=4.2.2.1 
routing-mark=to_isp1

ЕСКЕРТУ. Шындығында, біз 2-тармақта жүргізілген дайындық жұмыстарының жемісін көре бастадық.


Бұл маршрутта «to_isp1» белгісі бар барлық трафик негізгі кесте үшін қандай әдепкі шлюз белсенді болғанына қарамастан, бірінші провайдердің шлюзіне бағытталады.

3.1.2.5. ISP2 және ISP3 тегтелген трафик үшін бірінші резервтік рекурсивті әдепкі маршрут:

/ip route add comment="Marked via ISP2 Backup1" distance=2 gateway=4.2.2.1 
routing-mark=to_isp2
/ip route add comment="Marked via ISP3 Backup1" distance=2 gateway=4.2.2.1 
routing-mark=to_isp3

ЕСКЕРТУ. Бұл маршруттар басқа нәрселермен қатар "to_isp*" мекенжайлар тізімінің мүшелері болып табылатын жергілікті желілерден трафикті сақтау үшін қажет.

3.1.2.6. Маршрутизатордың Интернетке жергілікті трафигі үшін ISP1 арқылы маршрутты тіркейміз:

/ip route rule add comment="From ISP1 IP to Inet" src-address=100.66.66.2 table=to_isp1

ЕСКЕРТУ. 1.8.2 тармағының ережелерімен үйлесімде ол берілген көзбен қажетті арнаға қол жеткізуді қамтамасыз етеді. Бұл жергілікті IP мекенжайын (EoIP, IP-IP, GRE) көрсететін туннельдерді салу үшін өте маңызды. IP маршрут ережелеріндегі ережелер жоғарыдан төменге қарай, шарттар бірінші сәйкестігіне дейін орындалатындықтан, бұл ереже 1.8.2 тармағының ережелерінен кейін болуы керек.

3.1.3. Біз шығыс трафик үшін NAT ережесін тіркейміз:

/ip firewall nat add action=src-nat chain=srcnat comment="NAT via ISP1"  
ipsec-policy=out,none out-interface=ether1 to-addresses=100.66.66.2

ЕСКЕРТУ. NATim, IPsec саясаттарына кіретіннен басқа, өшетіннің барлығын. Мен өте қажет болмаса action=masquerade қолданбауға тырысамын. Ол src-nat-қа қарағанда баяу және ресурсты көп қажет етеді, себебі ол әрбір жаңа қосылым үшін NAT мекенжайын есептейді.

3.1.4. Біз басқа провайдерлер арқылы кіруге тыйым салынған тізімдегі клиенттерді ISP1 провайдерінің шлюзіне тікелей жібереміз.

/ip firewall mangle add action=route chain=prerouting comment="Address List via ISP1 only" 
dst-address-list=!BOGONS passthrough=no route-dst=100.66.66.1 
src-address-list=Via_only_ISP1 place-before=0

ЕСКЕРТУ. action=route жоғары басымдыққа ие және басқа маршруттау ережелерінен бұрын қолданылады.


place-befor=0 - ережені тізімде бірінші орынға қояды.

3.2. ISP2 қосылымын орнатыңыз.

ISP2 провайдері DHCP арқылы параметрлерді беретіндіктен, DHCP клиенті іске қосылғанда басталатын сценарий арқылы қажетті өзгерістерді енгізу орынды болады:

/ip dhcp-client
add add-default-route=no disabled=no interface=ether2 script=":if ($bound=1) do={r
    n    /ip route add check-gateway=ping comment="For recursion via ISP2" distance=1 
           dst-address=4.2.2.2/32 gateway=$"gateway-address" scope=10r
    n    /ip route add comment="Unmarked via ISP2" distance=1 gateway=4.2.2.2;r
    n    /ip route add comment="Marked via ISP2 Main" distance=1 gateway=4.2.2.2 
           routing-mark=to_isp2;r
    n    /ip route add comment="Marked via ISP1 Backup1" distance=2 gateway=4.2.2.2 
           routing-mark=to_isp1;r
    n    /ip route add comment="Marked via ISP3 Backup2" distance=3 gateway=4.2.2.2 
           routing-mark=to_isp3;r
    n    /ip firewall nat add action=src-nat chain=srcnat ipsec-policy=out,none 
           out-interface=$"interface" to-addresses=$"lease-address" comment="NAT via ISP2" 
           place-before=1;r
    n    if ([/ip route rule find comment="From ISP2 IP to Inet"] ="") do={r
    n        /ip route rule add comment="From ISP2 IP to Inet" 
               src-address=$"lease-address" table=to_isp2 r
    n    } else={r
    n       /ip route rule set [find comment="From ISP2 IP to Inet"] disabled=no 
              src-address=$"lease-address"r
    n    }      r
    n} else={r
    n   /ip firewall nat remove  [find comment="NAT via ISP2"];r
    n   /ip route remove [find comment="For recursion via ISP2"];r
    n   /ip route remove [find comment="Unmarked via ISP2"];r
    n   /ip route remove [find comment="Marked via ISP2 Main"];r
    n   /ip route remove [find comment="Marked via ISP1 Backup1"];r
    n   /ip route remove [find comment="Marked via ISP3 Backup2"];r
    n   /ip route rule set [find comment="From ISP2 IP to Inet"] disabled=yesr
    n}r
    n" use-peer-dns=no use-peer-ntp=no

Сценарийдің өзі Winbox терезесінде:

Multivan және Mikrotik RouterOS жүйесінде маршруттау
ЕСКЕРТУ. Сценарийдің бірінші бөлігі жалға алу сәтті алынған кезде іске қосылады, екіншісі - жалдау босатылғаннан кейін.2 ескертуді қараңыз

3.3. ISP3 провайдеріне қосылым орнаттық.

Параметрлер провайдері бізге динамикалық мүмкіндік беретіндіктен, ppp интерфейсі көтерілгеннен кейін және құлағаннан кейін басталатын сценарийлермен қажетті өзгерістерді енгізу орынды.

3.3.1. Алдымен профильді конфигурациялаймыз:

/ppp profile
add comment="for PPPoE to ISP3" interface-list=WAN name=isp3_client 
on-down="/ip firewall nat remove  [find comment="NAT via ISP3"];r
    n/ip route remove [find comment="For recursion via ISP3"];r
    n/ip route remove [find comment="Unmarked via ISP3"];r
    n/ip route remove [find comment="Marked via ISP3 Main"];r
    n/ip route remove [find comment="Marked via ISP1 Backup2"];r
    n/ip route remove [find comment="Marked via ISP2 Backup2"];r
    n/ip route rule set [find comment="From ISP3 IP to Inet"] disabled=yes;" 
on-up="/ip route add check-gateway=ping comment="For recursion via ISP3" distance=1 
    dst-address=4.2.2.3/32 gateway=$"remote-address" scope=10r
    n/ip route add comment="Unmarked via ISP3" distance=3 gateway=4.2.2.3;r
    n/ip route add comment="Marked via ISP3 Main" distance=1 gateway=4.2.2.3 
    routing-mark=to_isp3;r
    n/ip route add comment="Marked via ISP1 Backup2" distance=3 gateway=4.2.2.3 
    routing-mark=to_isp1;r
    n/ip route add comment="Marked via ISP2 Backup2" distance=3 gateway=4.2.2.3 
    routing-mark=to_isp2;r
    n/ip firewall mangle set [find comment="Connmark in from ISP3"] 
    in-interface=$"interface";r
    n/ip firewall nat add action=src-nat chain=srcnat ipsec-policy=out,none 
    out-interface=$"interface" to-addresses=$"local-address" comment="NAT via ISP3" 
    place-before=1;r
    nif ([/ip route rule find comment="From ISP3 IP to Inet"] ="") do={r
    n   /ip route rule add comment="From ISP3 IP to Inet" src-address=$"local-address" 
    table=to_isp3 r
    n} else={r
    n   /ip route rule set [find comment="From ISP3 IP to Inet"] disabled=no 
    src-address=$"local-address"r
    n};r
    n"

Сценарийдің өзі Winbox терезесінде:

Multivan және Mikrotik RouterOS жүйесінде маршруттау
ЕСКЕРТУ. Жол
/ip брандмауэрінің басқару жиыны [пікірді табу="ISP3-тен қосылу"] in-interface=$"интерфейс";
интерфейс атауын өзгертуді дұрыс өңдеуге мүмкіндік береді, себебі ол көрсетілетін атаумен емес, оның кодымен жұмыс істейді.

3.3.2. Енді профильді пайдаланып, ppp қосылымын жасаңыз:

/interface pppoe-client add allow=mschap2 comment="to ISP3" disabled=no 
interface=ether3 name=pppoe-isp3 password=isp3_pass profile=isp3_client user=isp3_client

Соңғы түрту ретінде сағатты орнатайық:

/system ntp client set enabled=yes server-dns-names=0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org

Соңына дейін оқығандар үшін

Мультиванды жүзеге асырудың ұсынылған жолы - автордың жеке қалауы және жалғыз мүмкін емес. ROS құралдар жинағы кең және икемді, бұл бір жағынан жаңадан бастағандар үшін қиындықтар туғызады, ал екінші жағынан оның танымалдығының себебі болып табылады. Жаңа құралдар мен шешімдерді үйреніңіз, көріңіз, табыңыз. Мысалы, алынған білімді қолдану ретінде мультиванды осы іске асыруда құралды ауыстыруға болады тексеру шлюзі дейін рекурсивті маршруттармен желі сағаты.

Ескертулер

  1. тексеру шлюзі - шлюзді екі рет қатарынан сәтсіз тексеруден кейін жолды өшіруге мүмкіндік беретін механизм. Тексеру 10 секунд сайын бір рет орындалады, оған қоса жауап күту уақыты. Жалпы алғанда, нақты ауысу уақыты 20-30 секунд диапазонында жатыр. Егер мұндай ауыстыру уақыты жеткіліксіз болса, құралды пайдалану мүмкіндігі бар желі сағаты, мұнда тексеру таймерін қолмен орнатуға болады. тексеру шлюзі сілтемедегі үзік-үзік пакет жоғалтуында жанбайды.

    Маңызды! Негізгі бағытты өшіру оған сілтеме жасайтын барлық басқа маршруттарды өшіреді. Сондықтан, олар үшін нақтылау тексеру шлюзі = пинг қажет емес.

  2. Жаңарту күйінде тұрып қалған клиентке ұқсайтын DHCP механизмінде сәтсіздік орын алады. Бұл жағдайда сценарийдің екінші бөлігі жұмыс істемейді, бірақ ол трафиктің дұрыс жүруіне кедергі болмайды, өйткені күй сәйкес рекурсивті бағытты бақылайды.
  3. ECMP (тең құн көп жол) - ROS-та бірнеше шлюзі бар және бірдей қашықтыққа маршрутты орнатуға болады. Бұл жағдайда қосылымдар көрсетілген шлюздер санына пропорционалды түрде айналу алгоритмі арқылы арналар бойынша таратылады.

Мақаланы жазуға түрткі болғаны үшін, оның құрылымын қалыптастыруға және екпіндерді орналастыруға көмектесу - Евгенийге жеке алғыс @jscar

Ақпарат көзі: www.habr.com