Использование iptables NAT для пересылки туннеля GRE

У меня есть два хоста, которые должны иметь туннель GRE между ними. Между ними у меня есть хост-ретранслятор, который должен выполнять NAT и пересылать трафик GRE в любом направлении.

grehostA --- natrelayhost --- grehostB

Все хосты работают под управлением Debian. Для простоты объяснения я ограничусь трафиком, идущим от grehostA в grehostB и не беспокоиться о возврате трафика. Мы смотрим на конфигурацию iptables для natrelayhost:

-t nat -A PREROUTING -p gre -s grehostA -d natrelayhost -j LOG --log-prefix "[netfilter] GRE-PRE: "
-t nat -A PREROUTING -p gre -s grehostA -d natrelayhost -j DNAT --to-destination grehostB

-t nat -A POSTROUTING -p gre -j LOG --log-prefix "[netfilter] GRE-POST: "
-t nat -A POSTROUTING -p gre ! -s natrelayhost -j MASQUERADE

-A FORWARD -p gre -j LOG --log-prefix "[netfilter] GRE-FWD: "
-A FORWARD -p gre -J ACCEPT

у меня тоже есть INPUT правила отладки, хотя я не думаю, что они мне нужны:

-A INPUT -p gre -j LOG --log-prefix "[netfilter] GRE-IN: "
-A INPUT -p gre -j ACCEPT

И, конечно же, sysctl -w net.ipv4.ip_forward=1,

У меня загружены следующие модули ядра:

modprobe nf_conntrack_proto_gre
modprobe nf_nat_proto_gre

А также несколько других модулей ядра, которые мне не нужны, но я решил попробовать:

modprobe ip_gre
modprobe ip_conntrack_pptp
modprobe ip_nat_pptp

Эта проблема:

Когда трафик отправляется с grehostA Я получаю GRE-PRE Сообщения журнала, показывающие, что правило DNAT выполняется. Но я не понимаю GRE-POST/GRE-FWD/GRE-IN регистрировать сообщения, даже если POSTROUTING/FORWARD/INPUT цепочки настроены на вход и пропуск всего трафика GRE. Похоже, никто никогда не проходит через них. После DNAT я бы ожидал увидеть пакеты здесь.

Я попытался добавить правила вверху их соответствующих цепочек, чтобы убедиться, что другие правила не принимают или отклоняют трафик в первую очередь, но это не имеет значения.

Пожалуйста, имейте в виду, что я добавлю дополнительные проверки хоста источника / назначения в правила, чтобы предотвратить несанкционированный доступ, как только я действительно заставлю его работать.

РЕДАКТИРОВАТЬ: Исправлено путем добавления маршрута хоста на natrelayhost в grehostB, Спасибо, Томек!

0 ответов

Другие вопросы по тегам