Доступ в интернет из частной подсети VPC?

Мой мозг немного жарен, пытаясь это выяснить, но я не могу заставить частные подсети подключаться к Интернету, например, чтобы получать обновления. В основном, все, что я хочу, - это веб-доступ к этим серверам. Я пробовал решения, найденные в других сообщениях, но мог легко что-то упустить, так как я смотрю на это довольно давно.

До сих пор я сделал следующие настройки:

  • Отключить проверку источника / назначения на моем экземпляре NAT
  • Создайте таблицу маршрутов для общедоступной подсети и установите для ее источника значение IGW (проверено, что это работает)
  • Создайте таблицу маршрутов для частной подсети и установите для ее источника экземпляр NAT
  • Создайте группу безопасности для экземпляра NAT с правилами для входящих и исходящих сообщений для 80/443 и ssh
  • Создайте группу безопасности для частного экземпляра с входящим и исходящим 80/443 и ssh

Я могу подключиться к экземпляру NAT через SSH, а затем развернуться на частном сервере, поэтому я знаю, что многое работает. Я проверил свои правила, выполнив проверку связи с внутренними адресами, но когда я покидаю локальную сеть, именно тогда у меня возникают проблемы.

Где мне нужно искать или что мне нужно для устранения неполадок, чтобы помочь сузить это? Есть ли какая-то конфигурация, которую необходимо выполнить на экземпляре NAT, который я пропустил?

РЕДАКТИРОВАТЬ: обновление конфигурации

  • VPC: 172.16.0.0./16
  • Частная подсеть: 172.16.1.0/24
  • Общедоступная подсеть: 172.16.0.0/24

Таблица маршрутизации в частной подсети:

Указывает на экземпляр NAT в публичной подсети. Невозможно получить доступ к Интернету, EIP подключен к общедоступному интернет-интерфейсу.

частный vpc

Таблица маршрутизации общедоступной подсети:

Точки публичной подсети на IGW, я проверил доступ в интернет.

введите описание здесь

Мысли:

Я начинаю думать, что есть что-то, что нужно настроить или создать в экземпляре NAT, который находится в общедоступной подсети для пересылки трафика из частных экземпляров, но я не совсем уверен, что нужно добавить. Я нашел этот пост, который объясняет добавление правила маскарада в iptables, это то, что относится к моей ситуации?

3 ответа

Решение

Да , у вас должен быть настроен маскарадинг iptables на хосте nat.

iptables -A POSTROUTING -t nat -s (private-subnet/cidr) -j MASQUERADE

у нас такая же настройка, все остальное вы сделали правильно (отключите проверку исходного кода, укажите частную подсеть на интерфейсе экземпляра nat, укажите общую подсеть на igw).

Просто наткнулся на это с похожей проблемой. Предполагая, что вы использовали мастер для создания экземпляра NAT, упомянутое выше правило маскарада уже будет здесь - это только то, что вам нужно добавить, если вы собираетесь "свернуть свой" экземпляр NAT. (Обычно я делаю это, чтобы удвоить это, а также сделать его VPN-сервером удаленного пользователя OpenSWAN L2TP/IPSec).

То, что я забыл добавить с тех пор, как в последний раз создал один из них, - это правила, которые разрешают весь трафик (или, по крайней мере, то, что вы хотите разрешить) из всех частных групп безопасности или подсетей, которые будут маршрутизировать трафик через экземпляр NAT. Экземпляр NAT не будет принимать такой исходящий трафик без правил, разрешающих его - не просто думайте о том, что поступает из Интернета, чтобы получить к нему. Не уверен, что это ваша проблема, так как вы упомянули о добавлении 22/80/443 в вашу группу безопасности NAT, но подумали, что я бы порекомендовал это другим, у кого может быть похожая проблема.

Я боролся с этим некоторое время, пока не нашел это:

Затем запустите экземпляр в вашей общедоступной подсети из AMI, который настроен для работы в качестве экземпляра NAT. Amazon предоставляет AMI Amazon Linux, которые настроены для работы в качестве экземпляров NAT. Эти AMI включают в свои имена строку amzn-ami-vpc-nat, поэтому вы можете искать их в консоли Amazon EC2.

http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html

Я настроил сервер NAT в качестве своего собственного стандартного (Ubuntu) экземпляра, как только я использовал Amazon Linux AMI и обновил таблицы маршрутизации, он начал работать.

Другие вопросы по тегам