Blocarea VPN de pe iPhone este o politică, nu protocolul
IKEv2 ține un tunel în viață; nu decide ce trimite iPhone-ul tău când tunelul cade. Cere furnizorului politica și excepțiile ei.
Pictograma VPN arată conectat, tunelul cade o clipă în timpul unei schimbări de rețea, iar traficul care ar fi trebuit blocat iese prin rețeaua mobilă. Nimic din interfață nu a anunțat o lacună. Funcția pe care te bazai este o politică a clientului și a platformei, iar un nume de protocol din setări nu descrie ce se întâmplă în acea secundă.
Descrie blocarea ca un contract despre stări, nu ca o proprietate a IKEv2 sau a On Demand.
Simptomul: pictograma spune conectat
O pictogramă reflectă viziunea clientului asupra propriei stări, iar această viziune poate rămâne în urma realității cu durata unei reconectări. O pagină din cache, o reconectare rapidă sau o reîmprospătare a stării ascund intervalul. Întrebarea care merită pusă nu este dacă pictograma era verde, ci ce a permis dispozitivul cât timp tunelul lipsea. Aceeași întârziere explică de ce o captură de ecran a aplicației este o dovadă atât de slabă: înregistrează o stare, nu o tranziție.
Această întrebare are răspuns doar dacă politica o definește.
Ce menține protocolul de fapt
IKEv2 menține și reînnoiește o relație IPsec autentificată, iar funcțiile de mobilitate ajută la restabilirea ei după o schimbare de adresă. Aceasta este o afirmație despre ciclul de viață al tunelului. Nu spune nimic despre permisiunea iPhone-ului de a trimite alt trafic în lacună, pentru că acea permisiune aparține platformei și clientului, nu schimbului de chei. Un dispozitiv care se reconectează în mai puțin de o secundă a avut totuși o fereastră, iar în acea fereastră trăiește comportamentul interesant.
On Demand este de asemenea o descriere a comportamentului de activare, nu o garanție universală de blocare.
Ce oferă platforma unui dezvoltator
Network Extension de la Apple expune controale de anvergură a traficului, iar ghidul de rutare al său distinge comportamentul de includere a tuturor rețelelor de rutele incluse obișnuite și enumeră excepțiile sistemului. Există și un model de implementare Always On supravegheat, separat de setarea de conectare automată a unei aplicații personale. Dacă o anumită aplicație folosește ceva din asta este o proprietate a aplicației, nu a protocolului pe care îl vorbește.
Numele unui comutator nu este dovada cărei API o apelează aplicația.
Citește funcția ca pe un contract
Cere furnizorului să precizeze cinci stări: activarea inițială, pierderea neașteptată a tunelului, deconectarea deliberată, ieșirea din aplicație și repornirea dispozitivului. Pune excepțiile sistemului și orice acces intenționat la LAN lângă acea listă. Apoi întreabă dacă funcția este opțională, impusă de administrare sau condiționată de un mod al clientului, pentru că o pauză aleasă de utilizator și o blocare impusă de o organizație sunt două produse diferite. Scrie aceste cinci răspunsuri în registrul de implementare, pentru că următorul recenzent va pune exact aceste întrebări.
O funcție care blochează la pierderea neașteptată, dar nu la deconectarea deliberată, este un design coerent. Doar că nu este cel descris de pagina de marketing.
Cum se testează lacunele
Testează o tranziție pe rând cu trafic inofensiv, în aplicația și familia de adrese care te interesează. Confirmă ce a fost permis în lacună, nu ce a arătat pictograma după aceea. Notează versiunea clientului și politica lângă rezultat, pentru că ambele se schimbă și niciuna nu este vizibilă de pe ecranul de setări al telefonului. Este singura modalitate de a separa o lacună reală de o pictogramă lentă.
Dacă răspunsul contează pentru conformitate, cere-l în scris în loc să-l deduci dintr-o etichetă de produs.