Multivan a smerovanie na Mikrotik RouterOS

Úvod

Okrem márnomyseľnosti ma k prevzatiu článku podnietila aj skľučujúca frekvencia otázok na túto tému v špecializovaných skupinách ruskojazyčnej telegramovej komunity. Článok je určený pre začínajúcich administrátorov Mikrotik RouterOS (ďalej len ROS). Zvažuje iba multivany s dôrazom na smerovanie. Bonusom sú minimálne dostatočné nastavenia na zaistenie bezpečnej a pohodlnej prevádzky. Tí, ktorí hľadajú diskusiu na témy fronty, vyvažovanie záťaže, vlany, mosty, viacstupňová hĺbková analýza stavu kanála a podobne, nemusia strácať čas a námahu čítaním.

Surové údaje

Ako testovací subjekt bol vybraný päťportový router Mikrotik s verziou ROS 6.45.3. Bude smerovať prevádzku medzi dvoma lokálnymi sieťami (LAN1 a LAN2) a tromi poskytovateľmi (ISP1, ISP2, ISP3). Kanál k ISP1 má statickú „sivú“ adresu, ISP2 má „bielu“ adresu prijatú cez DHCP, ISP3 má „bielu“ adresu s PPPoE autorizáciou. Schéma zapojenia je znázornená na obrázku:

Multivan a smerovanie na Mikrotik RouterOS

Úlohou je nakonfigurovať smerovač „MTK“ na základe schémy tak, aby:

  1. Zabezpečte automatické prepnutie na poskytovateľa zálohovania. Hlavným poskytovateľom je ISP2, prvá rezerva je ISP1, druhá rezerva je ISP3.
  2. Zorganizujte prístup k sieti LAN1 na internet iba prostredníctvom ISP1.
  3. Poskytnite možnosť smerovať prevádzku z lokálnych sietí do internetu prostredníctvom vybraného poskytovateľa na základe zoznamu adries.
  4. Poskytujú možnosť publikovať služby z lokálnej siete na Internet (DSTNAT)
  5. Nakonfigurujte filter brány firewall, aby ste zabezpečili minimálne dostatočné zabezpečenie internetu.
  6. Router mohol uvoľniť svoju vlastnú prevádzku prostredníctvom ktoréhokoľvek z troch poskytovateľov v závislosti od zvolenej zdrojovej adresy.
  7. Uistite sa, že pakety odpovedí sú smerované na kanál, z ktorého prišli (vrátane LAN).

Poznámka. Router nakonfigurujeme „od začiatku“, aby sme zaistili, že v počiatočných konfiguráciách, ktoré sa menia z verzie na verziu, nebudú žiadne prekvapenia. Ako konfiguračný nástroj je vybraný Winbox, kde sa zmeny budú vizuálne zobrazovať. Samotné nastavenia budú určené príkazmi v termináli Winbox. Fyzické pripojenie pre konfiguráciu sa vykonáva priamym pripojením k rozhraniu Ether5.

Malá diskusia o tom, čo je multivan, je to problém alebo sú prefíkaní chytrí ľudia okolo splietajúci sieť konšpirácií

Zvedavý a pozorný správca, ktorý si nezávisle nastavuje takúto alebo podobnú schému, si zrazu uvedomí, že aj tak to funguje dobre. Áno, áno, bez týchto vlastných smerovacích tabuliek a iných pravidiel smerovania, ktorých je väčšina článkov na túto tému plná. Skontrolujeme?

Môžeme nakonfigurovať adresovanie na rozhraniach a predvolených bránach? Áno:

Na ISP1 sme zaregistrovali adresu a bránu s vzdialenosť = 2 и check-gateway=ping.
Na ISP2 je predvolené nastavenie klienta dhcp, že vzdialenosť bude rovná jednej.
Na ISP3 v nastaveniach klienta pppoe, keď add-default-route=yes dať default-route-distance=3.

Nezabudnite nastaviť NAT na výstupe:

/ip firewall nat add action=masquerade chain=srcnat out-interface-list=WAN

Výsledkom je, že používatelia LAN sa zabávajú sťahovaním mačiek prostredníctvom hlavného poskytovateľa ISP2 a majú rezerváciu kanálov pomocou mechanizmu skontrolovať bránu Pozri poznámku 1

Bod 1 úlohy bol implementovaný. Kde je multivan so svojimi štítkami? nie…

Ďalej. Potrebujete uvoľniť konkrétnych klientov z LAN cez ISP1:

