Blog (472)
Komentarze (5k)
Recenzje (0)
@wojtekadamsTurris Omnia Wi-Fi 6 — router o nieskończonych możliwościach

Turris Omnia Wi‑Fi 6 — router o nieskończonych możliwościach

06.07.2023 | aktual.: 25.08.2023 15:14

Router Turris Omnia był jednym z pierwszych projektów, który wsparłem w serwisie Indiegogo.com. Produkt ten na tyle był (jest) udany, że uwierzyłem w finansowanie społecznościowe do tego stopnia, że bez problemu od czasu do czasu dorzucam swoje kilka złotych do innych akcji, które według mojego widzimisię na to zasługują.

Omnia działa bezawaryjnie pod moim dachem już od ponad sześciu lat, regularnie otrzymując aktualizację systemu od inżynierów ze stowarzyszenia non-profit CZ.NIC. Czas i rozwiązania idą do przodu, więc nieuniknionym korkiem było pojawienia się odświeżonej wersji routera.


Bazową częścią urządzenia jest płyta główna, która przez stowarzyszenie nazywana jest platformą Omnia. Sercem układu jest procesor Marvel Armada 385 (dwurdzeniowym ARM) pracującym z częstotliwością 1,6 GHz. Aktualna rewizja płyty ma wbudowane 2 GB pamięci RAM i 8 GB eMMC i trzy gniazda miniPCIe.

Do tej pory pojawiły się trzy rewizje płyty:

  • CZ11NIC13  - pierwsza wersja Turris Omnia, która była wysłana do sponsorów z kampanii Indiegogo, a także była pierwszą partią dostępną w sprzedaży detalicznej. Model ten był oferowany w wersjach z pamięcią 1GB lub 2GB, z Wi-Fi lub bez;
  • CZ11NIC20 - w tej rewizji zmiana polegała na tym, że zamiast dwóch kości RAM na płycie znajdowały się cztery. Routery w tej wersji były produkowane tylko w konfiguracji z Wi-Fi i z 2GB pamięci RAM;
  • CZ11NIC23 - najbardziej zauważalną zmianą jest srebrny kolor obudowy. Ta wersja jest produkowana tylko z Wi-Fi i 2 GB pamięci RAM, tak samo jak CZ11NIC20.
191380
191381

W zależności od modelu urządzenia wyposażone są w różne typy karty miniPCI WiFi.

191382
191383

Oczywiście CZ.NIC nie zmusza do kupowania kolejnych nowych modeli swojego routera jeśli już jakiś posiadamy, to możemy bez problemu rozszerzyć jego możliwości i dostosować do obecnych standardów, jak na przykład Wi‑Fi 6. Stowarzyszenie udostępnia aktualnie dwa zestawy dodatków:

  • Turris Omnia LTE kit — zawierający kartę miniPCI z chipem modemu Quectel EP06, a więc modułem LTE kategorii 6 zoptymalizowanym pod kątem aplikacji M2M i IoT;

  • Turris Omnia Wi-Fi 6 upgrade kit — w którego w skład między innymi  wchodzi karta miniPCI Dual Band WiFi 6 AW7915-NP1 i nowa górna obudowa z dodatkowymi otworami na anteny.

Za takie podejście należą się gromkie brawa. 


Turris Omnia Wi‑Fi 6 bazuje na najnowszej rewizji płyty, czyli CZ11NIC23. Zesstaw wyposażony jest w kartę AW7915-NP1 opartej na chipie Mediatek MT7915AN, która zapewnia Wi‑Fi 6 5 GHz i drugą kartę DNXA-97-H, która bazuje na procesorze Qualcomm Atheros AR9287 i odpowiada za wsparcie dla  standardu 2,4 Ghz. A za wydajność odpowiada wspomniany już procesor ARMv7, 2 GB pamięci RAM i 8 GB pamięci eMMC.

191327
191329
191328
191338

