![No se puede hacer ping a la subred detrás del servidor OpenVPN](https://rvso.com/image/1568464/No%20se%20puede%20hacer%20ping%20a%20la%20subred%20detr%C3%A1s%20del%20servidor%20OpenVPN.png)
Aquí está mi infraestructura:
dns of mydomain.com:
vpn A 90.90.90.1
vpn A 90.90.90.2
client vpn config:
client
dev tun
proto udp
nobind
remote vpn.mydomain.com 1394
server1
net.ipv4.ip_forward = 1
iptables:
FORWARD defaults to ACCEPT
vpn config:
dev tun
topology subnet
port 1394
proto udp
server 10.10.1.0 255.255.255.0
push "route 10.90.90.0 255.255.255.0"
interfaces:
ifpub: 90.90.90.1/24
ifpriv: 10.90.90.1/24
ifvpn: 10.10.1.1/24
routes:
10.10.1.0/24 src 10.10.1.1 dev ifvpn
10.10.2.0/24 via 10.90.90.2 dev ifpriv
server2
net.ipv4.ip_forward = 1
iptables:
FORWARD defaults to ACCEPT
vpn config:
dev tun
topology subnet
port 1394
proto udp
server 10.10.2.0 255.255.255.0
push "route 10.90.90.0 255.255.255.0"
interfaces:
ifpub: 90.90.90.2/24
ifpriv: 10.90.90.2/24
ifvpn: 10.10.2.1/24
routes:
10.10.1.0/24 via 10.90.90.1 dev ifpriv
10.10.2.0/24 src 10.10.2.1 dev ifvpn
El problema es que desde mi cliente puedo hacer ping al servidor OpenVPN al que estoy conectado, pero no al otro servidor en la subred 10.90.90.0/24.
tcpdump
muestra que la solicitud ICMP va de ifvpn
a ifpriv
en el mismo servidor, pero luego el paquete de solicitud ICMP nunca va más allá.
Agregar el registro a iptables también me muestra que el paquete de solicitud ICMP pasa al estado POSTROUTING sin descartarse, pero luego el paquete nunca llegó a su destino y no sé qué sucede aquí, no tengo soluciones.
Sé que puedo enmascarar mis paquetes, pero no quiero hacerlo porque no es recomendado (https://community.openvpn.net/openvpn/wiki/NatHack), o será mi última solución.
Respuesta1
Si el servidor remoto "expone una subred", debe tener un ccd
directorio que contenga archivos con iroute
directivas, como se describe detalladamente en la documentación de OpenVPN. También debe route
enviar directivas a los clientes.
Cuando todo funciona correctamente:
- El cliente envía el ping.
- El sistema operativo del cliente tiene un comando de enrutamiento que envía este tráfico al servidor OpenVPN local.
- La
ccd
información le dice a OpenVPNa qué control remoto conectadopara enviar el tráfico para su entrega. - El tráfico emerge en este control remoto y continúa hacia su destino.
- Para el viaje de regreso, el sistema remoto debetambiéntener una ruta del sistema operativo que enviará el tráfico de regreso aesServidor OpenVPN.