Ce face IncludeAllNetworks într-un profil IKEv2 de Mac?
Cheia limitează traficul la tunel, cu excepții numite. Nu este o rută implicită, ignoră EnforceRoutes, iar gateway-ul trebuie să redirecționeze ce acceptă.
Într-un profil IKEv2 nativ, cheia interesantă nu este o casetă de bifare, ci IncludeAllNetworks, iar ceea ce schimbă este sfera a ceea ce sistemul poate trimite în afara tunelului. Setați-o la 1 și macOS tratează tunelul drept calea pentru practic tot traficul IP, mai puțin un set de excepții pe care le definește și pe care le puteți extinde. Pentru că stă într-un dicționar de profil, nu într-un meniu, nu înseamnă nici ce presupune majoritatea oamenilor când citesc sintagma trimite tot traficul.
Ce schimbă cheia în stiva de rețea
Fără ea, tunelul se comportă ca o interfață de rețea cu rute atașate. O rută implicită prin acea interfață capturează cea mai mare parte a traficului, iar orice rută mai specifică de pe altă interfață câștigă în continuare pentru propriul prefix. Aceasta este rutarea normală și de aceea tunelarea selectivă apare aproape din întâmplare.
Cu cheia activată, sfera nu mai este o preferință de rutare și devine o politică privind traficul care are voie să iasă prin altceva decât tunelul. Sistemul tot trebuie să ajungă la rețea pentru a ține conexiunea vie, așa că politica vine cu excepții în loc să pretindă că ele nu există. Activarea ei nu lasă niciodată mașina fără nicio cale funcțională. Ce obțineți este o listă de căi mai scurtă decât presupuneați, iar lista este documentată.
Consecința practică este că adăugarea unei rute nu mai explică rezultatul. Dacă o destinație este încă atinsă direct, întrebarea nu este care rută a câștigat, ci dacă o excepție o acoperă.
Excepțiile fac parte din setare
Apple documentează mai multe excluderi alături de cheia principală, acoperind rețelele locale, traficul Apple Push Notification, serviciile celulare și comunicarea cu dispozitivele. Fiecare are propriile condiții de platformă și versiune, așa că același profil se poate comporta diferit între versiunile de macOS.
Unele dintre aceste excluderi sunt intrinseci. Traficul necesar pentru a stabili și menține accesul la rețea, inclusiv gestionarea portalurilor captive, trebuie permis, altfel mașina poate ajunge conectată la nimic și incapabilă să remedieze situația.
Apoi vin alegerile deliberate. A permite o imprimantă de acasă nu este aceeași decizie cu a permite un prefix de resurse de serviciu, iar ambele diferă de a lăsa APNs accesibil ca notificările să continue să sosească. Înregistrați care au fost activate, chiar în profil, în loc să le descoperiți mai târziu dintr-un raport de eroare.
De ce nu este același lucru cu o rută implicită
O rută implicită este o intrare în tabela de rutare, iar tabelele de rutare pierd. Un prefix mai specific o învinge, o conexiune limitată la aplicație o poate ocoli, iar o a doua interfață cu o metrică mai bună poate prelua controlul fără ca cineva să atingă configurația VPN.
Îndrumările Apple privind rutarea fac distincția explicită: valorile implicite obișnuite pot fi înlocuite de rute mai specifice, în timp ce setarea de sferă mai largă definește ce trafic trebuie să transporte tunelul și ce este scos din ea. Una este o preferință, cealaltă seamănă mai mult cu o regulă.
Această diferență schimbă și modul de diagnosticare a unei scurgeri. Cu o rută implicită inspectați rutele și metricile. Cu cheia de sferă inspectați revizia profilului, excepțiile instalate și comportamentul specific versiunii, pentru că tabela de rutare se află în aval de o decizie luată mai devreme.
EnforceRoutes este un alt buton
EnforceRoutes sună ca versiunea strictă a aceleiași idei, iar oamenii le suprapun în credința că mai multe chei înseamnă mai multă acoperire. Apple documentează că este ignorată când IncludeAllNetworks este activată, așa că a doua cheie nu aduce nimic în această combinație.
Tratați-o ca pe o alternativă pentru configurațiile care nu folosesc sfera mai largă, nu ca pe o întărire. Dacă nu puteți explica ce face fiecare cheie separat, adăugarea ambelor face doar profilul mai greu de revizuit.
Asupra căror lucruri trebuie să cadă de acord gateway-ul și proprietarul profilului
O setare de client nu poate obliga un server să redirecționeze trafic pentru care nu a fost niciodată configurat. Gateway-ul trebuie să accepte sesiunea, să distribuie adrese, să ofere o cale de întoarcere pentru prefixele pe care intenționați să le atingeți și să servească DNS în aranjamentul ales. Dacă rutează un singur prefix, sfera largă a clientului produce trafic care ajunge și moare. O singură cerere către o destinație din afara rutelor gateway-ului demonstrează asta într-un minut.
Un tunel deținut de o aplicație este din nou un caz separat. Furnizorul trebuie să implementeze sau să expună comportamentul acceptat; instalarea unui al doilea profil IKEv2 nativ nu modifică un tunel deja administrat de altă aplicație, iar o cheie IKEv2 nu este o directivă OpenVPN pe care o va citi alt client.
Pentru lista actuală de chei și condițiile de versiune, citiți referința pentru payloadul IKEv2 a Apple, nu un profil copiat de cineva acum câțiva ani.
Acceptați o revizie de profil ca un întreg
Înainte de a modifica un Mac administrat de la distanță, notați versiunile țintă de macOS, ieșirea internet dorită, prefixele private care trebuie să rămână accesibile și fiecare excludere pe care o activați. Apoi păstrați o cale de recuperare care nu depinde de tunelul pe care sunteți pe cale să îl modificați.
Testați cereri publice noi, cereri private, ambele familii de adrese și rezolvarea numelor, și verificați revizia instalată, nu fișierul de proiectare. Dacă ceva merge încă direct, decideți dacă este o excepție documentată, un context de conexiune diferit sau o eroare reală de configurare, și schimbați unul dintre aceste trei lucruri în loc să lărgiți chei nelegate.