L'ordine dei servizi di macOS non controlla le rotte VPN
L'ordine dei servizi sceglie tra interfacce normali. Una VPN le supera già, e le sue rotte incluse provengono dal profilo, non da quell'elenco.
Qualcosa su un sito web fallisce, un collega ricorda che esiste l'ordine dei servizi e il Wi-Fi viene trascinato sopra Ethernet. Niente cambia, perché quell'elenco non ha mai deciso dove va una destinazione VPN. Apple dà priorità alle connessioni VPN rispetto a quelle normali e le tiene fuori da questo riordino, quindi l'interruttore risponde a una domanda più stretta di quella posta. Il guasto ha bisogno della rotta selezionata e del resolver, non di una nuova classificazione.
Cosa cambia l'ordine dei servizi e cosa non tocca mai
«Imposta ordine dei servizi» si trova in Impostazioni di Sistema, Rete, nel menu Azione, e classifica le connessioni normali quando due o più sono attive. Quella classificazione sceglie il servizio primario, che fornisce la rotta predefinita e parte del comportamento del resolver. È uno spareggio tra pari, non un interruttore per destinazioni private dietro un tunnel. Un portatile con Wi-Fi e un adattatore Ethernet USB lo usa per rispondere a una domanda sensata, e quella domanda non riguarda il tunnel.
Un profilo VPN porta rotte incluse, destinazioni escluse e talvolta regole per applicazione, e sono queste a decidere cosa entra nel tunnel; il menu di ordinamento non le modifica. Per questo un profilo a tunnel diviso può lasciare il traffico pubblico fuori mentre la VPN supera ancora ogni interfaccia fisica. Trascinare il Wi-Fi in cima non rende raggiungibile un intervallo privato e non ferma una destinazione che il profilo include già. L'elenco sposta interfacce; il profilo sposta prefissi. Apple documenta la priorità nella sua pagina sull'ordine dei servizi di rete, che vale una lettura prima di riordinare qualsiasi cosa.
Leggi la rotta che la macchina ha effettivamente scelto
Chiedi alla macchina dove va un indirizzo specifico con route get 10.20.4.10, poi ripeti per IPv6 con route -n get -inet6 2001:db8::10. Le due famiglie sono decisioni separate, quindi una rotta IPv4 funzionante non dice nulla su quella v6, e una sottorete connessa direttamente o un prefisso più specifico batte comunque l'etichetta generale della connessione, ed è esattamente per questo che l'etichetta continua a ingannare le persone.
Se l'output nomina l'interfaccia del tunnel, il profilo ha catturato la destinazione e l'ordinamento è irrilevante. Se nomina l'interfaccia fisica, il profilo non l'ha fatto, e nessun trascinamento cambierà la tabella dei prefissi. Entrambi gli output nominano anche l'indirizzo sorgente che la macchina userebbe, ed è il campo da citare quando confronti due esecuzioni. Salva l'output prima di cambiare qualcosa, perché è l'unica prova che avrai dopo.
Il DNS risolve per nome, non per interfaccia
Resolver con ambito e specifici del dominio significano che la risposta può variare per nome invece che per interfaccia. scutil --dns stampa la configurazione del resolver che il sistema sta effettivamente usando, voci con ambito comprese. L'ordine dei servizi influenza quale servizio fornisce il resolver predefinito, ma un ambito specifico per nome può vincere comunque.
Per questo un ping verso un indirizzo può funzionare mentre il nome host fallisce, o il contrario. Leggi entrambi gli output prima di scegliere un colpevole.
Cambia il profilo, poi rileggi entrambi gli output
Quando una politica di destinazione deve cambiare, il proprietario è il profilo VPN: rotte incluse, rotte escluse e tutte le regole di tunnel diviso che il fornitore supporta. Cambiare interfacce sposta solo la discussione. Su un Mac gestito da remoto, salva prima lo stato di rete attuale, perché perdere il tunnel su una macchina che non puoi raggiungere è un viaggio, non un ripristino.
Riproduci il guasto, leggi la rotta, leggi il resolver, cambia una cosa, poi rileggi gli stessi due output. Mescolare più servizi e profili insieme lascia una macchina che nessuno sa spiegare, compresa la persona che l'ha riparata. Il test è finito quando entrambi gli output concordano con la modifica che intendevi. Se ancora discordano, il profilo e la macchina descrivono due politiche diverse, e il profilo è quello da cambiare.