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 esenabled
.https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#change_source_dest_check