Dual WAN i Policy Based Routing na RouterOS

Dobrą praktyką przy zapewnianiu dostępności połączenia do Internetu jest posiadanie dwóch redundantnych łącz. Najlepiej, żeby były to łącza od dwóch dostawców, przeciągnięte dwoma różnymi szachtami komunikacyjnymi. Duże firmy nie mogą sobie pozwolić na utratę dostępu do sieci ale w przypadku tych mniejszych nie jest to już takie oczywiste. Oczywiście taki stan może wynikać z przeprowadzonej analizy ryzyka więc zdziwienie w obliczu braku zapasowego łącza nie jest już takie oczywiste. Mam to szczęście, że w mojej organizacji nie pominięto tego wątku i zapasowe łącza działają nawet w przypadku bardzo małych klientów. Natomiast w dobie wszędobylskiego Internetu możemy zapewnić sobie redundancję nawet na poziomie własnego “M” wykorzystując modemy LTE. Czyli pierwsze łącze zapewnia nam dostawca Internetu stacjonarnego a drugie możemy wybrać sobie z bogatej oferty sieci komórkowych. Ważne tylko aby dostawcy dostarczali publiczne IP, nie musi być stałe. W tym wpisie skonfigurujemy urządzenie Mikrotik do współpracy z dwoma operatorami stacjonarnymi. Następnie wywołamy awarię jednego z łącz a na samym końcu ustawimy tak routing aby wychodzić dwoma łączami równolegle z dwóch segmentów sieci.

Topologia

Konfiguracja

Dual WAN

Zaczynamy od stworzenia interfejsu bridge na naszym routerze. W tym celu przechodzimy do zakładki “Bridge” i dodajemy nowy interfejs znakiem “+“.

aaaa

Definiujemy nazwę interfejsu, zostawiając pozostałe pozycje bez zmian.

aaaa

Następnie do interfejsu bridge przypisujemy porty. Przechodzimy zatem na kartę “Ports” i dodajemy odpowiednie porty znakiem “+“.

aaaa

W polu “Interface” wybieramy port, który ma być dołączony do bridge’a a poniżej w polu “Bridge” wybieramy, do którego interfejsu bridge.

aaaa

Taką samą operację wykonujemy z kolejnymi portami, które mają zostać dołączone do bridge’a.

Po dodaniu portów do interfejsu bridge, tworzymy przynajmniej dwa interfejsy vlan. W tym celu przechodzimy do zakładki “Interfaces -> VLAN” i tworzymy nowe sieci wirtualne znakiem “+“.

aaaa

Definiujemy nazwę sieci wirtualnej, przypisujemy jej tag oraz podłączamy pod interfejs “Bridge“.

aaa

Teraz przypisujemy naszym sieciom wirtualnym odpowiednie adresy. W tym celu przechodzimy do zakładki “IP -> Addresses” i dodajemy adres IP do każdej sieci znakiem “+“.

aaaa

Adresy dla portów WAN’owych ether1 i ether5 zostały wcześniej skonfigurowane statycznie aby mieć połączenie z każdym operatorem.

Przypisujemy adres IP, maskę podsieci i przypinamy je do odpowiedniego interfejsu.

aaaa

Następnie tworzymy ustawienia serwera DHCP dla obu sieci wirtualnych. W tym celu przechodzimy na zakładkę “IP -> Pool” i tworzymy zakres adresów do przydzielania dla poszczególnych segmentów znakiem “+“.

aaa

Dodajemy serwer DHCP dla każdej sieci wirtualnej. W tym celu przechodzimy do zakładki “IP -> DHCP Server” i dodajemy serwer znakiem “+“.

aaaa

Definiujemy nazwę serwera, przypisujemy do właściwego interfejsu i wybieramy z jakiej puli mają być przydzielane adresy IP dla klientów.

aaaa

Następnie przechodzimy na kartę “Networks” i dodajemy powiązanie bramy z odpowiednią siecią, w której ma działać nasz serwer DHCP znakiem “+“.

aaa

W polu “Address” wprowadzamy adres sieci, w polu “Gateway” adres bramy domyślnej oraz opcjonalnie (jeżeli dostaliśmy jakiś od operatora) serwer DNS.

aaaa

Kolejno dodajemy nasze interfejsy łączące nas z Internetem pod jedną logiczną nazwę. W tym celu przechodzimy do zakładki “Interfaces -> Interface List” i wybieramy kafelek “Lists“.

aaaa

