|||

2 łącza WAN Failover + Recursive Routing [Konfiguracja Mikrotik]

Wstęp

W dzisiejszych czasach praktycznie każda firma posiada zapasowe łącze internetowe. Jest to bardzo dobre rozwiązanie, w przypadku problemów z głównym łączem od strony naszej części topologii lub od strony dostawcy. Wiąże się to oczywiście z większą opłatą, lecz kalkulując i tak wyjdziemy na plus. Wyobraźmy sobie, że wielkie korporacje straciłyby dostęp do internetu na jakiś czas – wygenerowałoby to bardzo duże straty.

Wstęp
Co to jest failover?
Co to jest recursive routing?
Dodanie tras
Dodanie reguły NAT dla 2 łącz
Dodanie skryptu
Test konfiguracji

Artykuł w formie video obejrzysz tutaj 🙂

Co to jest Failover?

Failover to proces automatycznego przełączania się systemu lub aplikacji na zapasowe źródło zasilania lub zapasowy system w przypadku awarii lub innego problemu, w celu utrzymania ciągłości działania systemu lub aplikacji. Jest to ważne w przypadkach działania np. systemów bankowych.

Co to jest Recursive Routing?

To mechanizm, który daje nam możliwość monitorowania łącza, gdy awaria zajdzie w dalszej strukturze topologii po stronie operatora. Bez rekurencyjnego routingu pingi dochodziłyby na bramę, mielibyśmy złudne wrażenie, że wszystko działa lecz nie mielibyśmy dostępu do internetu.

Konfiguracja

Najpierw musimy mieć 2 dostawców zakładce IP> DHCP Client

Przechodzimy teraz do zakładki IP > Routes

Domyślnie będziemy mieć 2 trasy

Klikamy „+” i uzupełniamy pola

Dst. Address: wpisujemy publiczny adres DNS, który będzie naszym „wyjściem na świat” oznacza to, że będziemy mieć komunikację z internetem

Gateway: adres publiczny naszego dostawcy

Type: unicast

Distance: 1

Scope: ustawiamy na 10 czyli bezpośrednio połączony do routera

Wykaz wartości można znaleźć pod linkiem

Target scope: zostawiamy 10

I widzimy, że trasa jest osiągalna przez interfejs podłączony do głównego dostawcy

Proces powtarzamy dla zapasowego łącza

Dodajemy kolejną rubrykę i uzupełniamy

Dst. Address: wpisujemy 0.0.0.0/0 czyli cały ruch ma przechodzić „w świat”

Gateway: 8.8.8.8

Check gateway: ustawiamy ping

Distance: 1 – dla głównego łącza

Scope: 30 – czyli statyczny

Target scope: zostawiamy 10

Powtarzamy czynność dla zapasowego łącza

Distance ustawiamy na 2, gdyż mniejsza wartość jest traktowana z większym priorytetem

Nasza tablica routingu powinna wyglądać tak

Widzimy, że 2 trasy są rekursywne przez główne i zapasowe łącze

Jeśli nie mamy ustawionego NATa dla naszych dostawców, przechodzimy do zakładki IP > Firewall i dodajemy nową regułę

I w zakładce Action zaznaczamy masquerade

Czynność powtarzamy dla drugiego łącza

Teraz użyjemy narzędzia Netwatch, by przełączanie nastąpiło po zdefiniowanym czasie. Przechodzimy do zakładki Tools > Netwatch i znakiem plusa dodajemy nową rubryke. Uzupełniamy pola

Host: wpisujemy adres bramy

Interval: To czas co ile router ma wysłać pakiet sprawdzający łącze

Timeout: Czas przełączanie na zapasowe łącze

Przechodzimy do zakładki Up i definiujemy skrypt

Oraz Down

Czynność powtarzamy dla zapasowego łącza, będzie on działać w odwrotny sposób

Widzimy że oba łącza działają

Test konfiguracji

Po wyłączeniu głównego łącza status się zmieni

A w tablicy routingu trasa zmieni się z głównego na zapasowe łącze

Czarny kolor czcionki oznacza obecnie wykorzystywane łącze


Podobne wpisy

