Рейтинг:0

iptables: как экземпляр NAT обрабатывает трафик от соединения, инициированного извне?

флаг ph

введите описание изображения здесь

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

Вот процедура создания экземпляра NAT. Для конфигурации iptables это изменение всего в одну строку.

В консоли EC2 отключите проверку источника/назначения, щелкнув правой кнопкой мыши экземпляр, который вы хотите использовать для NAT, и выбрав «Изменить проверку источника/назначения».
Создайте группу безопасности с правилом для входящего трафика, разрешающим ВСЕ из 10.0.0.0/16, и свяжите его с вашим экземпляром NAT.
В экземпляре NAT создайте /etc/network/if-pre-up.d/nat-setup как:

#!/бин/ш
эхо 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -j MASQUERADE

chmod +x скрипт, затем запустите его. Этот сценарий будет автоматически запускаться при перезагрузке компьютера, поэтому ваш NAT выдержит перезагрузку.
Убедитесь, что все ваши частные подсети имеют маршрут по умолчанию для использования экземпляра NAT в качестве шлюза (создайте маршрут для 0.0.0.0/0 и свяжите его с вашим экземпляром NAT в таблицах маршрутов, связанных с вашими частными подсетями).
проверьте свой NAT, пропинговав что-нибудь из экземпляра EC2 в частной подсети

Соединения, инициированные изнутри

Если соединение инициируется изнутри, я предполагаю, что экземпляр NAT работает таким образом.

  1. Экземпляр EC2 A (в частной подсети) хочет получить доступ к веб-серверу C в Интернете.

  2. Экземпляр EC2 A в частной подсети отправляет пакеты экземпляру NAT B.

  3. Экземпляр NAT B пересылает пакеты и выполняет работу SNAT, например.

    • изменить исходный ip в пакете.
    • зарегистрируйте это активное соединение в таблицах conntrack.
  4. Пакеты приходят на сервер С в инете.

  5. Сервер C отправляет пакеты обратно экземпляру NAT B.

  6. Так как соединение находится в столы conntrack, все пакеты принимаются.

Соединения, инициированные снаружи

Если кто-то в Интернете напрямую инициирует соединение и отправляет пакеты на экземпляр NAT, например, логин ssh или ping.

  1. что будет делать экземпляр NAT?

  2. Как iptables экземпляра NAT будет обрабатывать трафик на основе конфигурации, описанной в предыдущем абзаце?

Справка

  1. Суть Github: создание инстанса AWS NAT
  2. Kabisa: экономия средств благодаря NAT-инстансам
  3. AWS: экземпляры NAT

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.