Entreu per SSH en un host de compilació, hi inicieu el client VPN i la sessió deixa de respondre. No ha petat res i res no sembla mal configurat en el sentit obvi. El client ha instal·lat una ruta per defecte, així que les respostes a la vostra estació de treball ara surten pel túnel, on l’adreça de la vostra estació de treball no és encaminable. La part interessant és que aquest resultat era previsible, i la solució és una ruta escrita abans que el client arrenqui. Suposem un servidor amb una sola targeta de xarxa, una passarel·la 192.0.2.254 i un administrador que es connecta des de 203.0.113.9.

Registreu el camí abans de començar

ip route show default anomena la passarel·la i la interfície actuals, mentre que ip route get 203.0.113.9 mostra quina interfície i quina adreça d’origen faria servir el nucli per a la vostra sessió. Guardeu les dues sortides. Quan el túnel pugi, aquestes dues ordres encara haurien de descriure el camí físic, i si descriuen el túnel, la sessió ja viu d’un temps prestat.

La connexió establerta és la que importa, així que no valideu només amb un inici de sessió nou. Una sessió nova pot reeixir breument gràcies a un estat que la vella ja no té.

Fixeu l’adreça a la configuració del propi client

Una ruta afegida a mà desapareix en reiniciar i competeix amb les actualitzacions de la taula del propi client, així que poseu l’excepció on es gestiona la taula. A OpenVPN la paraula clau net_gateway es resol a la passarel·la que existia abans del túnel, així que route 203.0.113.9 255.255.255.255 net_gateway manté exactament una adreça fora d’ell. WireGuard necessita un enfocament diferent perquè wg-quick gestiona les rutes ell mateix: establiu Table = off i afegiu l’excepció a PostUp, amb un PostDown corresponent que la tregui. Les dues formes expressen la mateixa intenció i totes dues limiten l’excepció a una adreça en lloc d’afeblir el túnel per a tot.

Per a IPv6 la mateixa idea pren un prefix d’un sol host, i el cas del transport embolcallat val la pena recordar-lo: si la connexió exterior del propi túnel viu en una adreça fixa, aquesta adreça ha de quedar fora del túnel que transporta, o el client encamina el seu propi transport cap a si mateix.

O traieu la taula principal de l’equació

Quan diversos serveis de l’host han de mantenir el camí normal, deixeu d’editar la taula principal i doneu al client la seva. Un espai de noms de xarxa amb una parella veth ho fa net: la ruta per defecte del client viu en una pila diferent i només els processos iniciats dins seu fan servir el túnel. L’encaminament per polítiques arriba a un lloc similar per a una destinació, enviant el trànsit coincident a una taula dedicada la ruta per defecte de la qual encara apunta a la passarel·la física. Qualsevol dels dos enfocaments deixa la taula principal de l’host sense una ruta per defecte nova, i aquesta és la propietat que manté SSH responent.

Tots dos són més maquinària que una sola ruta d’host, i tots dos valen la pena quan més d’una cosa a la màquina ha de sobreviure al túnel.

Assumiu que la fixació pot fallar

Una ruta lligada a la vostra adreça pública actual es trenca en el moment que el vostre proveïdor la reassigna. Un servidor remot necessita llavors un camí que no depengui d’aquesta adreça: una consola, una segona interfície de gestió o un jump host que quedi fora del túnel.

Dues salvaguardes costen deu minuts. Un watchdog que atura el client si no apareix un inici de sessió de confirmació en uns quants minuts converteix un bloqueig en un retard, i una segona sessió SSH mantinguda oberta durant el canvi demostra que l’excepció funciona mentre el túnel és amunt. Els keepalives sols no hi ajuden, perquè el camí ha desaparegut en lloc d’estar inactiu; només fan que la mort sigui més fàcil de notar.

Verifiqueu en l’ordre que importa

Connecteu el túnel, confirmeu que la ruta a la vostra adreça encara surt per la passarel·la física i després obriu una sessió nova. Si la sessió nova funciona i la vella mor igualment, la causa és el seguiment de connexions o un tallafoc amb estat, no l’encaminament, cosa que és una solució diferent.

Escriviu l’adreça fixada i l’ordre que ho va demostrar al registre de canvis. La propera persona que iniciï un client en aquest host necessitarà les dues coses, i potser l’adreça ja ha canviat.

Articles relacionats