In een native IKEv2-profiel is de interessante sleutel geen selectievakje, maar IncludeAllNetworks, en wat die verandert is de reikwijdte van wat het systeem buiten de tunnel mag versturen. Zet hem op 1 en macOS behandelt de tunnel als de route voor vrijwel al het IP-verkeer, op een reeks uitzonderingen na die het zelf definieert en die u kunt uitbreiden. Omdat de sleutel in een profieldictionary staat en niet in een menu, betekent hij ook niet wat de meeste mensen aannemen wanneer zij de uitdrukking al het verkeer versturen lezen.

Wat de sleutel in de netwerkstack verandert

Zonder de sleutel gedraagt de tunnel zich als een netwerkinterface met bijbehorende routes. Een standaardroute via die interface vangt het meeste verkeer af, en een specifiekere route op een andere interface wint nog steeds voor zijn eigen prefix. Dat is gewone routering, en daarom ontstaat split tunneling bijna per ongeluk.

Met de sleutel ingeschakeld is de reikwijdte geen routeringsvoorkeur meer, maar een beleid over welk verkeer via iets anders dan de tunnel mag vertrekken. Het systeem moet het netwerk nog steeds kunnen bereiken om de verbinding in stand te houden, dus het beleid komt met uitzonderingen in plaats van te doen alsof die niet bestaan. Inschakelen laat de machine nooit helemaal zonder werkende route achter. Wat u krijgt is een kortere lijst routes dan u aannam, en die lijst is gedocumenteerd.

Het praktische gevolg is dat het toevoegen van een route de uitkomst niet langer verklaart. Als een bestemming nog steeds rechtstreeks wordt bereikt, is de vraag niet welke route heeft gewonnen, maar of een uitzondering erop van toepassing is.

De uitzonderingen horen bij de instelling

Apple documenteert verschillende uitsluitingen naast de hoofdsleutel, voor lokale netwerken, verkeer van Apple Push Notification, mobiele diensten en apparaatcommunicatie. Elk daarvan heeft eigen platform- en versievoorwaarden, dus hetzelfde profiel kan zich per macOS-versie anders gedragen.

Sommige van die uitsluitingen zijn intrinsiek. Verkeer dat nodig is om netwerktoegang op te zetten en te onderhouden, inclusief de afhandeling van captive portals, moet worden toegestaan, anders kan de machine nergens meer mee verbonden raken en dat niet meer herstellen.

Dan komen de bewuste keuzes. Een thuisprinter toestaan is niet dezelfde beslissing als een prefix van een werkresource toestaan, en beide verschillen van APNs bereikbaar laten zodat meldingen blijven binnenkomen. Leg vast welke u hebt ingeschakeld, in het profiel zelf, in plaats van ze later uit een bugrapport te ontdekken.

Waarom het niet hetzelfde is als een standaardroute

Een standaardroute is een regel in de routeringstabel, en routeringstabellen verliezen. Een specifiekere prefix verslaat hem, een verbinding die aan een toepassing is gebonden kan hem omzeilen, en een tweede interface met een betere metriek kan het overnemen zonder dat iemand de VPN-configuratie aanraakt.

De routeringsrichtlijnen van Apple maken het onderscheid expliciet: gewone standaardroutes kunnen door specifiekere routes worden overschreven, terwijl de bredere scoping-instelling bepaalt welk verkeer de tunnel moet dragen en wat daarvan wordt uitgezonderd. Het ene is een voorkeur, het andere ligt dichter bij een regel.

Dat verschil verandert ook de manier waarop u een lek diagnosticeert. Met een standaardroute bekijkt u routes en metrische waarden. Met de scoping-sleutel bekijkt u de profielrevisie, de geïnstalleerde uitzonderingen en het gedrag per versie, omdat de routeringstabel volgt op een beslissing die eerder is genomen.

EnforceRoutes is een andere knop

EnforceRoutes klinkt als de strenge versie van hetzelfde idee, en mensen stapelen de twee in de overtuiging dat meer sleutels meer dekking betekenen. Apple documenteert dat hij wordt genegeerd wanneer IncludeAllNetworks is ingeschakeld, dus de tweede sleutel levert in die combinatie niets op.

Behandel hem als alternatief voor configuraties die de bredere scoping niet gebruiken, niet als versterking. Als u niet kunt uitleggen wat elke sleutel op zichzelf doet, maakt het toevoegen van beide het profiel alleen maar moeilijker te beoordelen.

Waar de gateway en de eigenaar van het profiel het over eens moeten zijn

Een clientinstelling kan een server niet dwingen verkeer door te sturen waarvoor hij nooit is geconfigureerd. De gateway moet de sessie accepteren, adressen uitgeven, een retourpad bieden voor de prefixen die u wilt bereiken en DNS leveren volgens de opzet die u hebt gekozen. Als hij slechts een prefix routeert, levert de brede client-scope verkeer op dat aankomt en verdwijnt. Een verzoek naar een bestemming buiten de routes van de gateway bewijst dat binnen een minuut.

Een tunnel die eigendom is van een app is weer een apart geval. De provider moet het ondersteunde gedrag implementeren of beschikbaar maken; het installeren van een tweede native IKEv2-profiel wijzigt geen tunnel die al door een andere app wordt beheerd, en een IKEv2-sleutel is geen OpenVPN-richtlijn die een andere client leest.

Lees voor de actuele sleutellijst en versievoorwaarden de IKEv2-payloadreferentie van Apple in plaats van een profiel dat iemand jaren geleden heeft gekopieerd.

Accepteer een profielrevisie als geheel

Voordat u een op afstand beheerde Mac wijzigt, schrijft u de doelversies van macOS op, de bedoelde internetuitgang, de privéprefixen die bereikbaar moeten blijven en elke uitsluiting die u inschakelt. Bewaar daarna een herstelpad dat niet afhangt van de tunnel die u op het punt staat te wijzigen.

Test nieuwe publieke verzoeken, privéverzoeken, beide adresfamilies en naamresolutie, en controleer de geïnstalleerde revisie en niet het ontwerpbestand. Als iets nog steeds rechtstreeks gaat, bepaal dan of het een gedocumenteerde uitzondering is, een andere verbindingscontext of een echte configuratiefout, en wijzig een van die drie in plaats van niet-verwante sleutels te verruimen.

Gerelateerde artikelen