Назад | Перейти на главную страницу

Требуются правильные правила iptable для экземпляра NAT, чтобы предотвратить петли для исходящего трафика экземпляра EC2 частной подсети

Моя архитектура AWS имеет общедоступную подсеть с экземпляром NAT. Он перенаправляет трафик с определенных портов на мой экземпляр EC2, размещенный в отдельной частной подсети.

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.1.126:80

Но мне также необходимо предоставить исходящий доступ в Интернет для моих частных экземпляров EC2.

sudo iptables -t nat -A POSTROUTING -o eth0 -s 10.0.1.0/24 -j MASQUERADE

Это приводит к тому, что все запросы, сгенерированные моим частным экземпляром EC2, возвращаются к самому себе. Какое правило необходимо изменить, чтобы предотвратить такое поведение и исходящий трафик, генерируемый частным экземпляром EC2, отправляется без обратной маршрутизации?

ОБНОВЛЕНИЕ: я добавил IP-адрес назначения в качестве общедоступного IP-адреса для порта 80.

sudo iptables -t nat -A PREROUTING -p tcp -d xx.xx.xx.xx --dport 80 -j DNAT --to-destination 10.0.1.126:80

Хотя мой исходящий сетевой вызов не был зациклен, но мой запрос домена на основе DNS не передается моему экземпляру.

Ваш ПЕРЕДАЧА должен исключать местный трафик, т.е.

iptables -t nat -A PREROUTING -p tcp ! --source 10.0.1.0/24 --dport 80 -j DNAT --to-destination 10.0.1.126:80

Обратите внимание на восклицательный знак перед источник: ! --source 10.0.1.0/24. Это гарантирует, что правило оценивается только для трафика, приходящего извне.

Надеюсь, это поможет :)