In un profilo IKEv2 nativo la chiave interessante non è una casella di controllo, è IncludeAllNetworks, e ciò che cambia è l’ambito di ciò che il sistema può inviare fuori dal tunnel. Impostala su 1 e macOS tratta il tunnel come il percorso di quasi tutto il traffico IP, meno un insieme di eccezioni che definisce e che puoi estendere. Poiché risiede in un dizionario del profilo e non in un menu, non significa nemmeno ciò che la maggior parte delle persone presuppone leggendo la frase inviare tutto il traffico.

Cosa cambia la chiave nello stack di rete

Senza di essa il tunnel si comporta come un’interfaccia di rete con rotte collegate. Una rotta predefinita attraverso quell’interfaccia cattura la maggior parte del traffico, e qualsiasi rotta più specifica su un’altra interfaccia vince comunque per il proprio prefisso. È il routing normale, ed è per questo che il tunnel diviso avviene quasi per caso.

Con la chiave abilitata, l’ambito smette di essere una preferenza di routing e diventa una politica su quale traffico può uscire attraverso qualcosa di diverso dal tunnel. Il sistema deve comunque raggiungere la rete per mantenere viva la connessione, quindi la politica arriva con eccezioni invece di fingere che non esistano. Abilitarla non lascia mai la macchina senza alcun percorso funzionante. Quello che ottieni è un elenco di percorsi più corto di quanto presupponessi, e quell’elenco è documentato.

La conseguenza pratica è che aggiungere una rotta non spiega più il risultato. Se una destinazione viene ancora raggiunta direttamente, la domanda non è quale rotta abbia vinto, ma se un’eccezione la copra.

Le eccezioni fanno parte dell’impostazione

Apple documenta diverse esclusioni accanto alla chiave principale, che coprono reti locali, traffico Apple Push Notification, servizi cellulari e comunicazione dei dispositivi. Ognuna ha le proprie condizioni di piattaforma e versione, quindi lo stesso profilo può comportarsi diversamente tra le release di macOS.

Alcune di queste esclusioni sono intrinseche. Il traffico necessario per stabilire e mantenere l’accesso alla rete, inclusa la gestione dei portali captive, deve essere consentito, altrimenti la macchina può finire connessa a nulla e incapace di rimediare.

Poi arrivano le scelte deliberate. Consentire una stampante domestica non è la stessa decisione che consentire un prefisso di una risorsa aziendale, ed entrambe differiscono dal lasciare APNs raggiungibile perché le notifiche continuino ad arrivare. Annota quali hai abilitato, nel profilo stesso, invece di scoprirle più tardi da un rapporto di bug.

Perché non è la stessa cosa di una rotta predefinita

Una rotta predefinita è una voce della tabella di routing, e le tabelle di routing perdono. Un prefisso più specifico la batte, una connessione limitata a un’applicazione può aggirarla, e una seconda interfaccia con una metrica migliore può subentrare senza che nessuno tocchi la configurazione VPN.

La guida di Apple al routing rende esplicita la distinzione: le rotte predefinite ordinarie possono essere sostituite da rotte più specifiche, mentre l’impostazione di ambito più ampia definisce quale traffico il tunnel deve trasportare e cosa ne viene escluso. Una è una preferenza, l’altra è più vicina a una regola.

Questa differenza cambia anche il modo in cui diagnostichi una fuga. Con una rotta predefinita ispezioni rotte e metriche. Con la chiave di ambito ispezioni la revisione del profilo, le eccezioni installate e il comportamento specifico della versione, perché la tabella di routing è a valle di una decisione presa prima.

EnforceRoutes è un’altra manopola

EnforceRoutes suona come la versione rigorosa della stessa idea, e le persone impilano le due nella convinzione che più chiavi significhino più copertura. Apple documenta che viene ignorata quando IncludeAllNetworks è abilitata, quindi la seconda chiave non compra nulla in quella combinazione.

Trattala come un’alternativa per configurazioni che non usano l’ambito più ampio, non come un rinforzo. Se non sai spiegare cosa fa ciascuna chiave da sola, aggiungerle entrambe rende solo il profilo più difficile da rivedere.

Su cosa devono accordarsi il gateway e il proprietario del profilo

Un’impostazione del client non può obbligare un server a inoltrare traffico per cui non è mai stato configurato. Il gateway deve accettare la sessione, distribuire indirizzi, fornire un percorso di ritorno per i prefissi che intendi raggiungere e servire il DNS nell’arrangiamento scelto. Se instrada un solo prefisso, l’ampio ambito del client produce traffico che arriva e muore. Una sola richiesta verso una destinazione fuori dalle rotte del gateway lo dimostra in un minuto.

Un tunnel di proprietà di un’app è ancora un caso separato. Il fornitore deve implementare o esporre il comportamento supportato; installare un secondo profilo IKEv2 nativo non modifica un tunnel che un’altra app già gestisce, e una chiave IKEv2 non è una direttiva OpenVPN che un altro client leggerebbe.

Per l’elenco attuale delle chiavi e le condizioni di versione, leggi il riferimento al payload IKEv2 di Apple invece di un profilo copiato anni fa da qualcuno.

Accetta una revisione del profilo nel suo insieme

Prima di modificare un Mac amministrato da remoto, annota le versioni di macOS di destinazione, l’uscita internet prevista, i prefissi privati che devono restare raggiungibili e ogni esclusione che stai abilitando. Poi conserva un percorso di ripristino che non dipenda dal tunnel che stai per modificare.

Prova richieste pubbliche nuove, richieste private, entrambe le famiglie di indirizzi e la risoluzione dei nomi, e controlla la revisione installata invece del file di progetto. Se qualcosa passa ancora diretto, decidi se è un’eccezione documentata, un contesto di connessione diverso o un vero errore di configurazione, e cambia uno di questi tre invece di ampliare chiavi non correlate.

Articoli correlati