No se puede hacer ping a la subred detrás del servidor OpenVPN

No se puede hacer ping a la subred detrás del servidor OpenVPN

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.

tcpdumpmuestra que la solicitud ICMP va de ifvpna ifpriven 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 ccddirectorio que contenga archivos con iroutedirectivas, como se describe detalladamente en la documentación de OpenVPN. También debe routeenviar 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 ccdinformació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.

información relacionada