Jump to content
  • 5

NAT на выходном интерфейсе


gaaronk

Question

Хотелось бы получить возможность делать NAT не по входящему интерфейсу, а по исходящему.

Нормальный маскарадинг с udp preserve и прочими плюшками. Без костыля в виде static.

Link to comment
Share on other sites

11 answers to this question

Recommended Posts

  • 0
8 часов назад, gaaronk сказал:

Хотелось бы получить возможность делать NAT не по входящему интерфейсу, а по исходящему.

Нормальный маскарадинг с udp preserve и прочими плюшками. Без костыля в виде static.

Есть же

> ip static SRC DST, где DST - исходящий интерфейс

udp preserve является платформоспецифичной реализацией NAT, потому на него не стоит полагаться в общем случае.

Link to comment
Share on other sites

  • 0
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)

Link to comment
Share on other sites

  • 0
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)

Попробуйте ее выключить и сразу увидите.

Link to comment
Share on other sites

  • 0

 

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 by gaaronk
Link to comment
Share on other sites

  • 0

Кстати, если использовать в CLI что то вроде 

 ip static Guest PPPoE0

То в web интерфейсе ранее введенные трансляции портов не отображаются.

Link to comment
Share on other sites

  • 0
1 час назад, gaaronk сказал:

Кстати, если использовать в CLI что то вроде 

 ip static Guest PPPoE0

То в web интерфейсе ранее введенные трансляции портов не отображаются.

Да, такое поведение было заявлено при анонсе этой новой конструкции.

Edited by r13
Link to comment
Share on other sites

  • 0
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 к роутеру попадают вовсе не к роутеру, а к клиенту поднявшему отдельный туннель.

 

  • Thanks 1
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...