Per què una ruta VPN no mostra cap passarel·la a la sortida d'ip route
Una línia amb un dispositiu i sense passarel·la és una ruta directa, no una de trencada. Llegeix la destinació, dev i scope, i després confirma-ho amb ip route get.
Les taules d'encaminament es llegeixen com a trencades sempre que la columna de la passarel·la queda buida, quan la línia normalment ja és completa per si sola. El camp via només apareix quan el nucli lliura el paquet a una adreça de salt següent; una ruta enganxada a una interfície arriba a les seves destinacions mitjançant la resolució de capa d'enllaç o mitjançant un parell punt a punt. Llegir les columnes d'esquerra a dreta et diu en quin cas et trobes, i aquesta lectura hauria de passar abans que algú editi una ruta per defecte. La majoria de tiquets sobre una passarel·la absent acaben en aquesta distinció.
Llegeix una línia de ruta columna per columna
Cada entrada s'obre amb la destinació i la longitud del seu prefix, i després afegeix modificadors en un vocabulari fix: via, dev, proto, scope, src i metric. Una línia com 198.51.100.0/24 dev tun0 proto kernel scope link src 198.51.100.2 és densa però està completament especificada. No hi falta res i no s'hi implica cap adreça d'encaminador.
L'absència de via és la part interessant. Sense un salt següent, el nucli resol la destinació directament a la interfície indicada, cosa que per a un túnel significa lliurar la trama al dispositiu de túnel i deixar que l'encapsulació se n'encarregui a partir d'aquí. proto kernel registra que l'entrada es va instal·lar automàticament quan es va assignar una adreça, no pas que l'hagi escrit un administrador. scope link diu que la destinació és abastable en aquell enllaç sense passar per cap encaminador, i src anomena l'adreça que el nucli preferirà com a origen per al trànsit que hi coincideixi.
Ara llegeix una ruta per defecte de la mateixa manera: default via 192.0.2.254 dev eth0 proto static metric 100. Aquí via hi és perquè el paquet sí que necessita un salt següent, i aquest salt ha de ser abastable ell mateix a eth0. Les dues línies no són variants l'una de l'altra; responen preguntes diferents sobre on va el trànsit.
Dues formes de ruta que es confonen entre elles
Una ruta de subxarxa de túnel i una ruta per defecte s'assemblen en una captura de pantalla i es comporten de manera ben diferent. Fes servir la taula de sota com a ajuda de lectura per als camps, i després confirma les xifres reals a la màquina que estàs depurant en lloc de confiar en una mostra d'una guia.
| Piece of the line | What it settles | What it says nothing about |
|---|---|---|
| The destination and mask | Which packets are eligible to match | Where those packets leave the host |
via plus its address | Which next hop receives them, and therefore that a router is involved | Whether that router is reachable or sane |
dev | Which interface carries the encapsulated or raw packet | Whether the interface is up or has a carrier |
proto and scope | Who installed the entry and how far the destination is considered to be | Whether a firewall later drops the traffic |
El que la taula no et pot dir és la intenció. Una ruta directa a un rang privat a través d'un túnel és un disseny deliberat de túnel dividit; la mateixa forma en un amfitrió que hauria d'enviar-ho tot per la VPN és un símptoma. La intenció viu a la configuració que va produir l'entrada, així que mira l'eina que la va instal·lar abans de concloure que el nucli s'ha equivocat.
Igualment, una passarel·la absent no és permís per inventar-ne una. Si una ruta necessita de debò un salt següent, aquest salt ha de ser abastable a la interfície que el transporta, i per a un túnel punt a punt l'adreça del parell no és el mateix objecte que l'adreça local. Tractar l'adreça local del túnel com un encaminador Ethernet és una manera habitual de produir una ruta que sembla correcta i no reenvia res.
Pregunta al nucli quina línia farà servir realment
Llegir la taula no és el mateix que fer la consulta, perquè el nucli consulta regles de política, diverses taules i entrades en memòria cau abans de respondre. El verb que fa la consulta real és ip route get, i imprimeix la ruta que prendria un paquet amb aquestes propietats.
ip route get 203.0.113.37 from 198.51.100.2 iif tun0
Canvia-hi la destinació que de debò t'importa, i després afegeix from o iif quan el trànsit és seleccionat per origen o reenviat, perquè una consulta local ordinària pot triar un camí diferent del que tria un client reenviat. La resposta anomena la interfície, l'adreça d'origen escollida i qualsevol salt següent, que és la mateixa informació amb què s'encaminaria un paquet en aquell moment.
Si la resposta et sorprèn, imprimeix les regles abans de tocar res: ip -4 rule show les llista per ordre de prioritat, i un client VPN que instal·li la seva pròpia taula o una regla per a paquets marcats no apareixerà gens a la taula principal. Llistar totes les taules tanca aquesta llacuna.
ip -4 route show table all | grep -E 'tun|default'Comprova la capa subjacent abans de substituir la ruta per defecte
Els paquets propis del túnel han d'arribar al punt final remot, i ho fan per la interfície física fent servir la ruta que existia abans que pugés la VPN. Substituir tota la ruta per defecte sense fixar aquest punt final envia els paquets encapsulats dins del túnel que se suposa que han de construir, i la connexió s'enfonsa. Confirma primer el camí fins al punt final amb una consulta només de la seva adreça.
Mantingues tres coses separades quan facis el canvi: la ruta del punt final que ha de quedar-se a la interfície física, els rangs privats que haurien d'entrar al túnel i la ruta per defecte que decideix tota la resta. Separa-les en aquest ordre, aplica'n una alhora i torna a executar la consulta després de cada pas. Un ping fallit després demostra molt poc per si sol, ja que els permisos, l'encaminament de respostes, el DNS i el servei mateix queden tots aigües avall d'una ruta correcta.
Anota els quatre valors que la línia et va donar abans de l'edició: destinació, salt següent o la seva absència, dispositiu i origen escollit. Si un canvi posterior en mou cap, saps quina decisió s'ha alterat de debò, i pots restaurar una entrada en lloc d'endevinar tota la taula.