Hvad gør IncludeAllNetworks i en IKEv2-profil på en Mac?
Nøglen afgrænser trafik til tunnelen med navngivne undtagelser. Den er ikke en standardrute, den ignorerer EnforceRoutes, og gatewayen skal videresende det, den tillader.
I en indbygget IKEv2-profil er den interessante nøgle ikke et afkrydsningsfelt, det er IncludeAllNetworks, og det, den ændrer, er omfanget af hvad systemet må sende uden for tunnelen. Sæt den til 1, og macOS behandler tunnelen som vejen for stort set al IP-trafik, minus et sæt undtagelser, som den definerer, og som du kan udvide. Fordi den ligger i en profilordbog og ikke i en menu, betyder den heller ikke det, de fleste antager, når de læser sætningen send al trafik.
Hvad nøglen ændrer inde i netværksstakken
Uden den opfører tunnelen sig som en netværksgrænseflade med tilknyttede ruter. En standardrute gennem den grænseflade fanger det meste trafik, og enhver mere specifik rute på en anden grænseflade vinder stadig for sit eget præfiks. Det er normal routing, og det er derfor delt tunnellering sker næsten ved et tilfælde.
Med nøglen aktiveret holder omfanget op med at være en routingpræference og bliver en politik om, hvilken trafik der må forlade gennem noget andet end tunnelen. Systemet skal stadig nå netværket for at holde forbindelsen i live, så politikken leveres med undtagelser i stedet for at foregive, at de ikke findes. Aktivering efterlader aldrig maskinen helt uden en fungerende vej. Det, du får, er en kortere liste af veje, end du antog, og den liste er dokumenteret.
Den praktiske konsekvens er, at tilføjelse af en rute ikke længere forklarer resultatet. Hvis en destination stadig nås direkte, er spørgsmålet ikke, hvilken rute der vandt, men om en undtagelse dækker den.
Undtagelserne er en del af indstillingen
Apple dokumenterer flere udelukkelser ved siden af hovednøglen, som dækker lokale netværk, Apple Push Notification-trafik, mobilnetværkstjenester og enhedskommunikation. Hver har sine egne platform- og versionsbetingelser, så den samme profil kan opføre sig forskelligt på tværs af macOS-versioner.
Nogle af disse udelukkelser er indre. Trafik, der er nødvendig for at etablere og opretholde netværksadgang, herunder håndtering af captive portal, skal være tilladt, ellers kan maskinen ende med at være forbundet til ingenting og ude af stand til at rette det.
Så kommer de bevidste valg. At tillade en printer derhjemme er ikke samme beslutning som at tillade et præfiks for en arbejdsressource, og begge adskiller sig fra at lade APNs være tilgængelig, så notifikationer fortsat ankommer. Noter, hvilke du har aktiveret, i selve profilen, i stedet for at opdage dem senere ud fra en fejlrapport.
Hvorfor det ikke er det samme som en standardrute
En standardrute er en post i routingtabellen, og tabeller taber. Et mere specifikt præfiks slår den, en applikationsafgrænset forbindelse kan omgå den, og en anden grænseflade med en bedre metrik kan overtage, uden at nogen rører VPN-konfigurationen.
Apples routingvejledning gør forskellen eksplicit: almindelige standardruter kan tilsidesættes af mere specifikke ruter, mens indstillingen for bredere omfang definerer, hvilken trafik tunnelen skal bære, og hvad der skæres ud af den. Den ene er en præference, den anden er tættere på en regel.
Den forskel ændrer også, hvordan du diagnosticerer en lækage. Med en standardrute undersøger du ruter og metrikker. Med omfangsnøglen undersøger du profilrevisionen, de installerede undtagelser og adfærden, der er specifik for versionen, fordi routingtabellen ligger nedstrøms for en beslutning, der blev truffet tidligere.
EnforceRoutes er en anden knap
EnforceRoutes lyder som den strenge version af samme idé, og folk stabler de to i troen på, at flere nøgler betyder større dækning. Apple dokumenterer, at den ignoreres, når IncludeAllNetworks er aktiveret, så den anden nøgle køber intet i den kombination.
Behandl den som et alternativ til konfigurationer, der ikke bruger det bredere omfang, ikke som forstærkning. Hvis du ikke kan forklare, hvad hver nøgle gør på egen hånd, gør det kun profilen sværere at gennemgå at tilføje begge.
Hvad gatewayen og profilejeren skal blive enige om
En klientindstilling kan ikke få en server til at videresende trafik, den aldrig blev konfigureret til at videresende. Gatewayen skal acceptere sessionen, uddele adresser, levere en returvej for de præfikser, du vil nå, og betjene DNS i den ordning, du valgte. Hvis den kun router ét præfiks, producerer det brede klientomfang trafik, der ankommer og dør. Én anmodning til en destination uden for gatewayens ruter beviser det på et minut.
En app-ejet tunnel er igen et særligt tilfælde. Udbyderen skal implementere eller eksponere den understøttede adfærd; installation af en anden indbygget IKEv2-profil ændrer ikke en tunnel, som en anden app allerede styrer, og en IKEv2-nøgle er ikke et OpenVPN-direktiv, som en anden klient vil læse.
For den aktuelle nøgleliste og versionsbetingelser, læs Apples IKEv2-payloadreference i stedet for en profil, nogen kopierede for år tilbage.
Accepter en profilrevision som helhed
Før du ændrer en Mac, der administreres eksternt, skal du skrive målversionerne af macOS, den tilsigtede internetudgang, de private præfikser, der skal forblive tilgængelige, og hver udelukkelse, du aktiverer, ned. Bevar derefter en gendannelsesvej, der ikke afhænger af den tunnel, du er ved at ændre.
Test friske offentlige anmodninger, private anmodninger, begge adressefamilier og navneopløsning, og kontroller den installerede revision i stedet for designfilen. Hvis noget stadig går direkte, så afgør, om det er en dokumenteret undtagelse, en anden forbindelseskontekst eller en egentlig konfigurationsfejl, og ændr en af de tre i stedet for at udvide uvedkommende nøgler.