Il blocco VPN del tuo iPhone è una politica, non il protocollo
IKEv2 mantiene vivo un tunnel; non decide cosa invia il tuo iPhone quando il tunnel cade. Chiedi al fornitore la politica e le sue eccezioni.
L’icona VPN mostra connesso, il tunnel cade per un momento durante un cambio di rete e il traffico che avrebbe dovuto essere bloccato esce dalla rete cellulare. Nulla nell’interfaccia ha annunciato un vuoto. La funzione su cui contavi è una politica del client e della piattaforma, e un nome di protocollo nelle impostazioni non descrive cosa accade in quel secondo.
Descrivi il blocco come un contratto sugli stati, non come una proprietà di IKEv2 o di On Demand.
Il sintomo: l’icona dice connesso
Un’icona riflette la visione che il client ha del proprio stato, e quella visione può restare indietro rispetto alla realtà per la durata di una riconnessione. Una pagina in cache, una riconnessione rapida o un aggiornamento di stato nascondono tutti l’intervallo. La domanda che vale la pena non è se l’icona fosse verde, ma cosa ha permesso il dispositivo mentre il tunnel era assente. Lo stesso ritardo spiega perché uno screenshot dell’app sia una prova così debole: registra uno stato, non una transizione.
Questa domanda ha risposta solo se la politica la definisce.
Cosa mantiene davvero il protocollo
IKEv2 mantiene e rinnova una relazione IPsec autenticata, e le funzioni di mobilità aiutano a ripristinarla dopo un cambio di indirizzo. È un’affermazione sul ciclo di vita del tunnel. Non dice nulla sul permesso dell’iPhone di inviare altro traffico nel vuoto, perché quel permesso appartiene alla piattaforma e al client, non allo scambio di chiavi. Un dispositivo che si riconnette in meno di un secondo aveva comunque una finestra, ed è in quella finestra che vive il comportamento interessante.
On Demand è ugualmente una descrizione del comportamento di attivazione, non una garanzia universale di blocco.
Cosa offre la piattaforma a uno sviluppatore
Network Extension di Apple espone controlli di ambito del traffico, e la sua guida al routing distingue il comportamento di inclusione di tutte le reti dalle rotte incluse ordinarie ed elenca le eccezioni di sistema. Esiste anche un modello di distribuzione Always On supervisionato, separato dall’impostazione di connessione automatica di un’app personale. Che una data app usi qualcosa di tutto ciò è una proprietà dell’app, non del protocollo che parla.
Il nome di un interruttore non è prova di quale API chiami l’app.
Leggi la funzione come un contratto
Chiedi al fornitore di specificare cinque stati: attivazione iniziale, perdita inattesa del tunnel, disconnessione deliberata, uscita dall’app e riavvio del dispositivo. Metti le eccezioni di sistema e qualsiasi accesso intenzionale alla LAN accanto a quell’elenco. Poi chiedi se la funzione è opzionale, imposta dalla gestione o condizionata a una modalità client, perché una pausa scelta dall’utente e un blocco imposto da un’organizzazione sono prodotti diversi. Scrivi quelle cinque risposte nel registro di distribuzione, perché il prossimo revisore farà esattamente quelle domande.
Una funzione che blocca su una perdita inattesa ma non su una disconnessione deliberata è una progettazione coerente. Semplicemente non è quella descritta dalla pagina di marketing.
Come testare i vuoti
Prova una transizione alla volta con traffico innocuo, nell’app e nella famiglia di indirizzi che ti interessa. Conferma cosa è stato permesso durante il vuoto, non cosa ha mostrato l’icona dopo. Registra la versione del client e la politica accanto al risultato, perché entrambe cambiano e nessuna delle due è visibile dalla schermata delle impostazioni del telefono. È l’unico modo per separare un vuoto reale da un’icona lenta.
Se la risposta conta per la conformità, chiedila per iscritto invece di dedurla da un’etichetta di prodotto.