Due termini Apple vengono usati come se nominassero la stessa cosa, e questa confusione manda le persone nel pannello delle impostazioni sbagliato. Network Extension descrive una capacità: un modo supportato di implementare tunnel VPN, proxy e filtri. System Extensions descrive un meccanismo di consegna e approvazione per le estensioni nello spazio utente. Un client VPN Mac moderno di solito ha bisogno di entrambi, per questo nessuna delle due etichette spiega da sola un sintomo. Separare i due risponde quale componente ispezionare e quale passo di approvazione aspettarsi.

Due domande, non un'etichetta

Chiedi cosa fa il componente prima di chiedere come viene installato. La capacità decide quale classe di provider esiste e quindi quale codice gestisce i tuoi pacchetti. Il meccanismo di consegna decide come arriva il binario, come viene approvato e dove viene registrato il suo stato. Un prodotto può implementare un tunnel di pacchetti senza distribuire un'estensione di sistema sulle versioni precedenti, e può distribuire un'estensione di sistema che implementa qualcosa di diverso da un tunnel.

Le estensioni del kernel sono il terzo termine che le persone confondono. Erano il modo più vecchio di eseguire codice di rete privilegiato, richiedevano approvazioni diverse, e Apple allontana gli sviluppatori da anni. Applicare una ricetta di approvazione delle estensioni del kernel a un client moderno fa perdere tempo su una finestra di dialogo che non apparirà mai.

Leggi le note di distribuzione del fornitore per la versione di macOS che usi invece di un post di forum di una versione precedente. L'architettura è cambiata più di una volta, e le istruzioni invecchiano male. Una nota che menziona l'approvazione delle estensioni del kernel descrive un'altra epoca del prodotto.

Cosa fornisce Network Extension

Il framework fornisce tipi di provider per le attività di rete comuni: un tunnel di pacchetti per il traffico VPN, un proxy applicativo per i flussi per applicazione, un filtro di contenuto per ispezionare il traffico e la gestione del proxy DNS per il comportamento del resolver. Il tipo di provider determina cosa può fare l'estensione, e un client che distribuisce due provider può svolgere due lavori diversi.

Questo conta durante la diagnosi perché lo stesso sintomo di connettività può venire da un tunnel, da un filtro o da un proxy DNS. Bloccare un sito web è una decisione del filtro, non raggiungere una sottorete privata è di solito una decisione del tunnel, e risolvere l'indirizzo sbagliato è di solito una decisione del resolver. Nominare il tipo di provider restringe la ricerca prima che venga letto qualsiasi registro.

Niente nel framework implica una posizione sulla privacy. Un'estensione nello spazio utente ha comunque permessi, configurazione e un operatore dietro, quindi tratta l'architettura come un dettaglio implementativo e non come un segnale di fiducia. Chiedi chi gestisce l'endpoint e cosa è configurato per raccogliere.

Cosa cambia System Extensions

Il meccanismo sposta il codice privilegiato fuori dal kernel e nello spazio utente, e cambia il modo in cui il sistema operativo chiede il consenso. L'attivazione è un passo separato dall'installazione, e l'utente o un profilo MDM deve consentirla. Un client che si installa ma non si attiva mai sembra presente nella cartella Applications e non fa nulla per la connettività.

Lo stato è registrato dal sistema e non dall'app, il che è utile perché può essere interrogato. Il comando seguente elenca le estensioni che il sistema conosce e il loro stato di attivazione.

systemextensionsctl list
scutil --nc list

Il primo comando risponde se il componente è installato e attivato. Il secondo elenca le configurazioni VPN che il sistema detiene, che è una domanda diversa e spesso quella che conta quando un profilo di connessione manca invece di essere rotto.

Quale ispezionare per un dato sintomo

Abbina il sintomo allo strato prima di aprire un pannello delle impostazioni. Una configurazione assente è una questione di profilo, un componente installato ma inattivo è una questione di consegna, e un componente attivo che non lascia passare il traffico è una questione di capacità.

SymptomFirst place to look
No VPN entry at allConfiguration profile or scutil list
Client installed, nothing happensExtension activation state
Tunnel up, private host unreachableTunnel provider routes and policy
One app blocked, others fineFilter or app proxy provider

Il flusso di registro è la prova condivisa per le ultime due righe. Leggere il sottosistema dell'estensione di rete dice quale provider ha gestito il flusso, e una decisione del filtro appare diversa da un guasto del tunnel anche quando l'utente descrive entrambi come VPN rotta.

log show --last 10m --predicate 'process == "nesessionmanager"'

Non concludere che un'estensione sia attiva perché c'è un'icona nella barra dei menu. Le icone sopravvivono alle attivazioni fallite, e un'icona obsoleta è una delle ragioni più comuni per cui una chiamata al supporto inizia nel posto sbagliato. Leggi invece lo stato di attivazione, perché è quello che il sistema registra.

Approvazione, MDM e il mito dell'estensione del kernel

Sui Mac gestiti il passo di approvazione appartiene al profilo MDM, e un utente che clicca Allow in System Settings può essere ancora bloccato da una policy che non è stata aggiornata. Chiedi al team desktop quale meccanismo approva l'estensione per quel parco prima di chiedere all'utente di cliccare qualcosa.

Su un Mac non gestito, la richiesta di approvazione appare una volta e un rifiuto può essere permanente finché l'estensione non viene reinstallata. Questo comportamento spiega la macchina su cui il client funzionava prima di un aggiornamento del sistema e ora segnala una connessione che non si stabilisce mai.

Annota il tipo di provider, lo stato di attivazione e il meccanismo di approvazione per il client che distribuisci. Questi tre fatti rispondono alla maggior parte delle domande future su una VPN Mac senza riaprire il dibattito tra capacità e consegna.

Articoli correlati