Openvpn excluye ip en el grupo

Openvpn excluye ip en el grupo

Tengo un servidor OpenVPN ejecutándose en una caja Linux Ubuntu. Varios clientes se conectan a este servidor (más de 500) y es por eso que configuro la opción de puente del servidor de esta manera:

server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.210.254

Esto funciona perfectamente. Los clientes obtienen una dirección IP dinámica y pasa del bloque 200 al bloque 201 cuando el número de clientes supera los 255.

Tengo una aplicación interna que se conecta a estos clientes, pero esta aplicación falla en las direcciones IP 10.0.200.255 y 10.0.201.0.

Estas direcciones IP están en el rango que proporcioné, pero no puedo usarlas.

¿Hay alguna manera de excluirlos de mi grupo?

¿O necesito cambiar mi configuración?

Respuesta1

No es posible utilizar múltiples rangos de IP o excluir ciertas IP directamente con el servidor DHCP integrado de OpenVPN usando un único archivo de configuración.

Propongo 3 posibles soluciones:

  • Solución alterna, pero no se garantiza que funcione
  • Modo proxy DHCP, simple, limpio y muchas otras opciones.
  • Múltiples instancias, más complejo, podría tener beneficios de rendimiento

Sin embargo, recomiendo solucionar la causa raíz del problema, la aplicación interna que tiene fallas.

Solución alterna

En el archivo de configuración del servidor agregue:

server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.210.254
ifconfig-pool-persist ipp.txt 0

Al 0final de la directiva ifconfig-pool-persistse trata ipp.txtcomo un archivo de configuración de solo lectura.

Crea un archivo /etc/openvpn/ipp.txt:

reserved-not-used-cn-1,10.0.200.255
reserved-not-used-cn-2,10.0.201.0
reserved-not-used-cn-3,10.0.201.255
...

Agregue todas las direcciones IP reservadas a este archivo, con formato <Common-Name>,<IP-address>. Para el valor en el campo, <Common-Name>elija algo que nunca se usará en ningún certificado de cliente.

No se garantiza que esto funcione siempre, como se indica en la página de manual de OpenVPN:

Tenga en cuenta que OpenVPN trata las entradas de este archivo solo como sugerencias, basadas en asociaciones pasadas entre un nombre común y una dirección IP. No garantizan que el nombre común proporcionado siempre reciba la dirección IP proporcionada. Si desea una asignación garantizada, utilice--ifconfig-push

Modo proxy DHCP

Ya que estás usando unGRIFOconfiguración, esta podría ser la mejor solución. Permite utilizar una función completa.Servidor DHCPen la subred del lado del servidor o en el propio servidor, según la configuración. Para configurar el puente Ethernet, primero debe utilizar la capacidad de puente de su sistema operativo para conectar la interfaz TAP con otra interfaz.

OpenVPNconfiguración del servidor:

server-bridge

Esta directiva se amplía de la siguiente manera:

mode server
tls-server
push "route-gateway dhcp"

DHCPDconfiguración del servidor:

subnet 10.0.100.1 netmask 255.255.0.0 {
  range 10.0.200.1 10.0.200.254;
  range 10.0.201.1 10.0.201.254;
  range 10.0.202.1 10.0.202.254;
  range 10.0.203.1 10.0.203.254;
  ...
}

Múltiples instancias

Una alternativa sería crear una instancia openvpn separada para cada /24subred, utilizando múltiples archivos de configuración. Pero esto requiere utilizar un puerto diferente para cada instancia.

Archivo de configuración de la instancia 1:

port 11941
server-bridge 10.0.100.1 255.255.0.0 10.0.200.1 10.0.200.254

Archivo de configuración de la instancia 2:

port 11942
server-bridge 10.0.100.1 255.255.0.0 10.0.201.1 10.0.201.254

...

Esto requeriría:

  • configuraciones de cliente específicas del rango de IP con los respectivos números de puerto,
  • o, por ejemplo, utilizar iptablesel equilibrio de carga en las conexiones entrantes en el puerto 1194y distribuirlas uniformemente entre las instancias.

Esta solución podría tener beneficios de rendimiento, como se explicaaquí.

información relacionada