Rozwiązanie problemu z przekierowaniem portów przy dwóch źródłach Internetu (Dual WAN)

Rozwiązanie problemu z przekierowaniem portów przy dwóch źródłach Internetu (Dual WAN)

W środowiskach, gdzie router posiada dwa niezależne źródła Internetu (np. łącze główne i zapasowe), może pojawić się problem z przekierowaniem portów na łączu dodatkowym. Najczęstszą przyczyną jest brak wymuszenia powrotu ruchu tą samą drogą, którą dotarł do routera.

Dlaczego to ważne?

Jeśli ruch przychodzi z dodatkowego łącza (np. WAN2), ale odpowiedzi wychodzą przez główne łącze (WAN1), sesja się rozłącza. Dzieje się tak, ponieważ adres źródłowy w pakietach odpowiedzi nie pasuje do oczekiwań klienta, a firewall po drodze (np. u operatora) taki ruch odrzuca.

Jak to naprawić?

Rozwiązaniem jest Policy Based Routing (PBR), czyli wymuszenie, by ruch z konkretnego źródła (w tym przypadku przychodzący z dodatkowego łącza) był kierowany z powrotem tą samą trasą. W RouterOS realizujemy to poprzez:

  1. Utworzenie dodatkowej tablicy routingu
    Tablica ta będzie dedykowana dla ruchu pochodzącego z dodatkowego łącza.
    /routing table add name=WAN1 fib
  2. Dodanie bramy domyślnej w tej tablicy
    Wskazujemy bramę operatora dla dodatkowego łącza:
    /ip route add dst-address=0.0.0.0/0 gateway=10.7.0.1 routing-table=WAN1
  3. Oznaczanie połączeń wchodzących z dodatkowego łącza
    Pierwsza reguła oznacza nowe połączenia przychodzące z interfejsu WAN1:
    /ip firewall mangle add chain=prerouting in-interface=ether1-WAN connection-state=new \ action=mark-connection new-connection-mark=WAN1_conn
  4. Wymuszenie powrotu ruchem tą samą drogą
    Druga reguła przypisuje oznaczonemu połączeniu nową trasę, wskazującą dodatkową tablicę routingu:
    add chain=prerouting in-interface-list=LAN connection-mark=WAN1_conn \ action=mark-routing new-routing-mark=WAN1

Efekt

Dzięki tej konfiguracji:

  • Ruch przychodzący z dodatkowego łącza jest prawidłowo przekierowywany.
  • Odpowiedzi na takie połączenia zawsze wychodzą tą samą drogą.
  • Przekierowania portów działają niezależnie od tego, przez które łącze trafi do nas zapytanie.

Wskazówki praktyczne

  • Upewnij się, że Twoje łącze dodatkowe ma publiczny adres IP – przy CGNAT przekierowanie portów nie zadziała.
  • Jeśli korzystasz z failover, pamiętaj o odpowiednich priorytetach (distance) w trasach domyślnych.
  • Wyłącz FastTrack w firewallu dla ruchu, na który stosujesz PBR – w przeciwnym razie reguły mangle mogą nie działać.

Dodaj komentarz