Jak widać na poniższych zdjęciach, router nadal charakteryzuje się surową stylizacją, która moim zdaniem tu pasuje w stu procentach. Front, to niezmienne w pełni konfigurowalnych dwanaście diod w towarzystwie przycisku zmieniającego ich jasność i portu USB 3.0.

191330
191333
191332
191331
191336

Na tylnej ścianie rozlokowano wejście dla zasilania, 4x interfejsy LAN, przycisk RESET, złącze  WAN i SFP, a także dodatkowy port USB 3.0.

191334

System operacyjny, który odpowiada za zarządzanie routerem to Turris OS, opiera się on na popularnej dystrybucji Linuksa OpenWrt, która posiada ogromne wsparcie społeczności z całego świata i jest w pełni konfigurowalna, bez żadnych ograniczeń.

Turris Omnia można konfigurować za pomocą przyjaznego dla użytkownika interfejsu  reForis, który zawiera również kreatora wstępnej konfiguracji. W przeciwieństwie do swojej poprzedniej wersji, reForis może poszczycić się tym, że został zbudowany przy użyciu nowoczesnych technologii, takich jak Bootstrap, React i Flask.

191362
191364
191366
191365
191367

reForis nie tylko umożliwia wstępną konfigurację, ale także z jego poziomu doinstalujemy predefiniowane pakiety, dzięki którym znacznie rozszerzymy możliwości routera, między innymi dostępne są:

  • NetMetr, specjalne narzędzie, które mierzy parametry internetowe, takie jak wysyłanie, pobieranie i czas odpowiedzi;
  • PaKon, pozwala monitorować aktywność wybranych urządzeń w sieci domowej;
  • NAS, aby router działał jako serwer DLNA, SAMBA, czy klient sieci torrent;
  • Sentinel (dynamic firewall) to system zbierania danych zawierający tysiące sond z całego świata. Sondy wysyłają dane o podejrzanym ruchu do centrali Turris, gdzie są oceniane i wykrywane są poważne ataki;
  • LXC, lekka wirtualizacja, która pozwala uruchomić  dowolny system Linux, który będzie traktowany jak komputer podłączony do sieci LAN;
191363

To jest tylko wierzchołek możliwości, jakie proponuje reForis, ale jakby dla kogoś było za mało zawsze może użyć z drugiego webowego interfejsu LuCI lub po prostu zalogować się po ssh i wykorzystać drzemiącą moc Turris OS.

191360
191361
191369

Omnia ma trzy gniazda mPCIe, dzięki czemu oferuje wystarczająco dużo miejsca nie tylko dla kart Wi‑Fi, ale także dla modemu LTE lub dysku mSATA. W zależności od potrzeb możemy zbudować domowy NAS o wydajności porównywalnej z komercjalnymi rozwiązaniami od Synology lub QNAP.

Dla mnie jednak bardziej potrzebną opcją jest rozszerzenie o drugie zapasowe połączenie z Internetem. Mój aktualny dostawca, nie oferuje nic innego niż skrętka wychodząca z modemu docsis, dlatego też jako backup dla połączenia ze światem wykorzystam LTE.

Plan zakłada, że połączenia za pomocą LTE, będzie nawiązywane tylko w przypadku braku Internetu z portu WAN — switch failover.

W zestawie Turris Omnia LTE kit znalazł się wszystko, co powinno być, czyli modem na mPCIe, dwie anteny, radiator i dwa pigtaile. Producent nie dołącza żadnej dokumentacji, czy instrukcji. Te musiałem znaleźć na stronie domowej. Pomocne były aż trzy podstrony, które zaoferowały na tyle jasną instrukcję, aby przejść przez ów proces bez większych perturbacji.

191341

Instalacja modemu była banalna. Za pomocą śrubokręta krzyżakowego odkręciłem sześć śrub, a następnie ostrożnie zdjąłem górną pokrywę routera, aby nie urwać przewodów połączonych z pigtailami. Warto zwrócić uwagę czy termo-przewodzący pad nadal jest przyczepiony do radiatora procesora (na zdjęciach był na spodzie pokrywy), jeśli się oddzielił trzeba go z powrotem przymocować do coolera.