Po przejściu na kafelek “Lists” dodajemy nazwę dla naszej grupy interfejsów. W tym celu naciskamy znak “+” i definiujemy nazwę grupy.

aaaa

Jeżeli mamy dodaną grupę interfejsów, dodajemy kolejno interfejsy naciskając znak “+” i przypisujemy porty WAN’owe.

aaaa

Następnie ustawiamy NAT dla naszej sieci wychodzący przez grupę ustawioną na liście interfejsów. W tym celu przechodzimy do zakładki “IP -> Firewall -> NAT” i na liście dodajemy regułę znakiem “+“.

aaaa

Dodajemy regułę NAT’ującą (maskaradę) wskazując łańcuch przekierowujący ruch z sieci lokalnej do Internetu.

aaaa

Dodajemy trasę domyślną do Internetu poprzez sieć operatora. W tym celu przechodzimy do zakładki “IP -> Routes” i dodajemy nową trasę znakiem “+“.

aaaa

Pozostałe trasy zostały dodane dynamicznie po skonfigurowaniu sieci wirtualnych i adresów IP operatorów.

Wprowadzamy trasę routingu do Internetu wpisując adres docelowy sieci, adres IP bramy i priorytet trasy.

aaaa

To samo robimy z trasą wyznaczoną przez drugiego operatora. Różnica polega na obniżeniu priorytetu trasy.

aaaa

O priorytecie trasy mówi nam pole “Distance”. Im ta wartość będzie wyższa tym niższy priorytet.

W tym momencie tylko jedna z tras będzie aktywna. Jeżeli odłączymy się od jednego operatora, pierwsza trasa zostanie zdezaktywowana (niebieski kolor) a druga trasa zostanie aktywowana (czarny kolor).

Policy Based Routing

Teraz skonfigurujemy nasze połączenie tak aby obie trasy były aktywne i przekazywały dostęp do Internetu równolegle z dwóch różnych segmentów sieci. W tym celu przechodzimy do zakładki “IP -> Firewall -> Mangle” i dodajemy regułę znakiem “+“.

aaaaa

Wskazujemy łańcuch umożliwiający dodanie do ruchu z konkretnego segmentu sieci pewnych oznaczeń przed wykonaniem zadania routowania, wybieramy z jakiego interfejsu ruch będzie wpadał na router i wskazujemy połączenia, które nie były w żaden sposób oznaczone.

aaaa

Przechodzimy na kartę “Action” i wybieramy sposób postępowania z ruchem wybierając opcję oznaczenia połączenia, nadania mu jaki znacznik ma zostać dodany i zaznaczamy opcję wyboru przepuszczaj dalej.

aaaa

Dodajemy kolejną regułę podobnie jak poprzednią tylko tym razem wybieramy na takim samym łańcuchu pakiety już oznaczone konkretną frazą.

aaaa

Przechodzimy na kartę “Action” i wybieramy sposób postępowania z ruchem wybierając opcję oznaczenia routowania, wskazując którą bramą ma zostać wypuszczone połączenie i zaznaczamy opcję wyboru przepuszczaj dalej.

aaa

Dodanie nowego znacznika dla routowania spowoduje utworzenie nowej tablicy routingu.

Wracamy na listę tras domyślnych i zmieniamy ustawienia trasy zapasowej. W tym celu otwieramy ustawienia trasy zapasowej i zmieniamy wartości dotyczące priorytetu oraz tablicy routingu przez które ma przejść połączenie.

aaaa

W tym momencie obie trasy będą aktywne. Wyjście z sieci wirtualnej (12) będzie realizowane poprzez interfejs ether1 a równolegle wyjście z sieci wirtualnej (45) będzie realizowane poprzez interfejs ether5.

Podsumowanie

Tak przygotowana konfiguracja zapewni nam nadmiarowość połączenia i zminimalizuje przestoje w organizacji. Przynajmniej przestoje na styku z Internetem :). Można pokusić się o wzbogacenie takiego rozwiązania dodając:

  • mechanizm sprawdzania bramy domyślnej operatora (check gateway),
  • mechanizm sprawdzania “ósemek” przez bramkę operatora (recursive routing),
  • mechanizm wysyłania wiadomości sms / mail przy braku aktywności jednego z łącz.

Nie ominiemy natomiast problemu gdy nasz router brzegowy ulegnie awarii. Toteż oprócz nadmiarowości łącza warto pomyśleć o zapasowym urządzeniu. Ale czy tylko na podmiankę? NIE, oczekuj…VRRP.

Instrukcja wideo