MTU w VPN na iPhone: ustal właściciela, zanim zmienisz liczbę
Trzy pytania decydują, czy aplikacja, profil bramy czy nikt na telefonie może zmienić rozmiar. Odpowiedz na nie, zanim pożyczysz liczbę z Maca.
Każda dyskusja o rozmiarze pakietów VPN na iPhone kończy się propozycją tego samego polecenia Mac wobec interfejsu o nazwie ppp0, zwykle z liczbą obok. Nie przenosi się ono i nie byłoby właściwą kontrolą nawet na Macu, chyba że ten interfejs należał do omawianego połączenia. Na telefonie liczbę posiada ten, kto implementuje tunel: system operacyjny dla profilu natywnego, dostawca tunelu pakietowego dla aplikacji albo brama, gdy negocjowany jest udokumentowany atrybut. Trzy pytania rozstrzygają, z którym z tych przypadków masz do czynienia.
Pytanie pierwsze: który klient działa
Profil natywny IKEv2, wbudowany profil Cisco IPsec i klient Cisco firmy trzeciej to trzy różne implementacje z trzema różnymi zestawami obsługiwanych atrybutów. Typ profilu w Ustawieniach mówi, który z nich telefon faktycznie uruchomił, a lista aplikacji mówi, czy w ogóle jest dostawca na ścieżce. Zacznij od tego, bo reszta decyzji z tego wynika. Jeśli na liście aplikacji nie pojawia się żaden dostawca, tunel należy do systemu operacyjnego.
Nie wnioskuj implementacji z dostawcy bramy. Koncentrator Cisco może zakańczać połączenia klientów, którzy nie mają wspólnego nic poza nazwą dostawcy. Zrzut ekranu starej kompilacji na starej wersji mówi, co obsługiwała ta para, a nie co robi telefon w twojej ręce.
Pytanie drugie: kto posiada wartość
Apple udostępnia właściwość MTU twórcom tuneli pakietowych przez obiekt ustawień rozszerzenia sieciowego. To API dla dostawcy, który konfiguruje własny tunel, a nie przełącznik, który użytkownik lub administrator może włączyć u kogoś innego na zainstalowanym kliencie. Aplikacja firmy trzeciej może zdecydować się ją udostępnić, zignorować albo zahardkodować wartość.
Dla profilu natywnego rozmiar interfejsu wybiera system operacyjny, a telefon nie udostępnia do tego żadnego edytora. Dla bramy Cisco dostępu zdalnego istnieje udokumentowany atrybut profilu połączenia, a to, czy działa, zależy od klienta, wersji i wynegocjowanego transportu. Właśnie w tej luce między udokumentowanym a respektowanym myli się skopiowana liczba.
| Owner | Who can change it | Reachable from the phone |
|---|---|---|
| Packet-tunnel provider | The app vendor through its API | Only if the app exposes a setting |
| Native IKEv2 or Cisco IPsec profile | The operating system | No user control |
| Gateway group policy attribute | The gateway administrator | If the client honours it |
Pytanie trzecie: czy objaw w ogóle zależy od rozmiaru
Problemy z rozmiarem mają sygnaturę: małe żądania się udają, duże wysyłki lub duże odpowiedzi zawieszają się, a ta sama usługa działa w innej sieci dostępu. Filtrowanie, limit ładunku aplikacji i zablokowany serwer mogą dać podobną skargę, więc zapisz jedną operację, która zawodzi, obok tej, która działa. Zapisz obie z czasami i rozmiarami, jeśli aplikacja je podaje. Bez tej pary każde późniejsza zmiana to domysł.
Wykonaj ten sam test w Wi-Fi i w sieci komórkowej. Awaria, która podąża za siecią, wskazuje ścieżkę; ta, która podąża za urządzeniem, wskazuje klienta lub profil, a obie potrzebują różnych właścicieli. Użyj tej samej usługi i tego samego konta w obu próbach, inaczej porównanie nic nie mówi.
Dlaczego przepis na Mac wciąż się pojawia
Lata pulpitowych VPN-ów opartych na PPP sprawiły, że zmiana rozmiaru interfejsu stała się legalnym lokalnym obejściem, a te instrukcje skopiowano do wątków mobilnych. Na telefonie nie ma powłoki, nie ma takiej nazwy interfejsu i nie ma trwałości po ponownym połączeniu. Przepis, który rozwiązał problem pulpitu w 2011 roku, podróżował znacznie dalej niż warunki, które czyniły go prawdziwym. Klienci mobilni nie przyjmują do tego żadnego polecenia powłoki, cokolwiek twierdzi wątek.
Traktuj skopiowaną wartość jako hipotezę o ścieżce, a nie jako ustawienie. Jeśli mniejszy rozmiar sprawia, że transfer działa, a większy zawodzi niezawodnie, masz dowody o ścieżce; nadal musisz znaleźć komponent, któremu wolno na nią działać. Te poszukiwania zwykle kończą się na profilu bramy lub u dostawcy aplikacji, a rzadko na telefonie.
Transport zmienia odpowiedź
Jeśli sesja działa po TLS, a nie IPsec, korekta segmentacji TCP na bramie może pomóc, bo przepisuje ogłaszany rozmiar segmentu dla przepływów TCP. Dla ruchu UDP nie robi nic, a obejmuje on więcej współczesnego internetu, niż ludzie się spodziewają. Sprawdź wynegocjowany transport, zanim zaproponujesz zmianę, i wskaż w zgłoszeniu, którego transportu dotknie.
Wykrywanie MTU ścieżki istnieje po to, by końce poznały realny limit zamiast zgadywać. Blokowanie informacji zwrotnej i twarde ustawienie małego rozmiaru zamienia działający duży transfer na stały, ukryty koszt przy każdym połączeniu.
O co zapytać zespół bramy
Poproś o trzy rzeczy: dokładną nazwę atrybutu i jego zakres, czy wdrożone klienty go respektują oraz który transport wynegocjowała sesja. Zmiana zastosowana do jednej zasady grupy jest testowalna; edycja globalna nie, a przenosi ryzyko na użytkowników, którzy nigdy nie zgłosili problemu. Poproś też o odniesienie do dokumentu, bo nazwy atrybutów zmieniają się między wersjami.
Następnie zmień jedną rzecz i ponownie przetestuj pierwotną zawodzącą operację, nie pobieranie testu prędkości. Zachowaj zapis przed i po wraz z wersją klienta i siecią dostępu, aby następny raport można było porównać, a nie roztrząsać od nowa.
Jeśli operacja nadal zawodzi przy pierwotnym rozmiarze, rozmiar nie był przyczyną. Zapisz też ten wniosek, aby następna osoba nie otwierała ponownie tej samej hipotezy.