191343
191342

Na płycie głównej Omnia znajduje się gniazdo na standardową kartę SIM, a obok niego znajduje się slot mPCIe, do którego modem LTE musi powędrować. Wczepiony modem zabezpieczamy śrubami.

191345
191346
191344
191347

Z górnej pokrywy  należy usunąć dwie czarne zaślepki. Warto zwrócić uwagę, że na koreczkach znajdują się małe haczyki, które blokują je w otworach. Ja o tym nie wiedziałem i  trochę musiałem się pogimnastykować, aby wy wyciągnąć.

191348
191349
191350

W odsłonięte otwory wkładamy dołączone do zestawu pigtaile i wkręcamy anteny. Przewody z pigtaili podłączamy do zewnętrznych dwóch złączy U.FL (środkowe według specyfikacji obsługuje lokalizacje GPS/GLONASS).

191352
191351

Modem LTE może się nagrzewać pod obciążeniem, więc aby zmniejszyć temperaturę, warto dokleić dołączony do zestawu pasywne chłodzenie.

191355
191353
191357
191356
191359

Teraz możemy skręcić obudowę, włączyć router i zalogować się do interfejsu LuCI bo tylko z jej poziomu możemy skonfigurować połączenie LTE.

Uff ta łatwiejsza część za nami 🙂.

Zawarte w instrukcjach kroki są jak najbardziej poprawne, problem pojawia się w momencie kiedy informacje są rozproszone i przez to można coś pominąć . W moim przypadku tak też się stało. Umknął mi krok z instalacją wymaganych pakietów dla obsługi modemu... Możemy to zrobić na dwa sposoby. Korzystając z menadżera pakietów w webowym LuCI lub przez ssh wpisując dwie komendy w konsoli:

root@turris:~# opkg update
root@turris:~# opkg install kmod-usb-net-qmi-wwan libqmi uqmi luci-proto-qmi
191376

Na paczkę składają się sterowniki QMI WWAN, biblioteki pomocnicze, narzędzie wiersza poleceń i rozszerzenie webowego interfejsu LuCI. Teraz z poziomu Network -> Interfaces możemy utworzyć nowy interfejs sieciowy wykorzystujący protokół  "QNI Cellular". Jak widać na załączonym obrazku, musimy podać ścieżkę do modemu, wpisać APN (różny w zależności od operatora komórkowego) i kod PIN do odblokowania SIM.

191377

Dalej w zakładce Firewall Settings konieczne jest dodanie nowo utworzonego interfejsu w odpowiedniej strefie zapory sieciowej. Jako że połączenie modemowe będzie źródłem Internetu, to należy przypisać je do strefy wan.

191378

Od teraz interfejs LTE widnieje na liście interfejsów.

191374
191379

Takie ustawienie gwarantuje, że cały ruch  między routerem a Internetem będzie przechodzić przez interfejs lte, a fizyczny wan nie będzie działać. A o to nam nie chodzi, więc trzeba konfigurować dalej. Tu z pomocą przychodzi bardzo szczegółowy opis rozwiązania, który dostępny jest pod linkiem: https://wiki.turris.cz/doc/en/howto/multiwan

Tak więc, aby zastosować funkcję failover potrzebujemy pakietu mwan3, instalujemy go z wiersza poleceń lub menadżera pakietów LuCI

root@turris:~# opkg install mwan3
root@turris:~# opkg install luci-app-mwan3

W kolejnym kroku trzeba zrobić porządek w interfejsach sieciowych, tak aby cały ruch mógł być kierowany z powrotem przez interfejs WAN po uruchomieniu routera (ustawienie odpowiednich metryk). Można to zrobić przez zmianę w plikach znajdujących się w /etc/config/ lub wyklikanie w interfejsie webowym. Moja docelowa konfiguracja nie różni się w ogóle od tego co zostało opisane na wiki przez producenta, dlatego też wybrałem szybszą drogę, czyli operacje bezpośrednio na plikach konfiguracyjnych.

