Un túnel pot informar que està connectat mentre res no hi arriba, i aquests dos fets viuen en llocs diferents. Un és la taula de rutes, que encara pot enviar paquets a un dispositiu que ningú posseeix. L'altre és el resolutor, que encara pot llistar un servidor en un enllaç que ha desaparegut. El canvi de xarxa no va malmetre el perfil, va orfenar l'estat de la connexió anterior, i la reparació depèn de quin dels dos estàs mirant realment.

Primer, pregunta al nucli quin dispositiu faria servir

Un llistat de rutes mostra què existeix; una consulta de ruta mostra què passaria. Pregunta per una adreça pública i llegeix el nom del dispositiu a la resposta, perquè aquell sol camp decideix si el paquet arriba a un lloc útil. Quan la resposta anomena un dispositiu de túnel, el nucli li lliurarà els paquets encara que no hi quedi cap procés client funcionant darrere d'aquesta interfície. Quan la resposta anomena l'adaptador físic mentre el client diu que està connectat, el túnel és engegat i simplement no és el camí triat.

El segon cas és l'habitual després que un cable substitueixi el wifi, i es presenta com una VPN espatllada.

ip route show default
ip route get 203.0.113.9

Llegeix després les entrades per defecte, ja que una ruta afegida per la connexió base anterior pot sobreviure a un canvi d'enllaç i posar-se davant de la nova. Una ruta per defecte per un dispositiu que està caigut és pitjor que no tenir-ne cap, perquè el nucli encara la prefereix. Fixa't en la mètrica al costat de cada entrada, perquè aquest ordre explica la preferència més de pressa que els noms de les interfícies.

Després, llegeix el resolutor per enllaç, no per fitxer

La resolució de noms porta el seu propi estat i la seva pròpia obsolescència. Un resolutor que llista servidors DNS per enllaç conserva els servidors d'un enllaç de túnel que està caigut però encara registrat, i cada consulta espera llavors un servidor que no respondrà. El símptoma és una xarxa que sembla morta mentre la taula de rutes és impecable.

Inspecciona l'estat per enllaç en lloc del fitxer, perquè en moltes distribucions aquell fitxer és un enllaç simbòlic cap al resolutor i editar-lo o no fa res o s'esborra de seguida. Mira quin enllaç posseeix quins servidors i quin domini de cerca, i després pregunta si l'enllaç de túnel encara hauria d'estar registrat. Si no ho hauria d'estar, desactiva la connexió que el posseeix en lloc d'editar a mà un estat generat. Un nom que es resol mentre la consulta de ruta envia paquets a un altre lloc és una tercera fallada, separada.

resolvectl status
resolvectl query app.internal.example

Si les adreces es resolen i les connexions fallen, el resolutor va bé i la ruta no. Si les adreces no es resolen gens, aquest és el lloc per on començar.

Com sobreviu una ruta obsoleta al canvi

El client no posseeix la xarxa tot sol. En un amfitrió amb NetworkManager un perfil de VPN s'activa damunt d'una connexió base, i els paràmetres de connexió permeten que aquesta base anomeni la VPN que l'ha de seguir. Quan la base canvia perquè un altre perfil passa a ser preferit, el túnel segueix sobre la nova base o es queda sense cap.

Un perfil de VPN no s'aixeca sol, així que l'aparellament importa molt més que la preferència de connexió automàtica del propi perfil.

Llegeix la llista activa i anota quina base està engegada abans de tocar el túnel. Si la base hi apareix i el túnel no, la ruta falta en lloc d'estar obsoleta i l'arranjament és l'activació. Si activar el túnel es queixa que no existeix cap connexió d'origen, la base amb què estava aparellat ha desaparegut, així que engega-la primer o repara l'aparellament en lloc de reintentar el túnel. Reintentar un perfil el pare del qual falta produeix la mateixa errada cada vegada, cosa que és un senyal útil i no una nosa.

nmcli device status
nmcli connection show --active
nmcli connection up office-vpn

Distingeix l'estat obsolet d'un pare absent

Tres estats expliquen gairebé tots els informes, i cadascun necessita una reparació diferent. Una ruta per defecte per un dispositiu que encara existeix però ja no porta el túnel és estat obsolet, netejat esborrant l'entrada o reiniciant el perfil responsable. Un dispositiu de túnel el procés client del qual ha desaparegut és una fallada de neteja, així que el camí de desconnectació mereix l'atenció i no la taula de rutes. No tenir cap dispositiu de túnel significa que falta el pare o l'aparellament i que la taula de rutes no hi va entrar mai.

Reiniciar amaga quin dels tres tenies, i és exactament per això que sembla una reparació.

Després de la reparació, demana al nucli una adreça pública i una d'interna, i després consulta un nom intern. Quan l'adreça funciona i el nom no, has trobat un problema d'abast de domini al resolutor i no d'encaminament. Anota quin estat has trobat, perquè el proper canvi de xarxa reproduirà el que hagis deixat tranquil.

Articles relacionats