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:
- Utworzenie dodatkowej tablicy routingu
Tablica ta będzie dedykowana dla ruchu pochodzącego z dodatkowego łącza./routing table add name=WAN1 fib
- 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
- 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
- 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ć.