Co robi IncludeAllNetworks w profilu IKEv2 na Macu?
Klucz ogranicza ruch do tunelu z nazwanymi wyjątkami. Nie jest trasą domyślną, ignoruje EnforceRoutes, a brama musi przekazywać to, co dopuszcza.
W natywnym profilu IKEv2 interesującym kluczem nie jest pole wyboru, lecz IncludeAllNetworks, a zmienia on zakres tego, co system może wysłać poza tunelem. Ustaw go na 1, a macOS potraktuje tunel jako drogę dla praktycznie całego ruchu IP, minus zestaw wyjątków, które definiuje i które możesz rozszerzyć. Ponieważ klucz mieszka w słowniku profilu, a nie w menu, nie znaczy też tego, co większość osób zakłada, czytając sformułowanie wyślij cały ruch.
Co klucz zmienia w stosie sieciowym
Bez niego tunel zachowuje się jak interfejs sieciowy z przypisanymi trasami. Trasa domyślna przez ten interfejs przechwytuje większość ruchu, a bardziej szczegółowa trasa na innym interfejsie nadal wygrywa dla swojego prefiksu. To normalny routing i dlatego dzielenie tunelu zdarza się niemal przez przypadek.
Gdy klucz jest włączony, zakres przestaje być preferencją routingu, a staje się polityką dotyczącą tego, jaki ruch może wyjść przez cokolwiek innego niż tunel. System nadal musi docierać do sieci, aby utrzymać połączenie, więc polityka dostarcza wyjątki, zamiast udawać, że ich nie ma. Włączenie nigdy nie zostawia maszyny całkiem bez działającej drogi. Otrzymujesz krótszą listę dróg, niż zakładałeś, i ta lista jest udokumentowana.
Praktyczna konsekwencja jest taka, że dodanie trasy nie wyjaśnia już wyniku. Jeśli cel nadal jest osiągany bezpośrednio, pytanie nie brzmi, która trasa wygrała, ale czy obejmuje go wyjątek.
Wyjątki są częścią ustawienia
Apple dokumentuje kilka wyłączeń obok głównego klucza, obejmujących sieci lokalne, ruch Apple Push Notification, usługi komórkowe i komunikację z urządzeniami. Każde ma własne warunki platformy i wersji, więc ten sam profil może zachowywać się różnie między wydaniami macOS.
Część tych wyłączeń jest nieodłączna. Ruch potrzebny do nawiązania i utrzymania dostępu do sieci, w tym obsługa portalu przechwytującego, musi być dozwolony, inaczej maszyna może zostać połączona z niczym i nie być w stanie tego naprawić.
Potem przychodzą świadome wybory. Zezwolenie na drukarkę domową to nie ta sama decyzja co zezwolenie na prefiks zasobu firmowego, a obie różnią się od pozostawienia APNs osiągalnego, aby powiadomienia nadal docierały. Zapisz, które z nich włączyłeś, w samym profilu, zamiast odkrywać je później z raportu o błędzie.
Dlaczego to nie to samo co trasa domyślna
Trasa domyślna to wpis w tabeli routingu, a tabele routingu przegrywają. Bardziej szczegółowy prefiks ją pokonuje, połączenie przypisane do aplikacji może ją ominąć, a drugi interfejs z lepszą metryką może przejąć bez dotykania konfiguracji VPN.
Wskazówki Apple dotyczące routingu wyrażają tę różnicę wprost: zwykłe trasy domyślne mogą być nadpisywane przez bardziej szczegółowe, natomiast szersze ustawienie zakresu określa, jaki ruch tunel musi przenosić i co jest z niego wycięte. Jedno jest preferencją, drugie bliżej reguły.
Ta różnica zmienia też sposób diagnozowania wycieku. Przy trasie domyślnej sprawdzasz trasy i metryki. Przy kluczu zakresu sprawdzasz rewizję profilu, zainstalowane wyjątki i zachowanie zależne od wersji, ponieważ tabela routingu jest wynikiem decyzji podjętej wcześniej.
EnforceRoutes to inna gałka
EnforceRoutes brzmi jak surowa wersja tego samego pomysłu, a ludzie układają oba klucze razem w przekonaniu, że więcej kluczy daje większe pokrycie. Apple dokumentuje, że jest ignorowany, gdy IncludeAllNetworks jest włączony, więc drugi klucz nic nie daje w takiej kombinacji.
Traktuj go jako alternatywę dla konfiguracji, które nie korzystają z szerszego zakresu, a nie jako wzmocnienie. Jeśli nie umiesz wyjaśnić, co każdy klucz robi samodzielnie, dodanie obu tylko utrudnia przegląd profilu.
Co musi być uzgodnione między bramą a właścicielem profilu
Ustawienie klienta nie zmusi serwera do przekazywania ruchu, dla którego nigdy nie został skonfigurowany. Brama musi przyjąć sesję, przydzielić adresy, zapewnić drogę powrotną dla prefiksów, które chcesz osiągnąć, oraz obsługiwać DNS w wybranym układzie. Jeśli trasuje tylko jeden prefiks, szeroki zakres klienta wytwarza ruch, który dociera i ginie. Jedno żądanie do celu poza trasami bramy dowodzi tego w minutę.
Tunel należący do aplikacji to znów osobny przypadek. Dostawca musi zaimplementować lub udostępnić obsługiwane zachowanie; instalacja drugiego natywnego profilu IKEv2 nie modyfikuje tunelu, którym zarządza już inna aplikacja, a klucz IKEv2 nie jest dyrektywą OpenVPN, którą odczyta inny klient.
Aby poznać aktualną listę kluczy i warunki wersji, przeczytaj dokumentację ładunku IKEv2 firmy Apple zamiast profilu, który ktoś skopiował lata temu.
Przyjmij rewizję profilu jako całość
Zanim zmienisz Maca zarządzanego zdalnie, zapisz docelowe wersje macOS, zamierzone wyjście do internetu, prywatne prefiksy, które muszą pozostać osiągalne, oraz każde wyłączenie, które włączasz. Następnie zachowaj ścieżkę odzyskiwania, która nie zależy od tunelu, który zamierzasz zmienić.
Przetestuj nowe żądania publiczne, żądania prywatne, obie rodziny adresów i rozwiązywanie nazw, a także sprawdź zainstalowaną rewizję, a nie plik projektu. Jeśli coś nadal idzie bezpośrednio, zdecyduj, czy to udokumentowany wyjątek, inny kontekst połączenia czy rzeczywisty błąd konfiguracji, i zmień jedno z tych trzech, zamiast rozszerzać niepowiązane klucze.