Ruta VPN ausente en NetworkManager: ¿política del perfil o un script?
El túnel se conecta y un prefijo nunca aparece. Decida entre la política del perfil, los datos del complemento y un segundo propietario de la ruta antes de añadir un script auxiliar.
Se conecta, aparece la interfaz del túnel y un prefijo que necesita simplemente no está en la tabla. El siguiente paso suele ser buscar un script que lo añada. Esa búsqueda lleva a respuestas que pegan un auxiliar de OpenVPN dentro de un perfil, y la mitad de esas respuestas empeoran la situación en lugar de mejorarla, porque una ruta ausente tiene tres propietarios posibles y solo uno de ellos es un script ausente.
Decida qué propietario es responsable antes de escribir nada.
Tres propietarios, un prefijo ausente
El prefijo puede faltar porque nadie lo proporcionó, porque el perfil lo rechazó o porque se instaló en un lugar donde usted no mira. Son fallos distintos y tienen soluciones distintas.
El primero es el más fácil de comprobar: ¿el servidor o el complemento ofrecieron alguna vez la ruta? Un backend que nunca recibió el prefijo no puede instalarlo, y un script auxiliar no puede inventar una accesibilidad que el par nunca describió. El segundo es la política del perfil, que puede suprimir rutas que la conexión tomaría de otro modo. El tercero es una tabla o una regla, que puede guardar la ruta en un lugar que la consulta predeterminada nunca consulta.
Un cuarto propietario es usted, más adelante: un script que añade la ruta al conectar pero no la elimina al desconectar. Eso produce un prefijo que sobrevive al túnel, apunta a una interfaz muerta y confunde a la siguiente persona que depure la máquina.
Lea el perfil antes de añadir nada
Empiece por las propiedades de la conexión guardada. Léalas sin volcar secretos y use el UUID si el nombre del perfil es ambiguo.
nmcli -f vpn.service-type,ipv4.never-default,ipv4.ignore-auto-routes,ipv4.route-table,ipv4.routes connection show office
vpn.service-type le dice qué backend posee la conexión, y eso importa porque los datos del complemento son específicos del backend. Una clave aceptada por un complemento no es una instrucción admitida para otro, así que un fragmento copiado de la documentación de otro cliente no es prueba de nada.
ipv4.ignore-auto-routes y ipv4.never-default responden preguntas distintas. El primero puede rechazar rutas que la conexión tomaría automáticamente de otro modo, y el segundo controla si el perfil puede convertirse en la ruta predeterminada. Un perfil que ignora las rutas automáticas y no se apoya en nada más se conectará limpiamente y no instalará casi nada.
ip -4 rule show
ip -4 route show table all
Esos dos comandos resuelven la tercera posibilidad. Busque su prefijo en todas las tablas, no solo en main, y compruebe si una regla de política envía la consulta pertinente a otro sitio. Si el prefijo está en otra tabla y nada lo consulta, no tiene una ruta ausente; tiene una consulta que nunca llega a ella.
Lo que un script no puede arreglar
Añadir un script auxiliar le da a vpn.data de NetworkManager un programa que ejecutar. Es un mecanismo real, y es el equivocado para la mayoría de estos casos, porque el script recibe el control después de que la política del propio perfil ya haya decidido qué aceptar.
El script-security de OpenVPN es la otra confusión recurrente. Es un ajuste de OpenVPN que determina qué scripts puede ejecutar el cliente y qué puede poner en su entorno; el nivel 3 permite pasar credenciales a través del entorno, lo que es una decisión sobre el manejo de secretos y no una corrección de enrutamiento. Pegarlo en un perfil cuyo backend no es OpenVPN, o subirlo cuando ningún script lo necesita, añade exposición sin añadir una ruta.
Luego está el reflejo de reiniciar. Reiniciar el servicio NetworkManager derriba y reconstruye cada enlace gestionado, incluido aquel por el que está conectado si trabaja en remoto. Es una acción disruptiva, no un diagnóstico inocuo, y en un servidor puede ser la diferencia entre una sesión que sobrevive y una que no.
La decisión, por orden
Haga tres preguntas en secuencia. ¿El par proporcionó el prefijo, lo que mostrará el registro del backend o su propia salida de estado? Si sí, ¿está el perfil configurado para aceptar e instalar rutas, o las está suprimiendo? Si la ruta existe en algún sitio, ¿es correcta la ruta de consulta para el tráfico que está probando?
Solo cuando la primera respuesta es sí, la segunda es sí y la tercera es correcta, un script suplementario se vuelve defendible, e incluso entonces debería preguntar si el backend admite la ruta de forma nativa. La referencia de ajustes de VPN documenta service-type y el diccionario de datos específico del complemento, y es ahí donde hay que empezar antes de suponer que una clave existe.
Tras una corrección aprobada, vuelva a conectar y pruebe el destino por dirección y luego por nombre, después desconecte y vuelva a conectar para confirmar que el estado es repetible. Un propietario, una tabla y una ruta que desaparece con el túnel es el resultado que merece la pena.