/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
passthrough=yes route-dst=100.66.66.1 src-address-list=Via_ISP1
/ip firewall mangle add action=route chain=prerouting dst-address-list=!BOGONS
passthrough=no route-dst=100.66.66.1 src-address=192.168.88.0/24

Body 2 a 3 úlohy boli implementované. Tagy, značky, pravidlá trasy, kde si?!

Potrebujete sprístupniť váš obľúbený OpenVPN server s adresou 172.17.17.17 klientom z internetu? prosím:

/ip cloud set ddns-enabled=yes

Klientom poskytujeme výstupný výsledok ako peer: “:put [ip cloud get dns-name]"

Registrujeme presmerovanie portov z internetu:

/ip firewall nat add action=dst-nat chain=dstnat dst-port=1194
in-interface-list=WAN protocol=udp to-addresses=172.17.17.17

Bod 4 je pripravený.

K bodu 5 sme nastavili firewall a ďalšie zabezpečenie, zároveň sme radi, že užívateľom už všetko funguje a siahnite po nádobe s obľúbeným nápojom...
A! Na tunely sa stále zabudlo.

Dostal sa l2tp klient nakonfigurovaný na základe vygooglovaného článku do vášho obľúbeného holandského VDS? Áno.
Server l2tp s IPsec je zapnutý a pripájajú sa klienti používajúci názov DNS z cloudu IP (pozri vyššie)? Áno.
Opretí v kresle, popíjajúc drink, lenivo zvažujeme body 6 a 7 problému. Myslíme si – potrebujeme to? Stále to tak funguje (c)... Takže ak to nie je potrebné, potom je to všetko. Multivan implementovaný.

Čo je to multivan? Ide o pripojenie niekoľkých internetových kanálov k jednému smerovaču.

Nemusíte čítať zvyšok článku, pretože čo by tam mohlo byť iné ako predvádzanie pochybnej použiteľnosti?

S tými, ktorí zostali, ktorých zaujímajú body 6 a 7 úlohy a tiež cítia svrbenie perfekcionizmu, poďme sa ponoriť hlbšie.

Najdôležitejšou úlohou implementácie multivanov je správne smerovanie dopravy. Totiž: bez ohľadu na to, v ktorom (alebo v ktorom) See. poznámka 3 kanál (kanály) poskytovateľa sa pozerá na predvolenú cestu na našom smerovači, mal by vrátiť odpoveď presne na kanál, z ktorého paket prišiel. Úloha je jasná. Kde je problém? Koniec koncov, v jednoduchej lokálnej sieti je úloha rovnaká, ale nikto sa neobťažuje ďalšími nastaveniami a nepociťuje problémy. Rozdiel je v tom, že akýkoľvek smerovaný uzol na internete je prístupný cez každý z našich kanálov, a nie cez striktne špecifický, ako v jednoduchej LAN. A „problém“ je v tom, že ak sme dostali požiadavku na IP adresu ISP3, tak v našom prípade odpoveď prejde cez ISP2 kanál, keďže tam smeruje predvolená brána. Zmizne a poskytovateľ ho zahodí ako nesprávny. O probléme je rozhodnuté. Ako to vyriešiť?

Riešenie rozdelíme do troch etáp:

  1. Prednastavenie. V tejto fáze sa nastavia základné nastavenia smerovača: lokálna sieť, firewall, zoznamy adries, vlásenkový NAT atď.
  2. Multivan. V tejto fáze budú požadované spojenia označené a roztriedené do smerovacích tabuliek.
  3. Pripojenie k ISP. V tejto fáze sa nakonfigurujú rozhrania, ktoré poskytujú internetové pripojenie, aktivuje sa smerovanie a mechanizmus na rezervovanie internetových kanálov.

1. Prednastavenie

1.1. Konfiguráciu smerovača vymažeme príkazom:

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

súhlasíme s "Nebezpečné! Napriek tomu resetovať? [y/N]:“ a po reštarte sa spojíme s Winboxom cez MAC. V tejto fáze sa vymaže konfigurácia a používateľská základňa.

1.2. Vytvoriť nového používateľa:

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

Prihláste sa pod ním a odstráňte predvolený:

/user remove admin

Poznámka. Autor považuje za bezpečnejšie skôr mazanie ako zakázanie predvoleného používateľa a odporúča jeho použitie.

