Två Apple-termer används som om de namngav samma sak, och den förvirringen skickar människor till fel inställningspanel. Network Extension beskriver en förmåga: ett stödt sätt att implementera VPN-tunnlar, proxyservrar och filter. System Extensions beskriver en leverans- och godkännandemekanism för utökningar i användarutrymmet. En modern Mac VPN-klient behöver oftast båda, och därför förklarar ingen av etiketterna ensam ett symptom. Att skilja de två åt svarar på vilken komponent som ska undersökas och vilket godkännandesteg som kan förväntas.

Två frågor, inte en etikett

Fråga vad komponenten gör innan du frågar hur den installeras. Förmågan avgör vilken leverantörsklass som finns och därmed vilken kod som hanterar dina paket. Leveransmekanismen avgör hur binären kommer, hur den godkänns och var dess tillstånd registreras. En produkt kan implementera en pakettunnel utan att leverera en systemutökning på äldre versioner, och den kan leverera en systemutökning som implementerar något annat än en tunnel.

Kärnutökningar är den tredje termen som folk blandar in. De var det äldre sättet att köra privilegierad nätkod, de krävde andra godkännanden, och Apple har i åratal styrt utvecklare bort från dem. Att tillämpa ett recept för godkännande av kärnutökningar på en modern klient slösar tid på en dialog som aldrig visas.

Läs leverantörens distributionsanteckningar för den macOS-version du kör i stället för ett foruminlägg från en tidigare version. Arkitekturen ändrades mer än en gång, och instruktionerna blir snabbt föråldrade. En anteckning som nämner godkännande av kärnutökningar beskriver en annan era av produkten.

Vad Network Extension erbjuder

Ramverket erbjuder leverantörstyper för de vanliga nätverksuppgifterna: en pakettunnel för VPN-trafik, en app-proxy för strömmar per applikation, ett innehållsfilter för att inspektera trafik och DNS-proxyhantering för resolverens beteende. Leverantörstypen avgör vad utökningen kan göra, och en klient som levererar två leverantörer kan utföra två olika arbeten.

Det spelar roll vid diagnostik eftersom samma anslutningssymptom kan komma från en tunnel, ett filter eller en DNS-proxy. Att blockera en webbplats är ett filterbeslut, att inte nå ett privat subnät är oftast ett tunnelbeslut, och att lösa fel adress är oftast ett resolverbeslut. Att namnge leverantörstypen snävar in sökningen innan någon logg läses.

Ingenting i ramverket antyder en integritetshållning. En utökning i användarutrymmet har fortfarande behörigheter, konfiguration och en operatör bakom sig, så behandla arkitekturen som en implementeringsdetalj och inte som en tillförlitlighetssignal. Fråga vem som driver slutpunkten och vad den är konfigurerad att samla in.

Vad System Extensions ändrar

Mekanismen flyttar privilegierad kod ut ur kärnan och in i användarutrymmet, och den ändrar hur operativsystemet ber om samtycke. Aktivering är ett separat steg från installation, och användaren eller en MDM-profil måste tillåta det. En klient som installeras men aldrig aktiveras ser ut att finnas i mappen Applications och gör ingenting för anslutningen.

Tillståndet registreras av systemet och inte av appen, vilket är användbart eftersom det kan frågas efter. Kommandot nedan listar de utökningar systemet känner till och deras aktiveringstillstånd.

systemextensionsctl list
scutil --nc list

Det första kommandot svarar på om komponenten är installerad och aktiverad. Det andra listar de VPN-konfigurationer systemet har, vilket är en annan fråga och ofta den som spelar roll när en anslutningsprofil saknas i stället för att vara trasig.

Vilken som ska undersökas för ett givet symptom

Koppla symptomet till lagret innan du öppnar en inställningspanel. En saknad konfiguration är en profilfråga, en installerad men inaktiv komponent är en leveransfråga, och en aktiv komponent som inte släpper igenom trafik är en förmågefråga.

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

Loggströmmen är det gemensamma beviset för de två sista raderna. Att läsa nätverksutökningens delsystem berättar vilken leverantör som hanterade strömmen, och ett filterbeslut ser annorlunda ut än ett tunnelfel även när användaren beskriver båda som trasig VPN.

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

Dra inte slutsatsen att en utökning är aktiv bara för att det finns en ikon i menyraden. Ikoner överlever misslyckade aktiveringar, och en inaktuell ikon är en av de vanligaste orsakerna till att ett supportärende börjar på fel ställe. Läs i stället aktiveringstillståndet, eftersom det är vad systemet registrerar.

Godkännande, MDM och myten om kärnutökningen

På hanterade Macar tillhör godkännandesteget MDM-profilen, och en användare som klickar på Allow i System Settings kan fortfarande blockeras av en policy som inte har uppdaterats. Fråga skrivbordsteamet vilken mekanism som godkänner utökningen för den flottan innan du ber användaren klicka på något.

På en icke-hanterad Mac visas godkännandefrågan en gång, och ett avslag kan vara permanent tills utökningen installeras om. Det beteendet förklarar maskinen där klienten fungerade före en OS-uppgradering och nu rapporterar en anslutning som aldrig upprättas.

Skriv ned leverantörstypen, aktiveringstillståndet och godkännandemekanismen för den klient du distribuerar. Dessa tre fakta besvarar de flesta framtida frågor om en Mac VPN utan att öppna debatten förmåga kontra leverans igen.

Relaterade artiklar