Я пытаюсь настроить экземпляр EC2 как своего рода шлюз NAT, на который будут перенаправлены другие экземпляры в частной сети.
У меня следующая установка:
VPC
2 подсети
2 экземпляра EC2
В случае NAT, eth0 предназначен для общедоступной сети, а eth1 - для частной, и для них установлены соответствующие межсетевые экраны.
Я попытался создать таблицу маршрутов для подсети B, которая направляет значение по умолчанию на eth1 NAT, то есть:
0.0.0.0/0 <id of eth1 on NAT>
Затем я попытался бежать tshark -i eth1
(Wireshark в командной строке) на NAT, чтобы узнать, идет ли туда трафик, и я запустил ping google.com
в другом случае. Безуспешно. Я тоже пробовал curl google.com
на всякий случай где-то блокируются пинги, но тоже ничего не произошло.
Похоже, что-то не так с тем, как AWS маршрутизирует трафик, поэтому он никогда не достигает сетевого интерфейса, даже если таблица маршрутизации настроена таким образом.
Буду признателен, если кто-нибудь поможет мне с этим. Спасибо.
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: я знаю, что AWS имеет встроенный NAT-шлюз, и он не подходит для моего случая.
Поскольку ни источник, ни пункт назначения пакетов не являются IP-адресом, принадлежащим вашему Своего рода шлюз NAT, вам нужно отключить srcdst проверка на сетевых интерфейсах, которые вы хотите обрабатывать трафик (я бы сказал, что оба в шлюзе NAT):
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#change_source_dest_check
В противном случае платформа сбрасывает трафик в качестве, так сказать, «антиспуфинговой» защиты.
Если вы хотите сделать это в Azure, эквивалент Флаг переадресации IP.