1.3. Vytvárame základné zoznamy rozhraní pre uľahčenie prevádzky vo firewalle, nastaveniach zisťovania a iných MAC serveroch:

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

Podpisovanie rozhraní s komentármi

/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"

a vyplňte zoznamy rozhraní:

/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"

Poznámka. Písanie jasných komentárov stojí za čas strávený nad ním a navyše výrazne uľahčuje riešenie problémov a pochopenie konfigurácie.

Autor považuje za potrebné z bezpečnostných dôvodov pridať rozhranie ether3 do zoznamu rozhraní „WAN“ aj napriek tomu, že protokol IP cez neho nebude cestovať.

Nezabudnite, že po zvýšení rozhrania PPP na ether3 bude tiež potrebné pridať ho do zoznamu rozhraní „WAN“

1.4. Router skryjeme pred detekciou okolia a ovládaním zo sietí poskytovateľov cez 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. Vytvárame minimálnu dostatočnú sadu pravidiel filtrovania brány firewall na ochranu smerovača:

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

(pravidlo poskytuje povolenie pre vytvorené a súvisiace pripojenia, ktoré sú iniciované z pripojených sietí aj samotným smerovačom)

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

(ping a nielen ping. Všetky icmp sú povolené na vstupe. Veľmi užitočné pri hľadaní problémov s MTU)

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

(pravidlo, ktoré uzatvára vstupný reťazec, zakazuje všetko ostatné, čo pochádza z internetu)

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

(pravidlo povoľuje vytvorené a súvisiace pripojenia, ktoré prechádzajú cez smerovač)

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

(pravidlo resetuje spojenia so stavom pripojenia=neplatné prechádzajúce cez smerovač. Mikrotik to dôrazne odporúča, ale v niektorých zriedkavých situáciách môže blokovať užitočnú komunikáciu)

/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

(pravidlo zakazuje, aby pakety, ktoré prichádzajú z internetu a neprešli procedúrou dstnat, prechádzali cez router. Toto ochráni lokálne siete pred útočníkmi, ktorí sú v rovnakej vysielacej doméne s našimi externými sieťami a zaregistrujú naše externé IP adresy ako brána a tak skúste „preskúmať“ naše lokálne siete.)

Poznámka. Predpokladajme, že siete LAN1 a LAN2 sú dôveryhodné a prevádzka medzi nimi az nich nie je filtrovaná.

1.6. Vytvárame zoznam so zoznamom nesmerovateľných sietí:

/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

(Toto je zoznam adries a sietí, ktoré nie sú smerované na internet a podľa toho sa budeme riadiť aj týmto.)

Poznámka. Zoznam sa môže zmeniť, preto vám odporúčam pravidelne kontrolovať jeho relevantnosť.

1.7. Nakonfigurujeme DNS pre samotný router:

/ip dns set servers=1.1.1.1,8.8.8.8

Poznámka. V súčasnej verzii ROS majú dynamické servery prednosť pred staticky definovanými servermi. Požiadavka na rozlíšenie názvu sa odošle na prvý server v poradí v zozname. Prechod na nasledujúci server sa vykoná, ak aktuálny server nie je dostupný. Časový limit je dlhý – viac ako 5 sekúnd. Návrat späť po obnovení „vypadnutého servera“ nenastáva automaticky. Berúc do úvahy tento algoritmus a prítomnosť multivanu, autor odporúča nepoužívať servery poskytované poskytovateľmi.

1.8. Nastavenie lokálnej siete.
1.8.1. Konfigurujeme statické IP adresy na lokálnych sieťových rozhraniach:

/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. Pravidlá smerovania do našich lokálnych sietí nastavujeme prostredníctvom hlavnej smerovacej tabuľky:

/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"

Poznámka. Toto je jeden z jednoduchých a rýchlych spôsobov prístupu k lokálnym sieťovým adresám so zdrojmi externých IP adries routerových rozhraní, cez ktoré nejde predvolená trasa.

1.8.3. Povoliť Hairpin NAT pre LAN1 a LAN2:

/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

Poznámka. To vám umožňuje pristupovať k vašim zdrojom (dstnat) cez externú IP, keď ste vo vnútri siete.

2. Vlastne implementácia toho veľmi správneho multivanu

Na vyriešenie problému „odpovedať na otázku“ použijeme dva nástroje ROS: značka pripojenia и smerovacia značka. značka pripojenia umožňuje označiť požadované spojenie a následne s touto značkou pracovať ako podmienku aplikácie smerovacia značka. A už s smerovacia značka možné pracovať v ip cesta и pravidlá trasy. Nástroje sme roztriedili, teraz sa musíme rozhodnúť, ktoré spojenia označiť – jeden, kde presne označiť – dva.

