Niezawodne połączenie oddziałów: tunel IPIP z OSPF na urządzeniach Mikrotik

Niezawodne połączenie oddziałów: tunel IPIP z OSPF na urządzeniach Mikrotik

Firmy z siecią sklepów wymagają stabilnego i bezpiecznego połączenia każdego oddziału z centralą. W praktyce oznacza to użycie dwóch niezależnych łączy – głównego (SD‑WAN Orange) i zapasowego (lokalny operator lub GSM z publicznym adresem IP). Zastosowanie dynamicznego routingu sprawia, że w razie awarii urządzenia same wybierają właściwą trasę bez udziału administratora. Ten poradnik opisuje konfigurację takiego rozwiązania na routerach Mikrotik z wykorzystaniem tunelu IPIP i protokołu OSPF.

Dlaczego tunel IPIP z OSPF?

  • Dynamiczny routing zamiast statycznego. W dynamicznych protokołach, takich jak OSPF, routery wymieniają informacje o trasach i automatycznie reagują na zmiany w topologii sieci. Dzięki temu sieć może równoważyć obciążenie i przełączać się na inną trasę w razie problemu. Statyczne wpisy wymagają ręcznej aktualizacji.
  • Skalowalność i łatwość zarządzania. OSPF pozwala organizować sieć w obszary, dzięki czemu nawet duża liczba sklepów jest łatwa w obsłudze. Dodawanie nowych oddziałów sprowadza się do dołączenia ich do protokołu zamiast konfigurowania wielu statycznych tras.
  • Brak wsparcia OSPF w IPsec. W większości implementacji IPsec dynamiczne protokoły IGP (np. OSPF) nie są wspierane – producent VMware wprost zaznacza, że „OSPF dynamic routing is not supported for routing through IPSec VPN tunnels” Aby przesyłać OSPF po szyfrowanym tunelu, trzeba nakładać dodatkowy tunel (np. GRE lub IPIP), co zwiększa złożoność.
  • Szybsze przełączenie łącza. W przykładzie opisanym niżej przełączenie ruchu na zapasowe łącze zajmuje ok. 1 ms, ponieważ tunel IPIP jest zestawiony na stałe. Router zmienia jedynie koszt trasy w OSPF, a gotowe trasy znajdują się już w tablicy routingu.

Schemat rozwiązania

Poniższy diagram ilustruje architekturę – sklep (oddział) i centrala mają dwa uplinki. Główne łącze (WAN 1) to SD‑WAN Orange, zaś WAN 2 to łącze zapasowe dowolnego operatora z publicznym adresem IP.

Na zapasowym łączu stale działa tunel IPIP, którym płyną pakiety dynamicznego routingu OSPF. Koszt trasy przez tunel backupowy jest wyższy, więc używana jest tylko w przypadku awarii głównego łącza.

Konfiguracja w centrali (HQ)

Poniższy przykład zakłada, że centrala posiada publiczny adres IP oraz dwa łącza WAN: SD‑WAN Orange i zapasowe łącze operatora z publicznym adresem IP. W każdym przypadku należy zastąpić wartości PUBLICZNY-ADRESIPLOKALNY, PUBLICZNY-ADRESIPZDALNY, BRAMA-ORANGE itp. właściwymi adresami z waszej sieci.

1. Utworzenie tunelu IPIP

Tunel IPIP zestawiamy zawsze pomiędzy publicznymi adresami centrali i oddziału. W scentralnej konfiguracji lokalny adres to publiczny adres centrali (na zapasowym łączu), a adres zdalny to publiczny adres oddziału:

/interface ipip
add allow-fast-path=no local-address=PUBLICZNY-ADRESIPLOKALNY \
    name=ipip-tunnel-sklep remote-address=PUBLICZNY-ADRESIPZDALNY

2. Adresacja tunelu

Na świeżo utworzonym interfejsie nadajemy adres z podsieci /30. Dobrym zwyczajem jest używanie podsieci z zakresu prywatnego przeznaczonej tylko do tuneli – zapobiega to kolizjom z adresacją LAN. Przykładowo:

/ip address
add address=10.14.2.2/30 interface=ipip-tunnel-sklep network=10.14.2.0

3. Konfiguracja OSPF

Dynamiczny routing OSPF wymaga utworzenia instancji protokołu, obszaru i definicji interfejsów:

/routing ospf instance
add name=ospf-instance-1 router-id=10.13.13.2

/routing ospf area
add name=ospf-area-1 instance=ospf-instance-1

/routing ospf interface-template
add area=ospf-area-1 networks=10.250.0.0/24 passive
add area=ospf-area-1 cost=10 networks=10.14.2.0/30
add area=ospf-area-1 networks=100.103.0.0/30

Najważniejsze parametry:

  • Koszt (cost). Wyższy koszt dla interfejsu tunelu oznacza, że OSPF wybierze go tylko wtedy, gdy główne połączenie stanie się niedostępne. W naszym przykładzie koszt 10 sprawia, że trasa przez tunel backupowy jest mniej preferowana.
  • Passive interface. Lokalne sieci (np. LAN centrali) oznaczamy jako passive, aby router nie wysyłał do nich pakietów OSPF. Zmniejsza to ilość ruchu w sieci i eliminuje niepotrzebną propagację tras.

4. Przełączanie na łącze zapasowe (fail‑over)

Router Mikrotik potrafi monitorować dostępność bramy poprzez funkcję check‑gateway i na tej podstawie wyłączać/aktywować trasę. W dokumentacji Mikrotik opisano scenariusz z dwoma uplinkami, gdzie pierwszy jest preferowany, a drugi pełni rolę backupu. Trasę domyślną definiujemy więc z różnymi wartościami distance oraz z parametrem check-gateway=ping wskazującym publiczny adres do testów (np. 1.1.1.1):

/ip route
# Trasa główna (SD‑WAN Orange) – niższy dystans oznacza wyższy priorytet
add check-gateway=ping distance=2 dst-address=0.0.0.0/0 \
    gateway=1.1.1.1 scope=30 target-scope=30
add dst-address=1.1.1.1/32 gateway=BRAMA-ORANGE scope=9

# Trasa zapasowa – większy dystans, aktywuje się tylko przy braku odpowiedzi
add distance=5 dst-address=0.0.0.0/0 gateway=ADRES-GATEWAY-ZAPASOWY

Wpis dla adresu 1.1.1.1/32 upewnia się, że router zna drogę do testowanego serwera; bez tego check‑gateway nie zadziała. Gdy 1.1.1.1 nie odpowiada na serię pingów, trasa główna zostaje oznaczona jako nieaktywna, a cały ruch trafia przez trasę zapasową.

5. Dodatkowa tablica routingu i znaczniki mangle

Jeśli zapasowe łącze posiada własny publiczny adres IP, ruch z tego adresu wymaga oddzielnej tablicy routingu. Najpierw tworzymy tablicę, potem dodajemy domyślną trasę w tej tablicy i tworzymy regułę mangle oznaczającą pakiety wychodzące z publicznego adresu zapasowego:

/routing table
add fib name=play

/ip route
add distance=1 dst-address=0.0.0.0/0 gateway=ADRES-GATEWAY-ZAPASOWY routing-table=play

/ip firewall mangle
add chain=output action=mark-routing new-routing-mark=play \
    src-address=PUBLICZNYADRESIP-ZAPAS

Konfiguracja w oddziale (sklepie)

Oddział konfiguruje tunel IPIP w analogiczny sposób, podając swój publiczny adres jako local-address, a adres centrali jako remote-address. Adres IP tunelu w oddziale to 10.14.2.1/30:

/interface ipip
add allow-fast-path=no local-address=PUBLICZNY-ADRESIPLOKALNY \
    name=ipip-tunnel-centrala remote-address=PUBLICZNY-ADRESIPZDALNY

