Pude configurar un servidor OpenVPN con varios clientes usando ips estáticas, la ip estática se configura agregando una línea como ifconfig-push 192.168.254.6 192.168.255.1
en el ccd para cada uno de los clientes. Puedo hacer ping o ssh desde el servidor a cada uno de estos clientes. En la configuración de mi servidor tengo las siguientes líneas (entre otras configuraciones):
server 192.168.255.0 255.255.255.0
y
route 192.168.254.0 255.255.255.0
Ahora lo que estoy tratando de hacer es poder realizar ssh o curl de un cliente a otro, así que después de leer la documentación agregué la línea client-to-client
a la configuración. Me di cuenta de que al reiniciar los servidores y volver a conectar los clientes, agregué la siguiente línea a ip route
mis clientes:
192.168.255.0/24 via 192.168.255.1 dev tun0
Lo que parece entender es que le indica al cliente que cada dirección similar 192.168.255.X
iría al servidor VPN. Y de hecho, intenté verificarlo ejecutando traceroute 192.168.255.30
y obteniendo:
traceroute to 192.168.255.30 (192.168.255.30), 30 hops max, 60 byte packets
1 192.168.255.1 (192.168.255.1) 11.454 ms 14.491 ms 14.493 ms
Sin embargo, los otros clientes a los que quiero conectarme tienen direcciones así, 192.168.254.X
así que supongo que me falta algo y en realidad no sé qué. Intenté agregar manualmente esta ruta:
ip route add 192.168.254.0/24 via 192.168.255.1 dev tun0
Lo que para mí significaría que también direcciones como 192.168.254.X pasan por el servidor VPN. Pero si luego lo hago, traceroute 192.168.254.30
los resultados son diferentes:
traceroute 192.168.254.30
traceroute to 192.168.254.30 (192.168.254.30), 30 hops max, 60 byte packets
También puedo hacer ping 192.168.255.1
ping desde la máquina cliente, pero no puedo, a otros clientes en el rango 254 como ping 192.168.254.30
.
Mi conocimiento de redes es bastante limitado. Lo que falta para poder permitir que un cliente 192.168.254.30
acceda a servicios en otro cliente como192.168.254.32
Actualizar:Conecté un nuevo cliente a la VPN, esta vez asignando en el archivo ccd una IP en el rango 192.168.255.X, y luego intenté ejecutar traceroute desde el cliente con el que estaba probando. Tampoco puedo conectarme a este cliente en el rango 255, además, si ejecuto traceroute sucede lo siguiente.
Este nuevo cliente tiene 192.168.255.22
, si en mi cliente de prueba lo tengo, traceroute 192.168.255.3
obtengo:
traceroute to 192.168.255.3 (192.168.255.3), 30 hops max, 60 byte packets
1 192.168.255.1 (192.168.255.1) 11.481 ms 21.192 ms 21.472 ms
Lo mismo pasa para las ips 4, 5, 6... que no tienen clientes, hasta llegar a 22
cual es la ip del nuevo cliente, en ese caso cuando lo tengo traceroute 192.168.255.22
me sale:
traceroute to 192.168.255.22 (192.168.255.22), 30 hops max, 60 byte packets
¿Por qué está pasando esto?
Respuesta1
Parece que estás intentando enrutar el tráfico entre diferentes subredes a través del servidor OpenVPN. Es posible hacer esto, pero necesitarás realizar algunos cambios adicionales en tu configuración de OpenVPN.
Lo primero que debe tener en cuenta es que la server
directiva en su archivo de configuración de OpenVPN define la subred que utilizará el servidor. En su caso, el servidor utilizará la 192.168.255.0/24
subred. Esto significa que a los clientes se les asignarán direcciones IP en el 192.168.255.X
rango.
La route
directiva, por otro lado, define una ruta para el tráfico desde los clientes OpenVPN a una subred específica. En su caso, la route
directiva le dice al servidor OpenVPN que el tráfico de los clientes debe enrutarse a la 192.168.254.0/24
subred.
Sin embargo, esto no es suficiente para permitir que los clientes se comuniquen entre sí a través de diferentes subredes. También deberá agregar una push
directiva al archivo de configuración de su servidor OpenVPN. Esta directiva le dice al servidor OpenVPN que envíe rutas a los clientes, para que sepan cómo enrutar el tráfico a otras subredes.
A continuación se muestra un ejemplo de cómo podría verse la directiva push en su archivo de configuración:
push "route 192.168.254.0 255.255.255.0"
Esta directiva le dice al servidor OpenVPN que envíe una ruta a los clientes, indicándoles que enrute el tráfico a la 192.168.254.0/24
subred a través del servidor OpenVPN.
También deberá asegurarse de que la client-to-client
directiva esté habilitada en la configuración de su servidor. Esta directiva le dice al servidor OpenVPN que permita a los clientes comunicarse entre sí directamente, sin enrutar su tráfico a través del servidor.
Una vez que haya realizado estos cambios en su configuración, debería poder conectar sus clientes al servidor OpenVPN y comunicarse entre sí a través de diferentes subredes.
Vale la pena señalar que la client-to-client
directiva solo permite que los clientes se comuniquen entre sí si utilizan la misma subred. Por ejemplo, si un cliente tiene una dirección IP en el 192.168.255.X
rango, solo podrá comunicarse con otros clientes que también tengan direcciones IP en el 192.168.255.X
rango. Para que los clientes de diferentes subredes se comuniquen entre sí, deberá utilizar la directiva push como se describe anteriormente.