Pri prvom je všetko jednoduché - musíme označiť všetky pripojenia, ktoré prichádzajú do smerovača z internetu cez príslušný kanál. V našom prípade to budú tri označenia (podľa počtu kanálov): „conn_isp1“, „conn_isp2“ a „conn_isp3“.

Nuance s druhou je, že prichádzajúce pripojenia budú dvoch typov: tranzitné a tie, ktoré sú určené pre samotný smerovač. Mechanizmus značky pripojenia funguje v tabuľke mangeľ. Pozrime sa na pohyb balíka na zjednodušenom diagrame, ktorý láskavo zostavili špecialisti zo zdroja mikrotik-trainings.com (nie reklama):

Multivan a smerovanie na Mikrotik RouterOS

Podľa šípok vidíme, že paket prichádza do „vstupné rozhranie“, ide pozdĺž reťaze “Predtrasovanie“ a až potom sa delí na tranzitnú a miestnu v bloku “Smerovacie rozhodnutie" Preto, aby sme zabili dve muchy jednou ranou, použijeme Značka pripojenia v tabulke Mangle Pre-routing reťaze Predtrasovanie.

poznámka. V ROS sú „Značky smerovania“ označené v časti Ip/Routes/Rules ako „Tabuľka“ a v iných častiach ako „Značka smerovania“. To môže spôsobiť určitý zmätok v chápaní, ale v podstate je to to isté a je to analógia rt_tables v iproute2 na Linuxe.

2.1. Označujeme prichádzajúce pripojenia od každého poskytovateľa:

/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

Poznámka. Aby som neoznačil už označené spojenia, používam podmienku connection-mark=no-mark namiesto connection-state=new, pretože si myslím, že je to správnejšie, ako aj odmietnutie vypustenia neplatných spojení vo vstupnom filtri.


passthrough=no - pretože pri tejto metóde implementácie je opätovné označenie vylúčené a pre urýchlenie môžete prerušiť vyhľadávanie pravidiel po prvej zhode.

Treba mať na pamäti, že do smerovania zatiaľ nijako nezasahujeme. Teraz prebiehajú len prípravné fázy. Ďalšou etapou implementácie bude spracovanie tranzitnej prevádzky, ktorá sa vracia cez vytvorené spojenie z cieľa v lokálnej sieti. Tie. tie pakety, ktoré (pozri diagram) prešli cez smerovač pozdĺž cesty:

“Vstupné rozhranie”=>”Predbežné smerovanie”=>”Rozhodnutie o smerovaní”=>”Vpred”=>”Smerovanie príspevkov”=>”Výstupné rozhranie” a dostali sa do cieľa v lokálnej sieti.

Dôležité! V ROS neexistuje logické rozdelenie na externé a interné rozhrania. Ak sledujete cestu paketu odpovede podľa vyššie uvedeného diagramu, bude nasledovať rovnakú logickú cestu ako požiadavka:

“Vstupné rozhranie”=>”Predbežné smerovanie”=>”Rozhodnutie o smerovaní”=>”Vpred”=>”Smerovanie príspevkov”=>”Výstupné rozhranie” len požiadať"vstupné rozhranie“ bolo tam rozhranie ISP a odpoveď bola LAN

2.2. Tranzitnú premávku odozvy smerujeme podľa príslušných smerovacích tabuliek:

/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

Komentujte. in-interface-list=!WAN - pracujeme len s prevádzkou z lokálnej siete a dst-address-type=!local, ktorá nemá cieľovú adresu rozhraní samotného routera.

To isté platí pre miestne pakety, ktoré prišli do smerovača pozdĺž cesty:

“Vstupné rozhranie”=>”Presmerovanie”=>”Rozhodnutie o smerovaní”=>”Vstup”=>”Miestny proces”

Dôležité! Odpoveď bude smerovať po nasledujúcej ceste:

”Miestny proces”=>”Rozhodnutie o smerovaní”=>”Výstup”=>”Smerovanie príspevkov”=>”Výstupné rozhranie”

2.3. Lokálnu premávku odozvy smerujeme cez príslušné smerovacie tabuľky:

/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

