La dirección del par cambia a mitad de sesión: qué hace float en OpenVPN
float permite que un par autenticado cambie su dirección exterior a mitad de sesión. No descubre extremos, no reabre un enlace muerto ni se salta las comprobaciones de identidad.
El portátil pasa del Wi-Fi de la oficina al punto de acceso de un móvil, el túnel aguanta unos segundos más y luego el tráfico se detiene mientras la interfaz sigue afirmando que está conectada. En el servidor, la lista de estado sigue mostrando la dirección pública antigua. Esta es la situación para la que existe float, y también es la situación en la que la gente espera de él mucho más de lo que hace. Acertar con la frontera convierte un atasco confuso en un cambio de configuración de una línea o en una investigación completamente distinta.
Qué relaja float y qué no relaja nunca
Normalmente una sesión sigue hablando con la dirección exterior y el puerto con los que empezó, y los paquetes que llegan de cualquier otro sitio se ignoran. La opción float elimina esa vinculación estricta una vez que el par ya ha demostrado quién es, de modo que una asignación de origen cambiada puede continuar la misma sesión en lugar de ser descartada. Nada de las comprobaciones criptográficas cambia: las claves, los certificados y cualquier protección HMAC permanecen exactamente como se configuraron.
Es una decisión por paquete, no una política sobre quién puede conectarse. Una máquina desconocida que envía un paquete desde una dirección nueva no ha demostrado nada, y su paquete se descarta como cualquier otro tráfico no autenticado. Solo el tráfico que supera la autenticación propia de la sesión puede mover la dirección del par registrada, y por eso es seguro dejar float activado en entornos donde los clientes se desplazan.
Tampoco dice nada sobre el túnel interior. Una dirección exterior movida no reasigna una dirección de túnel, no cambia el grupo ni concede al par acceso a algo nuevo. Dentro del túnel, la misma identidad y las mismas rutas empujadas se aplican antes y después del movimiento. Un desplazamiento tampoco renegocia el canal de datos, así que el cifrado y las claves negociados continúan.
El paquete que mueve una sesión tiene que autenticarse
Inicie una sesión de la forma habitual contra el remoto configurado, y float se encarga de lo que ocurre cuando cambia la asignación. Un operador móvil que renumera a mitad de flujo, una puerta NAT que reescribe su asignación de puerto o un portátil que cambia de enlace ascendente producen la misma forma: paquetes autenticados de una tupla nueva, que llegan a una sesión que todavía cree en la vieja.
Cuando le preguntan si float funciona, la evidencia útil es un handshake completado seguido de un cambio de origen aceptado, no una línea de registro sobre la dirección sola. Correlacione las direcciones exteriores vieja y nueva con la sesión que siguió viva y después confirme que el tráfico continuó realmente por el túnel.
Si la sesión muere en lugar de moverse, el paquete que llegó desde la dirección nueva probablemente falló la autenticación o no llegó nunca. Ambos casos se ven idénticos desde el cliente. En el servidor, una captura en la interfaz pública le dice cuál de los dos tiene antes de tocar cualquier configuración.
El descubrimiento es un mecanismo completamente aparte
float no resuelve nombres con un temporizador ni sigue un registro DNS dinámico. Si el nombre de host del servidor empieza a resolverse a una dirección nueva, un cliente inactivo no tiene motivo para notarlo ni paquete del nuevo extremo que autenticar. Ese problema pertenece a la lógica de reconexión, al comportamiento de reintento del propio cliente y al DNS, no a float.
Añadir la opción una vez más no puede compensar no tener ruta hacia la dirección nueva. Tampoco ayuda cuando el par está en silencio, porque un par silencioso nunca envía el paquete autenticado que movería algo.
El cortafuegos subyacente también tiene voto. Una regla que solo permite el extremo exterior antiguo bloquea la dirección cambiada antes de que OpenVPN llegue a verla, y ninguna configuración del lado del cliente lo arregla. Revise el ciclo de vida de las direcciones permitidas como una tarea propia; ampliar la regla a cualquier origen cambia un problema pequeño por uno grande.
Cuando NetworkManager es dueño del perfil
Un perfil de línea de comandos y una conexión importada son configuraciones separadas, y editar una no toca la otra. Antes de suponer que la opción no es compatible, establezca qué tipo de complemento usa realmente el perfil guardado y dónde viven sus valores. El UUID del perfil es el identificador que importa cuando inspecciona o modifica algo.
Inspeccione la conexión guardada en lugar del archivo de importación original. Una línea que sobrevive en un archivo .ovpn no demuestra nada si el gestor activo nunca la aplicó, y un editor sin casilla para una opción concreta tampoco demuestra nada sobre las capacidades del protocolo.
No parchee un complemento empaquetado para añadir el comportamiento, y menos con un diff escrito para una versión histórica de un componente no relacionado. Si la integración instalada realmente no puede expresar el ajuste, el movimiento correcto es un perfil compatible o una ruta de cliente distinta aprobada por quien es dueño del despliegue.
Demuestre la transición en lugar de suponerla
Ejecute la prueba tal como ocurre el fallo. Conéctese, verifique el tráfico por el túnel, fuerce el cambio de la dirección exterior y luego compruebe tres cosas: la sesión sigue existiendo, la dirección del par registrada se ha movido y una petición real sigue llegando a su destino. Cualquier cosa menos que las tres es una respuesta parcial.
Mantenga disponible el acceso de recuperación mientras prueba, porque los experimentos de itinerancia tienen la costumbre de dejar varada la máquina desde la que trabaja. Una consola serie o una ruta fuera de banda convierte una prueba fallida en una recuperación de cinco minutos en lugar de una visita al sitio.
Por último, describa solo el caso que ha ejercitado. Un cambio de dirección correcto durante una sesión no es evidencia de que las migraciones de DNS, otra implementación de cliente o un perfil reconstruido vayan a comportarse igual. La documentación de link-options expone el alcance de la opción con precisión; su registro de prueba debería indicar qué parte de ese alcance cubrió realmente.