gaaronk Posted June 16, 2017 Posted June 16, 2017 Хотелось бы получить возможность делать NAT не по входящему интерфейсу, а по исходящему. Нормальный маскарадинг с udp preserve и прочими плюшками. Без костыля в виде static.
0 Le ecureuil Posted June 16, 2017 Posted June 16, 2017 8 часов назад, gaaronk сказал: Хотелось бы получить возможность делать NAT не по входящему интерфейсу, а по исходящему. Нормальный маскарадинг с udp preserve и прочими плюшками. Без костыля в виде static. Есть же > ip static SRC DST, где DST - исходящий интерфейс udp preserve является платформоспецифичной реализацией NAT, потому на него не стоит полагаться в общем случае.
0 gaaronk Posted June 16, 2017 Author Posted June 16, 2017 4 hours ago, Le ecureuil said: Есть же > ip static SRC DST, где DST - исходящий интерфейс udp preserve является платформоспецифичной реализацией NAT, потому на него не стоит полагаться в общем случае. А вот поясните пожалуйста что именно делает команда ip nat udp-port-preserve ? Как я вижу она вставляет в цепочку _NDM_NAT_UDP первым правилом RETURN Вопрос в том что на цепочку _NDM_NAT_UDP и так никто не ссылается. Трафик в нее никогда не попадает В версии 2.09.B.0.0-1 так точно Ибо в POSTROUTING только 3 0 0 MASQUERADE all -- br0 * 0.0.0.0/0 0.0.0.0/0 4 0 0 MASQUERADE all -- br1 * 0.0.0.0/0 0.0.0.0/0 Ну и Chain _NDM_NAT_UDP (0 references)
0 Le ecureuil Posted June 17, 2017 Posted June 17, 2017 12 часа назад, gaaronk сказал: А вот поясните пожалуйста что именно делает команда ip nat udp-port-preserve ? Как я вижу она вставляет в цепочку _NDM_NAT_UDP первым правилом RETURN Вопрос в том что на цепочку _NDM_NAT_UDP и так никто не ссылается. Трафик в нее никогда не попадает В версии 2.09.B.0.0-1 так точно Ибо в POSTROUTING только 3 0 0 MASQUERADE all -- br0 * 0.0.0.0/0 0.0.0.0/0 4 0 0 MASQUERADE all -- br1 * 0.0.0.0/0 0.0.0.0/0 Ну и Chain _NDM_NAT_UDP (0 references) Попробуйте ее выключить и сразу увидите.
0 gaaronk Posted June 17, 2017 Author Posted June 17, 2017 (edited) 4 minutes ago, Le ecureuil said: Попробуйте ее выключить и сразу увидите. А она у меня и не включена. Вот те куски iptables когда настроено так: ip nat Home ip nat Guest Все, больше настроек нет Chain POSTROUTING (policy ACCEPT 5 packets, 334 bytes) num pkts bytes target prot opt in out source destination 1 19 2854 _NDM_IPSEC_POSTROUTING_NAT all -- * * 0.0.0.0/0 0.0.0.0/0 2 5 334 _NDM_SNAT all -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 MASQUERADE all -- br0 * 0.0.0.0/0 0.0.0.0/0 4 0 0 MASQUERADE all -- br1 * 0.0.0.0/0 0.0.0.0/0 Chain _NDM_NAT_UDP (0 references) num pkts bytes target prot opt in out source destination 1 0 0 MASQUERADE udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:35000:65535 masq ports: 1024-34999 2 0 0 MASQUERADE udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1024:34999 masq ports: 35000-65535 3 0 0 MASQUERADE udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:0:411 masq ports: 412-1023 4 0 0 MASQUERADE udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:412:1023 masq ports: 0-411 Включаю Chain POSTROUTING (policy ACCEPT 0 packets, 0 bytes) num pkts bytes target prot opt in out source destination 1 0 0 _NDM_IPSEC_POSTROUTING_NAT all -- * * 0.0.0.0/0 0.0.0.0/0 2 0 0 _NDM_SNAT all -- * * 0.0.0.0/0 0.0.0.0/0 3 0 0 MASQUERADE all -- br0 * 0.0.0.0/0 0.0.0.0/0 4 0 0 MASQUERADE all -- br1 * 0.0.0.0/0 0.0.0.0/0 Chain _NDM_NAT_UDP (0 references) num pkts bytes target prot opt in out source destination 1 0 0 RETURN all -- * * 0.0.0.0/0 0.0.0.0/0 2 0 0 MASQUERADE udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:1024:34999 masq ports: 35000-65535 3 0 0 MASQUERADE udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:0:411 masq ports: 412-1023 4 0 0 MASQUERADE udp -- * * 0.0.0.0/0 0.0.0.0/0 udp spts:412:1023 masq ports: 0-411 Выключаю и возвращаюсь к исходному. Edited June 17, 2017 by gaaronk
0 Le ecureuil Posted July 2, 2017 Posted July 2, 2017 Спасибо за репорт, действительно, в рамках разработки 2.09 "потерялась" часть логики. Теперь все возвращено и работает. 1
0 gaaronk Posted July 16, 2017 Author Posted July 16, 2017 Кстати, если использовать в CLI что то вроде ip static Guest PPPoE0 То в web интерфейсе ранее введенные трансляции портов не отображаются.
0 r13 Posted July 16, 2017 Posted July 16, 2017 (edited) 1 час назад, gaaronk сказал: Кстати, если использовать в CLI что то вроде ip static Guest PPPoE0 То в web интерфейсе ранее введенные трансляции портов не отображаются. Да, такое поведение было заявлено при анонсе этой новой конструкции. Edited July 16, 2017 by r13
0 gaaronk Posted July 16, 2017 Author Posted July 16, 2017 On 6/16/2017 at 9:56 PM, Le ecureuil said: Есть же > ip static SRC DST, где DST - исходящий интерфейс udp preserve является платформоспецифичной реализацией NAT, потому на него не стоит полагаться в общем случае. Тогда вопрос. Можно ли при задании ip static SRC DST, где DST - исходящий интерфейс сделать опцию чтобы рандомизировать транслируемые порты для UDP, как это делается для NAT на входном интерфейсе ? По сути проблемы. Роутер с публичным ип A держит ipsec туннель с хостом B. Клиент за роутером, полнимает от себя туннель к хосту B (иногда так надо, потому что в туннеле который держит роутер бегают определенные сетки, а иногда надо поднять на клиенте впн, что бы заворачивалось все). Роутер транслирует исходящий адрес и порт клиента (для IKE) в A:500 Статический туннель A-B через некоторое время умирает, потому что IKE сообщения от B к роутеру попадают вовсе не к роутеру, а к клиенту поднявшему отдельный туннель. 1
0 gaaronk Posted July 20, 2017 Author Posted July 20, 2017 По завету Le ecureuil буду активнее в соотвесвующей теме. Даешь нормальный NAT на выход! 1
Question
gaaronk
Хотелось бы получить возможность делать NAT не по входящему интерфейсу, а по исходящему.
Нормальный маскарадинг с udp preserve и прочими плюшками. Без костыля в виде static.
11 answers to this question
Recommended Posts