V tejto fáze možno úlohu prípravy na odoslanie odpovede na internetový kanál, z ktorého žiadosť prišla, považovať za vyriešenú. Všetko je označené, označené a pripravené na smerovanie.
Vynikajúcim „vedľajším“ efektom tohto nastavenia je možnosť presmerovania portov DSNAT od oboch (ISP2, ISP3) poskytovateľov súčasne. Nie na všetkých, pretože na ISP1 nemáme smerovateľnú adresu. Tento efekt je dôležitý napríklad pre poštový server s dvoma MX, ktoré sa pozerajú na rôzne internetové kanály.

Aby sme eliminovali nuansy prevádzky lokálnych sietí s externými IP smerovačmi, používame riešenia z odsekov. 1.8.2 a 3.1.2.6.

Okrem toho môžete použiť nástroj so značkami na vyriešenie bodu 3 problému. Implementujme to takto:

2.4. Prevádzku od miestnych klientov smerujeme zo zoznamov smerovania do príslušných tabuliek:

/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

Celkovo to vyzerá asi takto:

Multivan a smerovanie na Mikrotik RouterOS

3. Nastavte pripojenie k ISP a povoľte smerovanie podľa značky

3.1. Nastavenie pripojenia k ISP1:
3.1.1. Nakonfigurujte statickú IP adresu:

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

3.1.2. Nastavenie statického smerovania:
3.1.2.1. Pridajte predvolenú „núdzovú“ trasu:

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

Poznámka. Táto trasa umožňuje prevádzke z miestnych procesov prejsť fázou rozhodnutia o trase bez ohľadu na stav prepojení ktoréhokoľvek z poskytovateľov. Nuansou odchádzajúcej lokálnej prevádzky je, že aby sa paket mohol kamkoľvek presunúť, musí existovať aktívna cesta k predvolenej bráne v hlavnej smerovacej tabuľke. Ak tam nie je, balík sa jednoducho zničí.

Ako rozšírenie nástroja skontrolovať bránu Pre hlbšiu analýzu stavu kanála navrhujem použiť metódu rekurzívnych ciest. Podstata metódy spočíva v tom, že dáme smerovaču pokyn, aby hľadal cestu k svojej bráne nie priamo, ale cez medziľahlú bránu. 4.2.2.1, 4.2.2.2 a 4.2.2.3 sa vyberú ako také „testovacie“ brány pre ISP1, ISP2 a ISP3.

3.1.2.2. Cesta na „overovaciu“ adresu:

/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

Poznámka. Znižujeme hodnotu rozsahu na predvolenú hodnotu v cieľovom rozsahu ROS, aby sme v budúcnosti mohli používať 4.2.2.1 ako rekurzívnu bránu. Zdôrazňujem: rozsah trasy na „testovaciu“ adresu musí byť menší alebo rovnaký ako cieľový rozsah trasy, ktorá bude odkazovať na testovaciu adresu.

3.1.2.3. Predvolená rekurzívna trasa pre premávku bez značky smerovania:

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

Poznámka. Hodnota distance=2 sa používa, pretože ISP1 je podľa podmienok úlohy deklarovaný ako prvá záloha.

3.1.2.4. Predvolená rekurzívna trasa pre premávku so značkou smerovania „to_isp1“:

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

Poznámka. V skutočnosti si tu konečne začíname užívať plody prípravných prác, ktoré boli vykonané v bode 2.


Na tejto trase bude všetka prevádzka, ktorá má označenú cestu „to_isp1“, smerovaná na bránu prvého poskytovateľa, bez ohľadu na to, ktorá predvolená brána je momentálne aktívna pre hlavnú tabuľku.

3.1.2.5. Prvá predvolená záložná rekurzívna trasa pre prenos označený ISP2 a 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

Poznámka. Tieto trasy sú potrebné okrem iného na rezervovanie prevádzky z miestnych sietí, ktoré sú členmi zoznamu adries „to_isp*“'

3.1.2.6. Registrujeme trasu pre lokálny prenos smerovača na internet cez ISP1:

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

Poznámka. V kombinácii s pravidlami z odseku 1.8.2 je poskytovaný prístup k požadovanému kanálu s daným zdrojom. Toto je rozhodujúce pre budovanie tunelov, v ktorých je špecifikovaná lokálna IP adresa (EoIP, IP-IP, GRE). Keďže pravidlá v pravidlách ip route sa vykonávajú zhora nadol, až do prvej zhody podmienok, toto pravidlo by malo nasledovať po pravidlách z článku 1.8.2.

