У меня AWS VPC с двумя подсетями: публичной и частной. Я могу получить доступ к Интернету (через шлюз NAT) из общедоступной подсети, но не из частной подсети, и я не могу понять, что не так.
Я включил журналы потоков, чтобы попытаться понять, в чем проблема. Вот что я вижу при подключении к youtube из коробки в публичной подсети:
216.58.210.206 10.0.129.171 443 40682 6 9 4760 1596476113 1596476173 ACCEPT OK
10.0.129.171 216.58.210.206 40682 443 6 11 1218 1596476113 1596476173 ACCEPT OK
Здесь мы можем видеть исходящий запрос и ответ, которым разрешено пройти.
При повторении того же теста из ящика в частной подсети я вижу следующее:
10.0.40.146 216.58.210.206 46398 443 6 2 120 1596469555 1596469612 ACCEPT OK
В приведенной выше строке показан запрос https от экземпляра EC2 частной подсети к https://youtube.com - движение разрешено. Ответ не регистрируется.
Поскольку я могу ssh из общедоступной подсети в частную, я могу сделать вывод, что маршрут присутствует и правильный. Так где же ответ? Почему заблокирован трафик?
Группы безопасности идентичны между двумя полями, и они позволяют tcp на 443 до 0.0.0.0/0
Интересно, что маршрут от общедоступной подсети к Интернету указывает на Интернет-шлюз, но маршрут из частной подсети указывает на шлюз NAT.
Как мне отладить это дальше?
Это был простой случай неправильной конфигурации - я поместил шлюзы NAT в частную подсеть (чтобы что-то проверить) и забыл вернуть их ...