7 komentarzy

  1. Cześć. Jesteś przekonany, że konfiguracja Netwatch’y jest poprawna? 1) Czy Netwatch będzie w stanie rozpoznać niedostępność danego adresu, skoro pójdzie drugim interfejsem? 2) Czy skrypty Down/Up nie są zamienione w stosunku do adresów hosta?

    1. Wynik badania netwatch jest pokazany w artykule, wszystko działało poprawnie.
      Badanie jest wykonywane równolegle i nie zależnie dla 2 ISP.
      Jeżeli coś konkretnie wzbudziło wątpliwości to napisz co konkretnie.

  2. Na jakiej wersji softu to robisz? Bo w ip-> route jak dodam nowy wpis to nie mam do wyboru "reachable" przez któryś interfejs.
    Piszesz,żeby podać adres IP publiczny dostawcy czyli rozumiem, że mój adres IP przydzielony przez ISP – tylko to jest adres dynamiczny i za chwilę się może zmienić.
    I dlaczego przy zapasowym łączu wpisujemy 192.168.1.1 a nie adres też zewnętrzny IP?

  3. Przepraszam ale paru rzeczy nie rozumiem.
    W skrypcie netwatch masz "(find … ) " a nie powinno być [find … ] ?
    I jeśli dobrze rozumiem – jeśli odpowiada 8.8.8.8 to włącz routing zapasowy a jeśli nie działa to go wyłącz? Fajny artykuł z opisem netwatcha, ja kombinowałem skryptem niepotrzebnie.

  4. Zakładając, że głównym łączem jest LTE, a zapasowym wolna radiówka ze stałym IP:
    LTE jako główne łącze:
    add distance=1 gateway=lte1 check-gateway=ping
    Trasa o metryce 1 wskazuje na LTE jako główną bramę dla ruchu wychodzącego. Mechanizm check- gateway=ping sprawdza dostępność bramy LTE poprzez wysyłanie pingów.
    WAN jako zapasowe łącze:
    add distance=2 gateway=xxx.xxx.xxx.xxx check-gateway=ping #adres IP bramy radiówki
    Trasa o metryce 2 jest używana, gdy główne łącze LTE przestaje odpowiadać na pingi.
    Monitorowanie dostępności (routing rekurencyjny):
    Dodatkowe trasy monitorujące zostały skonfigurowane:
    add distance=1 dst-address=1.1.1.1 gateway=lte1 scope=10 target-scope=30
    add distance=1 dst-address=8.8.8.8 gateway=xxx.xxx.xxx.xxx scope=10 target-scope=30
    1.1.1.1 jest monitorowany przez LTE.
    8.8.8.8 jest monitorowany przez WAN.
    Mechanizm monitorowania działa rekurencyjnie: jeśli 1.1.1.1 przestaje być osiągalny, trasa główna przez LTE jest automatycznie wyłączana.

    Przełączenie na zapasowe łącze:

    Gdy check-gateway=ping wykryje brak odpowiedzi od bramy LTE, trasa przez lte1 zostaje oznaczona jako niedostępna.
    Ruch zostaje automatycznie przekierowany przez zapasową trasę:
    add distance=2 gateway=xxx.xxx.xxx.xxx
    Powrót na LTE:
    Jeśli brama LTE ponownie zacznie odpowiadać na pingi, trasa przez lte1 zostaje automatycznie aktywowana, a router przełącza ruch z powrotem na główne łącze.

    1. Witam do Daniello mam pytanie w tych trasach : add distance=1 dst-address=1.1.1.1 gateway=lte1 scope=10 target-scope=30
      add distance=1 dst-address=8.8.8.8 gateway=xxx.xxx.xxx.xxx scope=10 target-scope=30 nie dajemy już check-gateway=ping tak? i jeszcze jedno fajne przykłady ale co gdy nie mamy żadnego stałego ip wan? Jak zrobić gdy np.. w LTE mamy adres z klasy prywatnej a drugi jest dynamiczny (jednak publiczny WAN) jak to wtedy ugryźć? Pozdrawiam

  5. Witam do Daniello mam pytanie w tych trasach : add distance=1 dst-address=1.1.1.1 gateway=lte1 scope=10 target-scope=30
    add distance=1 dst-address=8.8.8.8 gateway=xxx.xxx.xxx.xxx scope=10 target-scope=30 nie dajemy już check-gateway=ping tak? i jeszcze jedno fajne przykłady ale co gdy nie mamy żadnego stałego ip wan? Jak zrobić gdy np.. w LTE mamy adres z klasy prywatnej a drugi jest dynamiczny (jednak publiczny WAN) jak to wtedy ugryźć? Pozdrawiam

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *