Configuración de OpenVPN con múltiples subredes de AWS VPC

Configuración de OpenVPN con múltiples subredes de AWS VPC

Tengo un servidor OpenVPN ejecutándose en Ubuntu 12.04 en una VPC de AWS con 3 subredes. Puedo conectar mi cliente y puedo hacer ping al servidor (10.8.0.1) sin problemas, sin embargo, no puedo comunicarme con ninguna otra máquina en la VPC desde mi cliente.

Alguna información de fondo:

Puedo hacer ping al servidor desde sí mismo.

Puedo hacer ping al servidor desde el cliente.

NO PUEDO hacer ping al cliente desde el servidor.

Puedo hacer ping a las máquinas en la VPC desde el servidor.

NO PUEDO hacer ping a las máquinas en la VPC (que no sean el servidor) desde mi cliente.

He habilitado el reenvío IPV4 en el servidor.

He desactivado la comprobación de origen/destino.

Configuré mis tablas de rutas en VPC para enrutar el tráfico 10.8.0.0/16 a mi instancia de OpenVPN.

Subredes de VPC:

10.0.0.0/24
10.0.1.0/24
10.0.2.0/24

El servidor OpenVPN se ejecuta en 10.0.2.0/24 y puedo hacer ping a cualquier servidor en las otras subredes, es el cliente el que no puede acceder a nada en las subredes.

Configuración del servidor:

port 80
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key  # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.0.0
ifconfig-pool-persist ipp.txt
push "route 10.0.0.0 255.0.0.0"
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120
tls-auth ta.key 0 # This file is secret
comp-lzo
max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log         openvpn.log
verb 6
mute 20

Configuración del cliente:

client
dev tun
proto tcp
remote xx.xx.xxx.xxx 80
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert olo-imac.crt
key olo-imac.key
tls-auth ta.key 1
comp-lzo
verb 3

Rutas del servidor:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.0.2.1        0.0.0.0         UG    100    0        0 eth0
10.0.2.0        *               255.255.255.0   U     0      0        0 eth0
10.8.0.0        10.8.0.2        255.255.0.0     UG    0      0        0 tun0
10.8.0.2        *               255.255.255.255 UH    0      0        0 tun0

Rutas de clientes:

Network Destination        Netmask          Gateway       Interface  Metric
          0.0.0.0          0.0.0.0     192.168.36.1   192.168.36.120     10
         10.0.0.0        255.0.0.0         10.8.0.5         10.8.0.6     30
         10.8.0.1  255.255.255.255         10.8.0.5         10.8.0.6     30
         10.8.0.4  255.255.255.252         On-link          10.8.0.6    286
         10.8.0.6  255.255.255.255         On-link          10.8.0.6    286
         10.8.0.7  255.255.255.255         On-link          10.8.0.6    286
        127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
        127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
  127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
     192.168.36.0    255.255.255.0         On-link    192.168.36.120    266
   192.168.36.120  255.255.255.255         On-link    192.168.36.120    266
   192.168.36.255  255.255.255.255         On-link    192.168.36.120    266
        224.0.0.0        240.0.0.0         On-link         127.0.0.1    306
        224.0.0.0        240.0.0.0         On-link    192.168.36.120    266
        224.0.0.0        240.0.0.0         On-link          10.8.0.6    286
  255.255.255.255  255.255.255.255         On-link         127.0.0.1    306
  255.255.255.255  255.255.255.255         On-link    192.168.36.120    266
  255.255.255.255  255.255.255.255         On-link          10.8.0.6    286

Respuesta1

En respuesta a los comentarios anteriores de CIGuy.

Ejecute tcpdump en su servidor OpenVPN. Debería poder ver si los paquetes realmente se reenvían desde el servidor a los otros hosts de la red remota.

Algo como:

tcpdump -i any -v host <ip> 

¿Dónde está la IP a la que estás intentando hacer ping? También puede escribir la captura del paquete en un archivo para su posterior análisis en Wireshark agregando

-s0 -w somefile.pcap

Tenga en cuenta que algunas versiones de tcpdump se harán chroot, por lo que si somefile.pcap no muestra dónde espera que esté, consulte /var/lib/tcpdump/

información relacionada