Us connecteu, apareix la interfície del túnel i un prefix que necessiteu simplement no és a la taula. El pas següent sol ser una cerca d'un script que l'afegeixi. Aquesta cerca porta a respostes que enganxen un auxiliar OpenVPN dins d'un perfil, i la meitat d'aquestes respostes empitjoren la situació en lloc de millorar-la, perquè una ruta absent té tres propietaris possibles i només un d'ells és un script absent.

Decidiu quin propietari n'és responsable abans d'escriure res.

Tres propietaris, un prefix absent

El prefix pot faltar perquè ningú no l'ha proporcionat, perquè el perfil l'ha rebutjat o perquè s'ha instal·lat en un lloc on no mireu. Són avaries diferents i tenen solucions diferents.

La primera és la més fàcil de comprovar: el servidor o el connector van oferir mai la ruta? Un backend que mai no ha rebut el prefix no el pot instal·lar, i un script auxiliar no pot inventar una accessibilitat que l'igual mai no ha descrit. La segona és la política del perfil, que pot suprimir rutes que la connexió prendria d'una altra manera. La tercera és una taula o una regla, que pot guardar la ruta en un lloc on la consulta per defecte no mira mai.

Un quart propietari sou vosaltres, més endavant: un script que afegeix la ruta en connectar però no la treu en desconnectar. Això produeix un prefix que sobreviu al túnel, apunta a una interfície morta i confon la propera persona que depuri la màquina.

Llegiu el perfil abans d'afegir res

Comenceu per les propietats de la connexió desada. Llegiu-les sense abocar secrets i feu servir l'UUID si el nom del perfil és ambigu.

nmcli -f vpn.service-type,ipv4.never-default,ipv4.ignore-auto-routes,ipv4.route-table,ipv4.routes connection show office

vpn.service-type us diu quin backend posseeix la connexió, i això importa perquè les dades del connector són específiques del backend. Una clau acceptada per un connector no és una instrucció admesa per a un altre, així que un fragment copiat de la documentació d'un altre client no és prova de res.

ipv4.ignore-auto-routes i ipv4.never-default responen preguntes diferents. El primer pot rebutjar rutes que la connexió prendria automàticament d'una altra manera, i el segon controla si el perfil pot esdevenir la ruta per defecte. Un perfil que ignora les rutes automàtiques i no es basa en res més es connectarà net i no instal·larà gairebé res.

ip -4 rule show
ip -4 route show table all

Aquestes dues ordres resolen la tercera possibilitat. Cerqueu el vostre prefix a totes les taules, no només a main, i comproveu si una regla de política envia la consulta pertinent a un altre lloc. Si el prefix és en una altra taula i res no el consulta, no teniu una ruta absent; teniu una consulta que no hi arriba mai.

Què no pot arreglar un script

Afegir un script auxiliar dona a vpn.data de NetworkManager un programa per executar. És un mecanisme real i és l'equivocat per a la majoria d'aquests casos, perquè el script rep el control després que la política del perfil ja hagi decidit què acceptar.

El script-security d'OpenVPN és l'altra confusió recurrent. És un paràmetre d'OpenVPN que determina quins scripts pot executar el client i què pot posar al seu entorn; el nivell 3 permet passar credencials a través de l'entorn, cosa que és una decisió de gestió de secrets i no una correcció d'encaminament. Enganxar-lo en un perfil el backend del qual no és OpenVPN, o apujar-lo quan cap script no el necessita, afegeix exposició sense afegir cap ruta.

Després hi ha el reflex de reiniciar. Reiniciar el servei NetworkManager desmunta i reconstrueix cada enllaç gestionat, inclòs aquell pel qual esteu connectats si treballeu en remot. És una acció disruptiva, no un diagnòstic innocu, i en un servidor pot ser la diferència entre una sessió que sobreviu i una que no.

La decisió, per ordre

Feu tres preguntes en seqüència. L'igual va proporcionar el prefix, cosa que mostraran el registre del backend o la seva pròpia sortida d'estat? Si sí, el perfil està configurat per acceptar i instal·lar rutes, o les està suprimint? Si la ruta existeix en algun lloc, el camí de consulta és correcte per al trànsit que proveu?

Només quan la primera resposta és sí, la segona és sí i la tercera és correcta, un script suplementari esdevé defensable, i fins i tot llavors hauríeu de preguntar si el backend admet la ruta de manera nativa. La referència de paràmetres de VPN documenta service-type i el diccionari de dades específic del connector, i és per aquí on cal començar abans de suposar que una clau existeix.

Després d'una correcció aprovada, torneu a connectar i proveu la destinació per adreça i després per nom, i tot seguit desconnecteu i torneu a connectar per confirmar que l'estat és repetible. Un propietari, una taula i una ruta que desapareix amb el túnel és el resultat que val la pena.

Articles relacionats