Dodanie drugiego po┼é─ůczenia internetowego do routera z OpenWrt

Zawarto┼Ť─ç

W zale┼╝no┼Ťci, gdzie u┼╝ywamy naszego routera, mo┼╝emy by─ç w sytuacji, ┼╝e potrzebujemy mie─ç plan awaryjny, w przypadku gdy nasze podstawowe po┼é─ůczenie internetowe przestanie dzia┼éa─ç.

Osobi┼Ťcie (Marzec 2020) jestem w sytuacji, gdzie moje po┼é─ůczenie internetowe pozostawia wiele do ┼╝yczenia. Mimo szybkiej pr─Ödko┼Ťci, jego niezawodno┼Ť─ç doprowadza mnie do sza┼éu (Virgin Media, kt├│re na szcz─Ö┼Ťcie w Kwietniu zmieniam na co innego), w zwi─ůzku z tym pomy┼Ťla┼éem o wprowadzeniu dodatkowego po┼é─ůczenia. Te dodatkowe po┼é─ůczenie odbywa─ç si─Ö b─Ödzie poprzez modem 4G pod┼é─ůczony przez port USB do mojego routera i w za┼éo┼╝eniu opiera─ç si─Ö na zasadzie, gdy podstawowe po┼é─ůczenie przestanie dzia┼éa─ç, ca┼éy ruch przekierowany b─Ödzie na po┼é─ůczenie awaryjne.

W tym celu wykorzystam mój router ASUS RT-AC57U z oprogramowaniem OpenWrt oraz Modem na USB ZTE MF823 (oryginalnie od BT, ale ze zmienionym oprogramowaniem i w pełni odblokowany).

Co wi─Öcej, jako ┼╝e ten modem ma mo┼╝liwo┼Ť─ç pod┼é─ůczenia zewn─Ötrznych anten, wyposa┼╝y┼éem go r├│wnie┼╝ w nie, aby nieco wzmocni─ç sygna┼é. Ca┼éo┼Ť─ç b─Ödzie u┼╝ywa─ç operatora SMARTY, kt├│ry bazuje na infrastrukturze sieci 3 w Wielkiej Brytanii.

I, mimo że sieć 3 i jej zasięg pozostawia wiele co życzenia, jeżeli w mojej lokalizacji działa oraz zapewnia nielimitowany transfer danych za £20 miesięcznie, to nie jest tak źle.

A wi─Öc zaczynamyÔÇŽ

Sprawdzone w wersji OpenWrt 21.02 oraz OpenWrt 22.03


Pod┼é─ůczenie modemu 4G przez USB do naszego routera #

W pierwszej kolejno┼Ťci musimy zainstalowa─ç niezb─Ödne pakiety. Mo┼╝emy to zrobi─ç przy pomocy graficznego interfejsu z poziomu przegl─ůdarki internetowej (System > Software) lub z poziomu terminala SSH przy pomocy nast─Öpuj─ůcej komendy:

opkg update
opkg install kmod-usb-net-rndis kmod-usb-net kmod-usb2 usb-modeswitch kmod-usb-net-cdc-ether

Nast─Öpnie aktywowan─ů kart─Ö SIM wk┼éadamy do naszego modemu i po┼é─ůczamy modem do portu USB naszego routera.

Za pomoc─ů komendy dmesg sprawdzamy, czy system wykry┼é nowe urz─ůdzenie, w moim przypadku:

[1383.238310] usb 1-2: new high-speed USB device number 2 using xhci-mtk
[1388.676158] usb 1-2: USB disconnect, device number 2
[1389.358290] usb 1-2: new high-speed USB device number 3 using xhci-mtk
[1389.586108] rndis_host 1-2:1.0 usb0: register 'rndis_host' at usb-1e1c0000.xhci-2, RNDIS device

Z poziomu przegl─ůdarki internetowej przechodzimy do Network > Interfaces na naszym routerze i dodajemy nowy interfejs (Add new interface).

