Hva gjør IncludeAllNetworks i en IKEv2-profil på Mac?
Nøkkelen avgrenser trafikken til tunnelen med navngitte unntak. Den er ikke en standardrute, den ser bort fra EnforceRoutes, og gatewayen må videresende det den slipper inn.
I en innebygd IKEv2-profil er den interessante nøkkelen ikke en avmerkingsboks, men IncludeAllNetworks, og det den endrer er omfanget av hva systemet har lov til å sende utenfor tunnelen. Sett den til 1, og macOS behandler tunnelen som veien for i praksis all IP-trafikk, minus et sett unntak som det definerer og du kan utvide. Fordi den ligger i en profilordbok og ikke i en meny, betyr den heller ikke det folk flest antar når de leser uttrykket å sende all trafikk.
Hva nøkkelen endrer inne i nettverksstakken
Uten den oppfører tunnelen seg som et nettverksgrensesnitt med ruter knyttet til seg. En standardrute gjennom det grensesnittet fanger mesteparten av trafikken, og en mer spesifikk rute på et annet grensesnitt vinner fortsatt for sitt eget prefiks. Det er vanlig ruting, og det er derfor delt tunneling skjer nesten ved et uhell.
Med nøkkelen slått på er omfanget ikke lenger en ruteringspreferanse, men en policy for hvilken trafikk som har lov til å gå ut gjennom noe annet enn tunnelen. Systemet må fortsatt nå nettverket for å holde forbindelsen i live, så policyen leveres med unntak i stedet for å late som de ikke finnes. Å slå den på etterlater aldri maskinen helt uten fungerende vei. Det du får er en kortere liste over veier enn du antok, og den listen er dokumentert.
Den praktiske konsekvensen er at det å legge til en rute ikke lenger forklarer utfallet. Hvis en destinasjon fortsatt nås direkte, er spørsmålet ikke hvilken rute som vant, men om et unntak dekker den.
Unntakene er en del av innstillingen
Apple dokumenterer flere utelukkelser ved siden av hovednøkkelen, som dekker lokale nettverk, trafikk fra Apple Push Notification, mobiltjenester og enhetskommunikasjon. Hver av dem har egne plattform- og versjonsvilkår, så samme profil kan oppføre seg ulikt mellom macOS-versjoner.
Noen av disse utelukkelsene er iboende. Trafikk som trengs for å opprette og opprettholde nettverkstilgang, inkludert håndtering av captive portal, må være tillatt, ellers kan maskinen ende opp uten forbindelse og uten mulighet til å rette det.
Så kommer de bevisste valgene. Å tillate en hjemmeskriver er ikke samme beslutning som å tillate et prefiks for en arbeidsressurs, og begge skiller seg fra å la APNs være tilgjengelig slik at varsler fortsatt kommer inn. Skriv ned hvilke du har slått på, i selve profilen, i stedet for å oppdage dem senere fra en feilrapport.
Hvorfor det ikke er det samme som en standardrute
En standardrute er en oppføring i rutetabellen, og rutetabeller taper. Et mer spesifikt prefiks slår den, en tilkobling knyttet til et program kan omgå den, og et andre grensesnitt med bedre metrikk kan ta over uten at noen rører VPN-konfigurasjonen.
Apples ruteringsveiledning gjør skillet eksplisitt: vanlige standardruter kan overstyres av mer spesifikke ruter, mens den bredere omfangsinnstillingen definerer hvilken trafikk tunnelen må bære og hva som skjæres ut av den. Det ene er en preferanse, det andre er nærmere en regel.
Den forskjellen endrer også hvordan du diagnostiserer en lekkasje. Med en standardrute undersøker du ruter og metrikk. Med omfangsnøkkelen undersøker du profilrevisjonen, unntakene som er installert og oppførselen per versjon, fordi rutetabellen kommer nedstrøms fra en beslutning som ble tatt tidligere.
EnforceRoutes er en annen knapp
EnforceRoutes høres ut som den strenge versjonen av samme idé, og folk stabler de to oppå hverandre i troen på at flere nøkler gir mer dekning. Apple dokumenterer at den ignoreres når IncludeAllNetworks er slått på, så den andre nøkkelen gir ingenting i den kombinasjonen.
Behandle den som et alternativ for konfigurasjoner som ikke bruker det bredere omfanget, ikke som forsterkning. Hvis du ikke kan forklare hva hver nøkkel gjør på egen hånd, gjør det bare profilen vanskeligere å gjennomgå å legge til begge.
Hva gatewayen og eieren av profilen må være enige om
En klientinnstilling kan ikke få en server til å videresende trafikk den aldri har vært konfigurert for. Gatewayen må godta økten, dele ut adresser, gi en returvei for prefiksene du vil nå og betjene DNS i den ordningen du har valgt. Hvis den bare ruter ett prefiks, gir det brede klientomfanget trafikk som ankommer og dør. Én forespørsel til en destinasjon utenfor gatewayens ruter beviser det på et minutt.
En tunnel eid av en app er igjen et eget tilfelle. Leverandøren må implementere eller eksponere den støttede oppførselen; å installere en andre innebygd IKEv2-profil endrer ikke en tunnel som en annen app allerede styrer, og en IKEv2-nøkkel er ikke et OpenVPN-direktiv som en annen klient vil lese.
For den gjeldende nøkkellisten og versjonsvilkårene, les Apples IKEv2-nyttelastereferanse i stedet for en profil noen kopierte for år siden.
Godta en profilrevisjon som helhet
Før du endrer en Mac som administreres eksternt, skriv ned målversjonene av macOS, den tiltenkte internettutgangen, de private prefiksene som må forbli tilgjengelige og hver utelukkelse du slår på. Behold deretter en gjenopprettingsvei som ikke avhenger av tunnelen du er i ferd med å endre.
Test nye offentlige forespørsler, private forespørsler, begge adressefamilier og navneoppslag, og kontroller den installerte revisjonen i stedet for designfilen. Hvis noe fortsatt går direkte, avgjør om det er et dokumentert unntak, en annen tilkoblingskontekst eller en faktisk konfigurasjonsfeil, og endre en av de tre i stedet for å utvide urelaterte nøkler.