Enrutar el tráfico desde AWS VPC a través de OpenVPN

Enrutar el tráfico desde AWS VPC a través de OpenVPN

Necesito acceder a algunos hosts a los que se puede acceder a través de OpenVPN desde mi subred privada de AWS VPC. Mi configuración de VPC es similar a la descritaaquí.

Dentro de la red privada, creé una instancia EC2 que configura un cliente OpenVPN con el siguiente comando:

openvpn --verb 3 --config config.ovpn  --script-security 2 --up up.sh

Contenido del archivo de script up.sh:

#!/bin/bash

/sbin/sysctl -w net.ipv4.ip_forward=1
/sbin/iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT 2>&1
/sbin/iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED \
-j ACCEPT 2>&1
/sbin/iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE 2>&1

Supongamos que 171.20.0.0/16 es la subred detrás de VPN. La tabla de rutas para la subred privada tiene este aspecto:

DESTINATION    TARGET
10.0.0.0/16    local
0.0.0.0/0      nat-gateway
171.20.0.0/16  ec2-instance-with-openvpn-client

Estoy usando grupos de seguridad predeterminados.

Mi problema es que no puedo acceder a los hosts detrás de VPN desde una imagen acoplable que se ejecuta en un clúster ECS dentro de una subred privada. El cliente OpenVPN funciona correctamente porque puedo acceder a los hosts detrás de VPN directamente desde la instancia EC2. Por lo que pude observar, creo que el tráfico de Docker nunca llega a la instancia EC2, pero no estoy 100% seguro de eso.

Respuesta1

La red VPC es una red definida por software: una red de capa 3 que emula Ethernet. De forma predeterminada, la red no permite que el tráfico pase hacia o desde una instancia EC2 que no tenga exactamente la dirección de esa instancia como dirección de origen o destino (dependiendo de la dirección del tráfico)... por lo que la verificación debe estar deshabilitada. para casos como éste.

Cambiar la verificación de origen o destino

El atributo Comprobación de origen/destino controla si la comprobación de origen/destino está habilitada en la instancia. Deshabilitar este atributo permite que una instancia maneje el tráfico de red que no está destinado específicamente a la instancia. Por ejemplo, las instancias que ejecutan servicios como traducción de direcciones de red, enrutamiento o un firewall deben establecer este valor en disabled. El valor predeterminado es enabled.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#change_source_dest_check

información relacionada