Temat: System zarządzenia AP dla OpenWrt
Tak to się zaczęło:
Nie wypaliło mi dziś pewnie spotkanie, więc korzystając z wolnego popołudnia napisałem sobie... kolejny system zarządzenia AP. Mam już kilka takich swoich, ale ten jest inny - bo dedykowany dla OpenWrt i LuCI.
Dla tych którym nie chce się czytać:
- dodaj nowe urządzenia
- dodaj sieć WiFi którą chcesz założyć na tym urządzeniu
- dodaj nową grupę, wybierz w niej wprowadzone urządzenia i sieć wifi
- zapisz wszystko
- naciśnij przycisk "wyślij" jeżeli chcesz aby ta sieć została założona
Zasada działania - instalujemy pakiet na OpenWrt (dowolnym) na którym jest LuCI, wpisujemy routery i monitorujemy AP/routery które są dostępne w sieci. Założyłem że nic na AP nie trzeba będzie instalować, nie ma też żadnego automatycznego wykrywania i dodawania do systemu działających hostów w sieci (no, przy dodawaniu wyświetlam listę z ARPów). Na razie trzeba ręcznie podać adres IP, usera i hasło (patrz jeden ze screenshotów poniżej). Proces w tle (są dwa pakiety - na backend i frontend) - wywołany z crona przesyła do wskazanego routera pewien skrypt do /tmp i go wykonuje, rezultatem są dane które obecnie można systemowo odczytać przez ubusa. I gui właśnie to robi.
Na dzień edycji tego postu wygląda to następująco

Widok głównego okna z listą monitorowanych urządzeń. LuCi ma niewielką użyteczną szerokość ekranu, więc domyślna liczba kolumn jest ograniczona. Użytkownik we własnym zakresie może zdefiniować kolumny które mogą się wyświetlać.

Widok okna dodawania nowego urządzenia (lub edycji dodanego). W Host Address wyświetla się lista dostępnych urządzeń wg tablicy ARP, jest też możliwość ręcznego wpisania adresu IP.

Pozostałe informacje które nie mieszczą się na głównym ekranie dostępne są pod przyciskiem "More". Lista parametrów może większa, zależy ona od tego co urządzenie zgłasza.

W konfiguracji mamy możliwość określenia okresu co jaki urządzenia będą odpytywane (fizycznie robi to cron wywołując odpowiedni skrypt) oraz możliwość wyboru kolumn które będą wyświetlane na głównym ekranie. "Status" wyświetla się zawsze; wybranie zbyt dużej liczby powoduje że główny ekran przestaje być czytelny. Więc należy iść na kompromis i zdecydować co koniecznie chcemy widzieć.

Monitorowane to tylko część projektu. Można zdefiniować listę sieci Wi-Fi które wykorzystamy później, określając...

... niezbędne parametry takiej sieci. Projekt będzie weryfikował czy urządzenie faktycznie np. posiada sieć 5GHz i ustawi parametry tylko dla takich interfejsów.


Mając zdefiniowane urządzenia oraz sieci wifi można powiązać to w grupy - w domyśle grupy AP robią korelacje sieci WiFi i AP na których można te sieci umieścić. Z poziomu grupy można wysłać konfigurację do przypisanych w niej urządzeń. System potrafi tworzyć sieci Wi-Fi, aktualizować sieci o podanym SSID.
Jedną z opcji podczas tworzenia grupy ("Delete all") odpowiada na usunięcie wszystkich istniejących sieci Wi-Fi z AP przez założeniem nowych. Druga opcja ("Use additional script") umożliwia użytkownikowi stworzenie własnego skryptu który będzie wykonywane PRZED utworzeniem lub modyfikacją każdej sieci Wi-Fi na każdym paśmie. Można dzięki temu samodzielnie założyć dodatkowe sieci przewodowe, bridge, VLANy czy inne rzeczy specyficzne dla sieci użytkownika.

System uznaje że urządzenie w trybie OFFLINE jeżeli nie ma z niego danych w czasie 2.5 x zdefiniowany okres odpytywania (czyli jak mamy w cronie co 5min - to po 12,5 minutach zmieni się na czerwony jak nie będzie nowych danych).
Odświeżanie statusu urządzeń jest co 63 sec.
Monitorować można wszystkie urządzenia bazujące na OpenWrt (a także Gargoyle czy MiFi) pod warunkiem że jest dostęp do sprzętu przez ssh z wykorzystaniem loginu i hasła. Logowanie z wykorzystaniem kluczy nie jest jeszcze wspierane.
Polskie tłumaczenie interfejsu jest oczywiście także dostępne.
Zależności:
- sshpass
- apcontroller (luci-app-apcontroller jest do wizualizacji danych i jest frondendem do pakiety apcontroller)
- jeżeli ktoś używa starej wersji dropbear'a to musi zainstalować openssh-client
---
Link do aktualnych pakietów można znaleźć pod adresem: https://github.com/obsy/apcontroller/releases
Źródła projektu dostępne są na moim githubie: https://github.com/obsy/apcontroller