CTRL+C, CTRL+V

W pliku /etc/config/network trzeba ustawić wartości wspomnianych metryk: 10 dla interfejsu wan i 50 dla nowej reguły routingu, która będzie używana przez interfejs lte (mniejsza metryka = większy priorytet).

config interface 'wan'
  option ifname 'eth1'
  option proto 'dhcp'
  option defaultroute '1'
  option metric '10'

config interface 'lte'
  option proto 'qmi'
  option device '/dev/cdc-wdm0'
  option apn 'gprs.base.be'
  option pincode '1111'
  option pdptype 'ipv4'
  option auth 'pap'
  option defaultroute '0'

config route 'lte_route'
  option interface 'lte'
  option target '0.0.0.0'
  option gateway '10.64.64.64'
  option netmask '0.0.0.0'
  option metric '50'

Kolejna krok, to konfiguracji firewalla (uruchomienie śledzenia połączeń) w /etc/config/firewall. W sekcji wan wystarczy dodać opcję conntrack z wartością 1.

config zone
  option conntrack '1'
  option name 'wan'option input 'REJECT'
  option output 'ACCEPT'
  option forward 'REJECT'
  option masq '1'
  option mtu_fix '1'
  option network 'wan wan6 lte'

mwan3 domyślnie jest skonfigurowany, jednak to ustawienie nie przekłada się w żadnym stopniu na to co potrzebujemy, dlatego też konfigurację musimy zrobić od zera. Tak, więc definiujemy interfejs i członków sekcji (members) dla wan i lte oraz politykę i reguły sekcji. Reguła sekcji default określa, że cały ruch jest kierowany na podstawie reguły zdefiniowanej w zasadach sekcji wan_lte. Więcej o parametrach można dowiedzieć się na stronie domowej mwan3.

Finalnie plik powinien wyglądać następująco:

config interface 'wan'
  list track_ip '217.31.204.130'
  list track_ip '193.29.206.206'
  list track_ip '8.8.4.4'
  list track_ip '8.8.8.8'
  option enabled '1'
  option reliability '1'
  option count '1'
  option timeout '2'
  option interval '5'
  option down '3'
  option up '8'

config interface 'lte'
  list track_ip '217.31.204.130'
  list track_ip '193.29.206.206'
  list track_ip '8.8.4.4'
  list track_ip '8.8.8.8'
  option enabled '1'
  option reliability '1'
  option count '1'
  option timeout '2'
  option interval '5'
  option down '5'
  option up '10'

config policy 'wan_lte'
  list use_member 'wan_m1_w1'
  list use_member 'lte_m2_w2'
  option last_resort 'unreachable'

config member 'wan_m1_w1'
  option interface 'wan'
  option metric '1'
  option weight '1'

config member 'lte_m2_w2'
  option interface 'lte'
  option metric '2'
  option weight '2'

config rule 'default'
  option proto 'all'
  option sticky '0'
  option use_policy 'wan_lte'
  option dest_ip '0.0.0.0/0'

Na koniec restertujemy usłychi network i firewall, a na końcu startujemy serwis mwan3.

root@turris:~# /etc/init.d/network restart
root@turris:~# /etc/init.d/firewall restart
root@turris:~# mwan3 start

Aktualny tryb, w którym działa  mwan3 możemy sprawdzić za pomocą komendy

root@turris:~# mwan3 status

Na poniższych zrzutach ekranu widać, że cały ruch przechodzi przez interfejs wan, a gdy przewód eth zostanie odłączony, to od razu ruch jest przełączany na LTE. Zrobione ;)

Teraz tylko trzeba złapać "sygnał" :)
Teraz tylko trzeba złapać "sygnał" :)

W kolejnym etapie planuje stary router wyposażyć w dysk SSD i bezpośrednio z niego uruchamiać system Turris OS, aby nie mieć w przyszłości problemów z wolnym miejscem, bo chciałbym odpalić tam kontenery lxc.

191335
Wybrane dla Ciebie
Komentarze (4)