Klient Wi-Fi i hotspot na jednym radiu: co się psuje
Hotspot na Pi może wyglądać zdrowo, gdy jego łącze Wi-Fi w górę się zacina. Przeczytaj kombinacje interfejsów i limity kanałów zainstalowanego radia, zanim obwinisz VPN.
Twój telefon pozostaje połączony z hotspotem, a łącze w górę nie przepuszcza niczego. Pi nadal zgłasza skojarzenie Wi-Fi, punkt dostępowy nadal wysyła ramki beacon, a każde żądanie kończy się przekroczeniem czasu. Jedno radio pełni jednocześnie dwie role i jedna z nich wygrywa, gdy druga potrzebuje kanału. Zanim dotkniesz VPN, ustal, czy zainstalowany sterownik i firmware w ogóle akceptują taką parę ról.
Objaw wskazuje na radio, nie na tunel
Śledź awarię po kolei, a przestanie wyglądać jak błąd routingu. Klient dołącza do hotspotu, dostaje adres i wczytuje jedną lub dwie strony. Potem interfejs stacji ponownie kojarzy się z routerem nadrzędnym po roamingu, odnowieniu klucza lub krótkim spadku sygnału. Punkt dostępowy albo restartuje swój beacon, albo zostawia klientów bez ścieżki, a log VPN wypełnia się próbami ponownego połączenia, które nigdy nie były przyczyną.
Dwie nazwy interfejsów nie tworzą dwóch radii. wlan0 i interfejs punktu dostępowego dzielą jedno urządzenie, jedną maszynę stanów kanału i jeden harmonogram firmware. Jądro dokładnie pokazuje, które kombinacje ról i kanałów obsługuje to urządzenie, więc przeczytaj tę listę zamiast zakładać, że para działa, bo oba interfejsy się podniosły.
Przeczytaj kombinację, zanim cokolwiek zmienisz
Stos bezprzewodowy zgłasza własny kontrakt w sekcji kombinacji interfejsów polecenia iw list. Każda numerowana kombinacja wymienia dozwolone liczby ról, ile interfejsów może istnieć i ile różnych kanałów te interfejsy mogą zajmować jednocześnie. Kombinacja, która wymienia jedną stację i jeden punkt dostępowy na jednym kanale, jest tą, której potrzebuje to wdrożenie.
iw list | sed -n '/valid interface combinations/,/^$/p'
Czytaj liczby, a nie tylko obecność słów. Sterownik może obsługiwać tryb stacji i tryb punktu dostępowego osobno, podczas gdy jedyna legalna kombinacja obu pozwala tylko na jeden kanał, małą liczbę interfejsów lub interwał beacon, którego hotspot nie spełni. Niektóre firmware'y gubią też jedną rolę podczas skanowania lub odnowienia klucza, co wygląda jak niestabilne łącze w górę, a nie jak limit możliwości. Jeśli żadna kombinacja nie wymienia obu ról, para nie jest obsługiwana, cokolwiek sugeruje przycisk hotspotu w pulpicie.
Dokumentacja kombinacji interfejsów cfg80211 opisuje pola i ograniczenie beaconu. Wartości jednego adaptera nie mówią nic o innym, więc zachowaj wynik przy maszynie, zamiast go uogólniać.
Plan kanału i adresów decyduje o reszcie
Punkt dostępowy musi siedzieć na kanale, który radio potrafi obsłużyć, a łącze stacji w górę musi podążać za nadrzędnym punktem dostępowym. Gdy te dwie decyzje się nie zgadzają, jedna rola musi się zrestartować. Na wielu adapterach z jednym radiem hotspot dlatego odzwierciedla kanał stacji, a zmiana kanału po stronie nadrzędnej chwilowo ściąga hotspot razem z nią.
Zaplanuj stronę IP oddzielnie od radia. Routowany hotspot zwykle używa prywatnej podsieci, takiej jak 192.168.50.0/24, z Pi pod 192.168.50.1, pulą DHCP wewnątrz tej podsieci i Pi jako przekazującym resolvera. Tryb współdzielony NetworkManagera konfiguruje przekazywanie i tłumaczenie adresów dla tej podsieci, ale nie dodaje pojemności radia ani nie czyni tunelu jedynym wyjściem. Zapisz, czy klienci są mostkowani w warstwie drugiej, czy routowani w warstwie trzeciej, zanim zaczniesz spierać się o politykę VPN.
Kolejność testów, która oddziela radio od routingu
Pracuj od urządzenia na zewnątrz i zatrzymaj się na pierwszym kroku, który zawiedzie. Te odczyty są bezpieczne w działającym systemie i nie zmieniają żadnej konfiguracji. Uruchom je, gdy klient jest skojarzony, a łącze w górę jest w stanie, który debugujesz.
iw dev
iw dev wlan0 link
nmcli -t -f DEVICE,STATE,CONNECTION device status
ip -br addr show
sysctl net.ipv4.ip_forward
Jeśli iw dev wlan0 link nie pokazuje żadnego skojarzenia, problem radia jest pierwszy, a tunel nieistotny. Jeśli łącze w górę jest skojarzone, a klient nie ma adresu, przyłączenie i uprawnienie DHCP są błędne. Jeśli klient ma adres, ale nie ma osiągalności, brakuje przekazywania, tłumaczenia lub dostarczania resolvera. Dopiero gdy działają zarówno ścieżka hotspotu, jak i ścieżka łącza w górę, zawodzący tunel staje się następną rzeczą do przetestowania.
Zapisz adapter, sterownik i firmware razem z zaakceptowaną kombinacją i regułą kanału. Późniejsza aktualizacja jądra lub firmware może zmienić obsługiwaną listę, i właśnie ta notatka zamienia zagadkę w znane ograniczenie.