Ayudante del servidor OpenVPN: red más máscara, nunca CIDR
El ayudante del servidor IPv4 toma una red alineada y una máscara con puntos, no un sufijo CIDR. Comprueba el rango, confirma el grupo en el registro y luego cambia el tamaño con seguridad.
Una línea de servidor que mezcla un sufijo CIDR con una máscara con puntos detiene el demonio antes de que siquiera abra un puerto. El ayudante server para IPv4 quiere dos argumentos separados: una dirección de red alineada y luego la máscara de red en forma con puntos. Todo lo demás en esa línea es inferencia, y en la inferencia es donde fallan los tamaños del grupo y las máscaras de los clientes.
Los dos argumentos que acepta el ayudante
Escribe primero la red y después la máscara, sin nada pegado a la dirección:
server 10.72.16.0 255.255.240.0Esta es la forma para un /20. La línea de abajo es el error, y falla al analizar las opciones, no en tiempo de ejecución:
server 10.72.16.0/20 255.255.240.0Mantén las dos ideas separadas cuando depures esto. La longitud de prefijo y una máscara con puntos describen el mismo rango, pero el ayudante no acepta ambas a la vez, y una línea rechazada produce un error de opciones que nombra la directiva y no la aritmética.
Alinea la red antes de escribir la máscara
La primera dirección es la dirección de red del rango, no una dirección de cliente cómoda dentro de él. Para un /20 el rango va de 10.72.16.0 a 10.72.31.255, y solo la primera de ellas es un argumento de red válido. Un /21 usa 255.255.248.0 y abarca de 10.72.16.0 hasta 10.72.23.255, así que su línea es server 10.72.16.0 255.255.248.0.
Cambiar el prefijo cambia el rango y nada más. No cambia cuántas direcciones recibe un solo cliente, porque eso es una propiedad de la topología, no de la máscara de esta línea.
Confirma el grupo desde el lado del servidor
Inicia la instancia en primer plano con registro detallado y lee las líneas que emite el ayudante. El grupo que construyó se imprime al arrancar, lo que es más fiable que calcular la aritmética a mano:
openvpn --config /etc/openvpn/server.conf --verb 4 --dev tun9 --port 1195Busca el resumen del grupo cerca de la parte superior de la salida. Enumera el rango que reservó el ayudante, y si ese rango no coincide con tu intención, los argumentos de la línea son incorrectos diga lo que diga la aritmética de la máscara.
Después conecta un cliente y busca la línea que registra la dirección que se le entregó. Esa única dirección, junto al rango del grupo, te dice si el cliente quedó dentro del bloque reservado o en algún lugar que no esperabas. Si ambas no coinciden, corrige los argumentos y no el cliente. Si coinciden y el cliente sigue sin alcanzar nada, el grupo nunca fue el problema.
Lee la máscara del cliente con la topología en mente
Un cliente que muestra un /30 en su interfaz de túnel no es prueba de un grupo roto. Con direccionamiento punto a punto cada cliente recibe un bloque pequeño y la máscara de su interfaz describe ese bloque, mientras que el grupo del servidor cubre el conjunto. Con una topología de subred, en cambio, la máscara del cliente coincide con la máscara del grupo. La máscara sola, por tanto, te dice qué topología está en juego, no si el grupo se escribió correctamente.
Comprueba la topología configurada y la dirección asignada a la vez antes de sacar una conclusión:
ip -4 addr show tun0Si la dirección está dentro del grupo y la máscara es más estrecha que el grupo, es la topología haciendo su trabajo. Si la dirección está fuera del grupo, el grupo es incorrecto, y ninguna inspección del lado del cliente lo arreglará.
Cambiar un grupo en funcionamiento
Elige un rango que no se solape con el grupo actual, la LAN ni ninguna ruta ya enviada a los clientes. El solapamiento es el fallo que sobrevive a un reinicio y luego, días después, aparece como un sitio inalcanzable desde una dirección.
Cambia la línea, reinicia y vuelve a leer el grupo de arranque antes de dejar entrar a los usuarios. Si el nuevo rango choca con algo, la misma salida de arranque lo muestra de inmediato, y revertir es una edición de una línea más otro reinicio.
Mantén el rango antiguo reservado un tiempo después del cambio. Los clientes que se reconectan tarde aún pueden conservar una dirección del grupo anterior, y un rango nuevo que reutilice esas direcciones produce asignaciones duplicadas que parecen un fallo de enrutamiento. El manual de OpenVPN 2.6 documenta los argumentos del ayudante y su expansión, algo que vale la pena leer antes de suponer que una directiva usa la misma notación que su vecina.