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

По умолчанию точка таблицы маршрутов AWS использует сетевой интерфейс в другой подсети

Я пытаюсь настроить экземпляр 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.