W przypadku mojego modemu, który wykrywany jest jako karta sieciowa przez USB, wprowadzam nazwę 4G, wybieram protokół (Protocol) DHCP client oraz interfejs (Interface) usb0.

Niekt├│re modemy mog─ů by─ç wy┼Ťwietlane jako karta sieciowa eth2 zamiast usb0.

4G screen 1 - OpenWrt Add Interface

W nast─Öpnym kroku pozostawimy wszystko domy┼Ťlnie, a skupimy si─Ö tylko na ustawieniach zapory sieciowej (Firewall Settings), gdzie dodamy nasz wan, wan6. Po czym zapisujemy zmiany i na nast─Öpnym kroku klikamy Zapisz i Zastosuj (Save & Apply).

4G screen 2 - OpenWrt Interfaces Firewall Settings

Je┼╝eli wszystko wykonali┼Ťmy prawid┼éowo, nasze po┼é─ůczenie powinno by─ç aktywne.

4G screen 3 - OpenWrt Network Interfaces 4G

Na tym etapie mo┼╝ecie ustawi─ç w regu┼éach zapory sieciowej (Firewall) jakie po┼é─ůczenia, porty, adresy IP maj─ů korzysta─ç z tego, a nie innego po┼é─ůczenia internetowego (interfejsu).

W moim przypadku, jak wspomnia┼éem na pocz─ůtku, chc─Ö ustawi─ç mo┼╝liwo┼Ť─ç u┼╝ywania dw├│ch po┼é─ůcze┼ä, z czego, to po 4G b─Ödzie aktywowane, gdy podstawowe si─ůdzie.

Nim przejdziemy dalej, sprawdzamy czy nasze po┼é─ůczenie dzia┼éa:

ping -c 1 -I usb0 1.1.1.1

I idziemy dalej…


U┼╝ywanie wielu po┼é─ůcze┼ä internetowych #

W tym celu potrzebujemy pakiet mwan3 oraz aplikacj─Ö, dodaj─ůc─ů mo┼╝liwo┼Ť─ç zarz─ůdzania przez przegl─ůdark─Ö internetow─ů luci-app-mwan3.

Jak powy┼╝ej, mo┼╝emy je zainstalowa─ç z System > Software lub z poziomu terminala SSH:

opkg update
opkg install mwan3 luci-app-mwan3

Podstawow─ů funkcj─ů mwan3 jest nie tylko mo┼╝liwo┼Ť─ç u┼╝ywania r├│wnoleg┼éego (load balancing) obu po┼é─ůcze┼ä internetowych, ale r├│wnie┼╝ monitorowanie ka┼╝dego z po┼é─ůcze┼ä. W momencie, gdy jedno z po┼é─ůcze┼ä przestanie dzia┼éa─ç, ruch internetowy przekierowywany jest na to, kt├│re dzia┼éa i to jest opcja, kt├│rej potrzebuje najbardziej.

Po zainstalowaniu ww. pakiet├│w otrzymamy dodatkow─ů opcj─Ö w menu Network > Load Balancing (lub MultiWAN Manager).

4G screen 4 - OpenWrt Network Load Balancing (MultiWAN Manager)

W pierwszej kolejno┼Ťci musimy skonfigurowa─ç nasze interfejsy (Interfaces), dodaj─ůc 4G (tutaj u┼╝ywamy nazwy ustawionej w Network > Interfaces).

4G screen 5 - OpenWrt Load Balancing (MultiWAN Manager) Interfaces

Po dodaniu 4G, w nowej zak┼éadce interfejsu (Interface), zaznaczamy nasz interfejs jako w┼é─ůczony (Enabled) oraz w polach Tracking hostname or IP address wprowadzamy adresy DNS 1.1.1.1 oraz 1.0.0.1. Dzi─Öki temu nasz router b─Ödzie sprawdza┼é, czy nasz interfejs dzia┼éa. W momencie, gdy nie dzia┼éa, ruch nie b─Ödzie na niego kierowany.

