Рейтинг:0

Назначение NAT в той же сети в AWS с использованием IPTables

флаг us

В AWS у нас есть 3 экземпляра в одной подсети/VPC. Мы хотели бы, чтобы экземпляр клиента делал DNS-запрос ко второму аналитическому экземпляру, который затем перенаправлял запрос третьему экземпляру, на котором запущена служба DNS. Затем служба DNS должна предоставить ответ экземпляру анализа, который затем должен ответить клиенту.

Цель состоит в том, чтобы экземпляр Analysis мог перехватывать трафик между экземплярами Client и DNS для целей анализа.

Экземпляр клиента -> Экземпляр анализа (NAT) -> Экземпляр DNS

Текущая настройка позволяет экземпляру клиента отправлять DNS-запрос через экземпляр Analysis в экземпляр DNS. Экземпляр DNS отвечает экземпляру Analysis за tcpdump но экземпляр Client никогда не получает ответа от экземпляра Analysis.

У нас есть проверки источника/назначения в AWS для экземпляра Analysis, выполняющего NAT, отключенного.

Сначала мы включили пересылку в экземпляре Analysis:

sudo sysctl -w net.ipv4.ip_forward=1

Затем мы добавляем следующие правила IPTables в экземпляр Analysis.

sudo iptables -A FORWARD -p udp --dport 53 -d 192.168.1.151 -j ПРИНЯТЬ
sudo iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --к месту назначения 192.168.1.151
sudo iptables -t nat -A POSTROUTING -d 192.168.1.151 -s 192.168.1.156 -p udp --dport 53 -j SNAT --до 192.168.1.213

Другой РАЗМЕЩЕНИЕ такие правила, как следующие, также были опробованы

sudo iptables -t nat -A POSTROUTING -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -p udp -d 192.168.1.151 --dport 53 -j SNAT --to-source 192.168.1.213
sudo iptables -t nat -A POSTROUTING -p udp -d 192.168.1.151 --dport 53 -j MASQUERADE

Все с тем же результатом, экземпляр клиента никогда не получает ответ DNS. Мысли о том, что может помешать экземпляру анализа вернуть ответ?

флаг us
Группы безопасности AWS не обеспечивают NAT или переадресацию.
флаг us
Благодарю за отзыв, внесу ясность в вопрос.
Tim avatar
флаг gp
Tim
Любопытно, почему вы используете эту архитектуру. Кажется действительно необычным, если вы объясните, чего вы пытаетесь достичь, вы можете получить общую картину, но, возможно, это просто необычная рабочая нагрузка.Не могу помочь с деталями, извините. Удаление предыдущих комментариев как бесполезных.
флаг us
Я понял, чего не хватает, и собираюсь ответить на вопрос. Также обновлю вопрос для контекста.
Рейтинг:1
флаг us

Проблема заключалась в том, что цепочка FORWARD не разрешала обратный трафик, поэтому требовалось следующее правило:

sudo iptables -A ВПЕРЕД -m состояние --state СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ

Полное решение выглядит так:

sudo iptables -A FORWARD -p udp --dport 53 -d 192.168.1.151 -j ПРИНЯТЬ
sudo iptables -A ВПЕРЕД -m состояние --state СВЯЗАННО, УСТАНОВЛЕНО -j ПРИНЯТЬ
sudo iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --к месту назначения 192.168.1.151
sudo iptables -t nat -A POSTROUTING -p udp --dport 53 -j SNAT --to 192.168.1.213

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

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