Connectes la VPN, executes route print i la ruta per defecte ara porta una mètrica molt més baixa que abans. La conclusió natural és que la VPN ha pres la ruta per defecte perquè el seu número és més petit. De vegades és exactament el que ha passat. Sovint la mètrica no és el factor decisori i editar-la no canvia res, perquè la decisió es va prendre abans, per la longitud del prefix o per una regla de política.

El símptoma és real: el trànsit que abans sortia per l’adaptador Wi-Fi ara surt pel túnel, o al revés. La mètrica és una entrada d’una cerca que s’executa en un ordre fix, i aquest ordre és el que cal llegir abans de tocar cap número.

Amb què competeix realment el número

La primera comparació és l’especificitat, no la preferència. Una ruta per a 10.20.0.0/16 guanya la de 10.0.0.0/8, i totes dues guanyen la de 0.0.0.0/0, diguin el que diguin les seves mètriques. Una VPN que instal·la una ruta per defecte amb la mètrica més baixa de la màquina encara perd davant de qualsevol ruta més específica que coincideixi amb la destinació, inclosa la ruta d’amfitrió que el client instal·la per al seu propi servidor.

Per això baixar la mètrica d’una ruta per defecte no pot forçar una subxarxa connectada directament a dins del túnel. Si vols aquesta subxarxa dins de la VPN, afegeix una ruta per al prefix o selecciona la taula del túnel amb una regla de política. La mètrica és la palanca equivocada per a aquesta feina.

Check in this orderQuestionWhere you read it
1. Policy and tableWhich routing table does this traffic use?ip rule, client profile
2. Prefix lengthWhich matching route is most specific?route print, ip route
3. MetricWhich of the equally specific routes is preferred?route print, ip route
4. Interface stateIs the chosen next hop reachable?adapter status, link state

Linux decideix la taula abans que la mètrica

A Linux el nucli consulta primer la base de polítiques. ip rule llista les regles i les taules que seleccionen, i ip route get 203.0.113.10 informa de la taula, la ruta i l’adreça d’origen que el nucli faria servir realment per a aquesta destinació. Una mètrica dins de la taula 100 no competeix mai amb una ruta de la taula principal, perquè la regla va triar la taula abans que es comparés cap mètrica.

Per això una ruta pot semblar correcta a ip route show table all i tot i així no portar trànsit. Llegeix la regla que ha coincidit, després la taula que ha seleccionat, i després compara les rutes que hi ha dins. Si s’ha seleccionat la taula equivocada, cap edició de mètrica a l’altra taula no ajudarà.

Windows combina dues mètriques

Windows no té cap base de polítiques per defecte, però combina una mètrica de ruta amb una mètrica d’interfície, i la mètrica automàtica d’interfície pot canviar amb la velocitat de l’enllaç i l’estat de l’adaptador. Per això la mateixa ruta es pot comportar diferent després que aparegui una estació d’acoblament o un adaptador virtual. Find-NetRoute -RemoteIPAddress 203.0.113.10 informa de l’adreça d’origen, el següent salt i la interfície triats, cosa que és més a prop de la decisió real que la taula en brut.

Llegeix els valors de ruta i d’interfície junts. Pujar la mètrica d’una interfície pot moure el trànsit sense que canviï cap entrada de ruta, i un client VPN que posseeix les seves rutes les reinstal·larà en reconnectar-se i descartarà la teva edició.

Mantén el punt final del túnel fora del túnel

Cada túnel necessita un camí fins al seu propi servidor que no passi pel túnel. Els clients instal·len una ruta d’amfitrió per al punt final a través de la porta d’enllaç física, i aquesta ruta ha de romandre més específica que la ruta per defecte que afegeix el client. Esborra-la, o fes que el túnel guanyi la cerca per a aquesta adreça, i els paquets encapsulats intentaran entrar al túnel que han de construir. La connexió falla o entra en bucle.

Comprova aquesta ruta d’amfitrió abans i després de qualsevol canvi de mètrica: ha d’apuntar al següent salt físic i sobreviure a una reconnexió. Si el client la posseeix, canvia el perfil o la configuració gestionada en lloc d’un valor d’execució que es sobreescriurà.

Comprova les dues famílies d’adreces i el context de l’aplicació

IPv4 i IPv6 són decisions separades amb taules separades. Una VPN pot portar IPv4 mentre IPv6 continua fent servir l’encaminador local, i un canvi de mètrica en una família no diu res de l’altra. Comprova les dues, i després comprova el context de l’aplicació. Un procés lligat a una interfície, un namespace de contenidor o una VPN per aplicació poden veure una taula diferent de la teva shell.

Verifica amb l’eina que informa de la decisió per a la destinació real, no amb la llista completa de la taula. Si la ruta triada és la que pretén el disseny, atura’t. Una mètrica que no és el número més petit de la pantalla no és cap defecte, i forçar-la a ser-ho pot trencar el camí del punt final del qual depèn el túnel.

Articles relacionats