/ip address
add address=10.14.2.1/30 interface=ipip-tunnel-centrala network=10.14.2.0

OSPF w oddziale

Ustawiamy unikalny router‑id w instancji OSPF i analogiczną strukturę obszarów. Lokalne sieci (np. 192.168.12.0/24) oznaczamy jako passive, a interfejs tunelu otrzymuje wyższy koszt niż trasa główna przez SD‑WAN:

/routing ospf instance
add name=ospf-instance-1 router-id=10.13.13.255

/routing ospf area
add instance=ospf-instance-1 name=ospf-area-1

/routing ospf interface-template
add area=ospf-area-1 networks=192.168.12.0/24 passive
add area=ospf-area-1 cost=10 networks=10.14.2.0/30
add area=ospf-area-1 networks=100.103.0.0/30

Fail‑over i routowanie w oddziale

Oddział definiuje domyślne trasy podobnie do centrali, z niższym dystansem dla SD‑WAN (Orange) i wyższym dla łącza zapasowego. Oprócz tego, aby zapewnić dostęp do routera z publicznym adresu zapasowego, tworzymy osobną tablicę routingu (strefa) i oznaczamy pakiety mangle z tym adresem:

/ip route
# Brama domyślna SD‑WAN (priorytet 1, monitorowanie pingiem)
add check-gateway=ping distance=1 dst-address=0.0.0.0/0 \
    gateway=ADRES-BRAMY-SDWAN

# Brama domyślna dla łącza zapasowego (priorytet 2)
add distance=2 dst-address=0.0.0.0/0 gateway=ADRES-BRAMY-ZAPAS

/routing table
add fib name=strefa

/ip route
add distance=2 dst-address=0.0.0.0/0 gateway=ADRES-BRAMY-ZAPAS routing-table=strefa

/ip firewall mangle
add chain=output action=mark-routing new-routing-mark=strefa \
    src-address=PUBLICZNY-ADRES-IP

Końcowa konfiguracja NAT w oddziale obejmuje dodanie interfejsu zapasowego do listy interfejsów WAN, aby oba łącza zapewniały internet klientom sklepu.

Testy i utrzymanie

  1. Sprawdzenie sąsiedztwa OSPF. Polecenie /routing ospf neighbor print w obu lokalizacjach powinno pokazać sąsiada po drugiej stronie tunelu. Brak sąsiada oznacza problem z tunelami IPIP lub zaporą.
  2. Weryfikacja tras OSPF. Polecenie /ip route print where routing-protocol=ospf powinno wyświetlać trasy dynamiczne do podsieci LAN w oddziałach. Sprawdź, czy koszt tras odpowiada oczekiwanym wartościom.
  3. Test fail‑over. Odłącz główne łącze SD‑WAN i obserwuj, czy router wyłącza trasę główną oraz czy ruch przechodzi przez zapasową trasę (status S w tablicy routingu). Po przywróceniu łącza ruch powinien wrócić na trasę główną.
  4. Monitorowanie i logowanie. Warto włączyć logowanie zdarzeń OSPF (/system logging add topics=ospf,ospf-discovery action=memory) – pomaga to diagnozować problemy i śledzić zdarzenia w sieci.

Podsumowanie i korzyści biznesowe

Zastosowanie tunelu IPIP z OSPF zapewnia skalowalne i odporne na awarie połączenie między centralą a oddziałami. Dynamiczny routing gwarantuje, że w przypadku awarii głównego łącza sieć automatycznie przełączy się na zapasowy uplink w ciągu milisekund, co minimalizuje przestoje i nie wymaga interwencji administratora. Ponieważ rozwiązanie opiera się na darmowych funkcjach RouterOS i nie wymaga drogich licencji, znakomicie sprawdza się w sieci wielu sklepów. Alternatywa w postaci IPsec nie wspiera OSPF, dlatego tunel IPIP stanowi optymalny wybór dla firm, które potrzebują dynamicznego zarządzania trasami.

Dodaj komentarz