3.1.3. Nastavili sme pravidlo NAT pre odchádzajúce prenosy:

/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

Poznámka. NAT je všetko, čo vychádza, okrem toho, čo spadá do politík IPsec. Snažím sa nepoužívať akcia=maškaráda, pokiaľ to nie je absolútne nevyhnutné. Je pomalší a náročnejší na zdroje ako src-nat, pretože vypočítava adresu NAT pre každé nové pripojenie.

3.1.4. Klientov zo zoznamu, ktorí majú zakázaný prístup cez iných poskytovateľov, posielame priamo na bránu poskytovateľa 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

Poznámka. action=route má vyššiu prioritu a použije sa pred inými pravidlami smerovania.


place-before=0 - umiestni naše pravidlo na prvé miesto v zozname.

3.2. Nastavenie pripojenia k ISP2.

Keďže poskytovateľ ISP2 nám poskytuje nastavenia cez DHCP, je rozumné vykonať potrebné zmeny pomocou skriptu, ktorý sa spustí pri spustení klienta 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

Samotný skript v okne Winbox:

Multivan a smerovanie na Mikrotik RouterOS
Poznámka. Prvá časť skriptu sa spustí po úspešnom získaní prenájmu, druhá - po uvoľnení prenájmu.Pozri poznámku 2

3.3. Nastavenie pripojenia k poskytovateľovi ISP3.

Keďže poskytovateľ nám poskytuje dynamické nastavenia, je rozumné vykonať potrebné zmeny pomocou skriptov, ktoré sa spúšťajú po zvýšení a po páde rozhrania ppp.

3.3.1. Najprv nakonfigurujeme profil:

/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"

Samotný skript v okne Winbox:

Multivan a smerovanie na Mikrotik RouterOS
Poznámka. Riadok
/ip firewall mangle set [find comment="Connmark in from ISP3"] in-interface=$"interface";
vám umožňuje správne zvládnuť premenovanie rozhrania, pretože pracuje so svojím kódom a nie so zobrazovaným názvom.

3.3.2. Teraz pomocou profilu vytvoríme pripojenie 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

Ako posledný krok nastavme hodiny:

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

Pre tých, ktorí čítajú až do konca

Navrhovaný spôsob implementácie multivanu je osobnou preferenciou autora a nie je jediným možným. ROS toolkit je rozsiahly a flexibilný, čo na jednej strane spôsobuje začiatočníkom ťažkosti a na druhej strane je dôvodom jeho obľúbenosti. Študujte, skúšajte, objavujte nové nástroje a riešenia. Napríklad ako aplikáciu získaných vedomostí môžete nahradiť nástroj v tejto implementácii multivan Kontrolná brána so zapnutými rekurzívnymi cestami Netwatch.

poznámky

  1. Kontrolná brána — mechanizmus, ktorý vám umožňuje deaktivovať trasu po dvoch po sebe nasledujúcich neúspešných kontrolách dostupnosti brány. Kontrola sa vykonáva raz za 10 sekúnd plus časový limit odozvy. Celkovo je skutočný čas spínania v rozmedzí 20-30 sekúnd. Ak toto načasovanie spínania nestačí, je tu možnosť použiť nástroj Netwatch, kde je možné manuálne nastaviť časovač kontroly.Mechanizmus Kontrolná brána nefunguje, ak v kanáli dochádza k periodickým stratám paketov.

    Dôležité! Deaktivácia hlavnej trasy znamená deaktiváciu všetkých ostatných trás, ktoré na ňu odkazujú. Preto, aby uviedli check-gateway=ping nie je potrebné.

  2. Stáva sa, že dôjde k poruche v mechanizme DHCP, čo vyzerá, že klient je zmrazený v stave obnovenia. V tomto prípade druhá časť skriptu nebude fungovať, ale nebude zasahovať do správneho toku premávky, pretože štát sleduje zodpovedajúcu rekurzívnu trasu.
  3. ECMP (rovnaké náklady s viacerými cestami) — v ROS je možné nastaviť trasu s viacerými bránami a rovnakou vzdialenosťou. V tomto prípade budú pripojenia distribuované cez kanály pomocou kruhového algoritmu v pomere k počtu špecifikovaných brán.

Za podnet na napísanie článku, pomoc pri formovaní jeho štruktúry a kladenie dôrazu - osobné poďakovanie Evgeniyovi @jscar

Zdroj: hab.com