4G screen 6 - OpenWrt Load Balancing (MultiWAN Manager) Interfaces 4G

Warto r├│wnie┼╝ wyedytowa─ç nasz interfejs wan oraz wan6 kt├│re domy┼Ťlnie ma ustawione do sprawdzania aktywno┼Ťci serwery Google oraz OpenDNS.

4G screen 7 - OpenWrt Load Balancing (MultiWAN Manager) Interfaces

W przypadku wan ustawiamy

1.1.1.1
8.8.8.8
1.0.0.1
8.8.4.4

W przypadku wan6 (opcjonalne) ustawiamy

2606:4700:4700::1111
2001:4860:4860::8888
2606:4700:4700::1001
2001:4860:4860::8844

Opr├│cz sekcji opisanych powy┼╝ej, w opcjach zobaczymy r├│wnie┼╝:

Tracking method ÔÇö spos├│b, w jaki okre┼Ťlane jest, czy interfejs dzia┼éa, czy nie. Domy┼Ťlnie zostawiamy na ping.

Tracking reliability ÔÇö okre┼Ťla, ile adres├│w zdefiniowanych w sekcji Tracking hostname or IP address musi odpowiedzie─ç pozytywnie, aby uznane by┼éo, ┼╝e interfejs dzia┼éa. Domy┼Ťlnie zostawiamy na 1.

Ping count ÔÇö okre┼Ťla, ile zapyta┼ä ping ma zosta─ç wys┼éanych w jednym te┼Ťcie. Zostawiamy na 1.

Je┼╝eli odpowied┼║ na ping trwa bardzo d┼éugo, po jakim czasie ma zosta─ç przerwane ÔÇö to okre┼Ťla Ping timeout. Natomiast jak cz─Östo ping ma by┼Ť powt├│rzony okre┼Ťla Ping interval. W przypadku, gdy ping zako┼äczy si─Ö powodzeniem, po jakim czasie ma by─ç zapytanie ponowione okre┼Ťla Failure interval. Te trzy opcje w moim przypadku ustawi┼éem odpowiednio 2/5/1 dla wan oraz 4G. W przypadku, gdy interfejs oznaczony zostanie jako niedzia┼éaj─ůcy (Offline), po jakim pr├│ba sprawdzenia aktywno┼Ťci i przywr├│cenia stanu je┼╝eli oka┼╝e si─Ö, ┼╝e interfejs dzia┼éa, okre┼Ťla Recovery interval ÔÇö w moim przypadku ustawi┼éem 3 sekundy.

Pozosta┼éy nam jeszcze dwie opcje, kt├│re warto przemy┼Ťle─ç, a mianowicie Interface down oraz Interface up.

Interface down okre┼Ťli, po ilu b┼é─Ödach przy wykonaniu ping interfejs uznany jest za niedzia┼éaj─ůcy (Offline), analogicznie Interface up po ilu prawid┼éowych odpowiedziach ping uznany zostanie za dzia┼éaj─ůcy. W moim przypadku jako ┼╝e wan uznany jest za bardziej stabilny (sic!), a 4G, nawet gdy dzia┼éa, mo┼╝e zg┼éasza─ç b┼é─ůd, nawet gdy wszystko dzia┼éa, ustawi┼éem 4/6 (wan) oraz 6/8.

Opr├│cz tego musimy jeszcze sprecyzowa─ç, kt├│ry interfejs jest podstawowy, a kt├│ry dodatkowy (awaryjny). Dokonujemy tego przy pomocy opcji Metrics w ustawieniach podstawowych interfejs├│w. W moim przypadku wan ustawi┼éem na 10 a 4G na 50. Zmiany tej dokonujemy z poziomu Network > Interfaces edytuj─ůc ustawienia poszczeg├│lnych interfejs├│w.

Wszystko potwierdzamy klikaj─ůc Zapisz i Zamknij (Save & Apply).


