Направьте трафик из AWS VPC через OpenVPN

Направьте трафик из AWS VPC через OpenVPN

Мне нужно получить доступ к некоторым хостам, доступным через OpenVPN из моей частной подсети AWS VPC. Моя настройка VPC похожа на описаннуюздесь.

Внутри частной сети я создал экземпляр EC2, который настраивает клиент OpenVPN с помощью следующей команды:

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

Содержимое файла скрипта 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

Предположим, что 171.20.0.0/16 — это подсеть за VPN. Таблица маршрутизации для частной подсети выглядит так:

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

Я использую группы безопасности по умолчанию.

Моя проблема в том, что я не могу получить доступ к хостам за VPN из образа docker, запущенного в кластере ECS внутри частной подсети. Клиент OpenVPN работает правильно, потому что я могу получить доступ к хостам за VPN напрямую из экземпляра EC2. Из того, что я смог наблюдать, я думаю, что трафик из docker никогда не достигает экземпляра EC2, но я не уверен в этом на 100%.

решение1

Сеть VPC — это программно-определяемая сеть — сеть уровня 3, которая эмулирует Ethernet. По умолчанию сеть не позволяет трафику проходить к экземпляру EC2 или от него, если в качестве исходного или конечного адреса (в зависимости от направления трафика) не указан точно такой же адрес экземпляра... поэтому для таких случаев проверку необходимо отключить.

Изменение источника или назначения проверки

Атрибут Source/Destination Check контролирует, включена ли проверка источника/назначения на экземпляре. Отключение этого атрибута позволяет экземпляру обрабатывать сетевой трафик, который не предназначен конкретно для экземпляра. Например, экземпляры, на которых запущены такие службы, как преобразование сетевых адресов, маршрутизация или брандмауэр, должны установить это значение на disabled. Значение по умолчанию — enabled.

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

Связанный контент