Ja zapewne zauwa┼╝y┼ée┼Ť, Load Balancing (MultiWAN Manager) zawiera r├│wnie┼╝ zak┼éadk─Ö Members, Policies oraz Rules, kt├│re musimy odpowiednio ustawi─ç, w zale┼╝no┼Ťci co chcemy osi─ůgn─ů─ç.

Members #

Tutaj ustawiamy nasze interfejsy z dodatkowym podzia┼éem na to, kt├│ry jest wa┼╝niejszy od drugiego (podobnie jak ustawili┼Ťmy wcze┼Ťniej). I tak w moim przypadku, gdy chc─Ö osi─ůgn─ů─ç automatyczne u┼╝ywanie 4G w momencie, gdy moje podstawowe po┼é─ůczenie wysi─ůdzie, doda┼éem dwa wpisy:

4G screen 8 - OpenWrt Load Balancing (MultiWAN Manager) Members

Policies #

Tutaj ┼é─ůczymy nasze powy┼╝sze ustawienia w spos├│b, w jaki maj─ů dzia┼éa─ç - czyli najpierw wan a w przypadku problem├│w 4G.

4G screen 9 - OpenWrt Load Balancing (MultiWAN Manager) Policies

Rules #

Jak sama nazwa m├│wi za siebie, ustawiamy tutaj regu┼éy odno┼Ťnie transferu. Kt├│ry transfer ma by┼Ť przekazywany przez kt├│ry interfejs. Domy┼Ťlnie otrzymujemy zdefiniowane regu┼éy odno┼Ťnie do szyfrowanego ruchu www (https) oraz wszystkiego innego.

W moim przypadku ustawi─Ö jedn─ů regu┼é─Ö domy┼Ťln─ů (default).

┼╗eby zbytnio wszystkiego nie opisywa─ç, skupimy si─Ö na protokole(Protocol), kt├│ry ustawimy na wszystkie (all); Policy assigned ustawiamy na wan_4G.

4G screen 10 - OpenWrt Load Balancing (MultiWAN Manager) rules

Aby wszystkie opcje zosta┼éy prawid┼éowo wprowadzone, uruchamiamy ponownie nasz router lub wykonujemy nast─Öpuj─ůce komendy w terminalu:

/usr/sbin/mwan3 restart
/etc/init.d/network restart
/etc/init.d/firewall restart

Jeżeli chcemy zobaczyć jak wszystko działa sprawdzamy Status > Load Balancing (MultiWAN Manager).

4G screen 11 - OpenWrt Load balancing (MultiWAN Manager) status interface

4G screen 13 - OpenWrt load balancing (MultiWAN Manager) status detail


Powy┼╝sza konfiguracja nie wyczerpuje mo┼╝liwo┼Ťci konfiguracji mwan3. Mo┼╝emy ustawi─ç r├│wnie┼╝, aby po┼é─ůczenie wan oraz 4G by┼éy u┼╝ywane r├│wnolegle, lub te┼╝ przekierowa─ç (przy pomocy odpowiedniej regu┼éy Rules) poszczeg├│lny ruch w sieci przez wyspecjalizowany interfejs. Zastosowa┼ä jest mn├│stwo, a ja skupi┼éem si─Ö tylko na moim celu.

Nale┼╝y pami─Öta─ç, ┼╝e gdy zdecydujemy si─Ö na podpi─Öcie dynamicznego DNS (domeny do naszego zmiennego IP), aby sprecyzowa─ç odpowiedni─ů regu┼é─Ö, aby aktualizacja adresu IP odbywa┼éa si─Ö tylko przez interfejs, kt├│ry do tego celu u┼╝ywamy.

Je┼╝eli jeste┼Ť zainteresowany innymi przyk┼éadami, zach─Öcam do odwiedzenia wpisu braian87b/mwan3-notes.md oraz szczeg├│┼éowego przyk┼éadu konfiguracji braian87b/mwan-config.sh.


Credits:
Failover to LTE using mwan3
Connect 4G USB modem to WRT2200

Komentarze