Jump to content
  • 19

Выборочное отключение NAT без статического IP


KorDen
 Share

Question

Вопрос, который давно уже поднимался, но лично для меня встал острее с появлением туннелей.

На текущий момент единственный вариант не натировать сеть через туннель - отключить ip nat полностью, воспользовавшись ip static, однако он требует наличия статического IP - https://zyxel.ru/kb/3252/

По вполне очевидным причинам во многих случаях этот вариант совсем не приемлем (разве что играться со скриптами в entware).

Варианты реализации с точки зрения пользователя, на мой взгляд:

- в ip nat добавить опциональный исходящий интерфейс, описывая таким образом что натить, а что нет (скажем, натить Home->ISP, Guest ->ISP, IPIP0->ISP, но не натить IPIP<->Home)

- в ip static добавить возможность указания исходящего интерфейса, чтобы автоматически брался IP с этого интерфейса

Link to comment
Share on other sites

Recommended Posts

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

Проверил, все работает спасибо.

Поддержу вопрос KorDen

Или можно только по имени интерфейса?


ip static Home ISP

 

Адрес тоже поддерживается.

> ip static 192.168.0.0 255.255.252.0 ISP

> ip static 192.168.0.0 255.255.252.0 UsbLte0

Единственное важное - чтобы исходящие интерфейсы были public.

  • Thanks 2
Link to comment
Share on other sites

  • 0

Радость была не долгой.

Отловился первый глюк. 

После введения: 

ip static Home ISP
ip static Vlan101 ISP

пропадают правила проброса портов и соответственно проброс не работает(затерлись).

Если прописать старой командой: 

ip nat Home
ip nat Vlan101

правила появляются вновь(если их повторно добавить в вэб морде).

Пока вернул как было.

Если нужна какая информация скину в кратчайшие сроки.

Link to comment
Share on other sites

  • 0
24 минуты назад, dexter сказал:

пропадают правила проброса портов и соответственно проброс не работает(затерлись).

Правила действительно пропали из Web-интерфейса, но в CLI они отображаются и работают, иначе бы я узнал об этом несколько часов назад.

на данный момент у меня пока только

ip nat udp-port-preserve
ip nat vpn
ip static Home ISP
ip static Guest ISP

И кучка правил типа ip static tcp ISP 12345 192.168.1.50 !service

 

Кстати говоря, udp-port-preserve будет работать в такой конфигурации же как и раньше?

Link to comment
Share on other sites

  • 0

В том-то и дело, что у меня они работать перестали. OVPN не подключился и на графиках я увидел, что удаленная точка не подключена. При этом какое-то время после прошивки они работало(около 2х часов).

Link to comment
Share on other sites

  • 0
19 часов назад, dexter сказал:

Радость была не долгой.

Отловился первый глюк. 

После введения: 


ip static Home ISP
ip static Vlan101 ISP

пропадают правила проброса портов и соответственно проброс не работает(затерлись).

Если прописать старой командой: 


ip nat Home
ip nat Vlan101

правила появляются вновь(если их повторно добавить в вэб морде).

Пока вернул как было.

Если нужна какая информация скину в кратчайшие сроки.

Спасибо за репорт, проверим.

Link to comment
Share on other sites

  • 0
23 часа назад, Le ecureuil сказал:

Адрес тоже поддерживается.

> ip static 192.168.0.0 255.255.252.0 ISP

> ip static 192.168.0.0 255.255.252.0 UsbLte0

Единственное важное - чтобы исходящие интерфейсы были public.

Важное замечание - этот синтаксис не работает так, как ожидается. При этом еще и включается проброс портов с сетей 192.168.0.0/255.255.252.0 на адрес интерфейса ISP, что противоречит логике.

Короче, единственный рабочий вариант:

> ip static <in-iface> <out-iface>

Link to comment
Share on other sites

  • 0
35 минут назад, Le ecureuil сказал:

Важное замечание - этот синтаксис не работает так, как ожидается. При этом еще и включается проброс портов с сетей 192.168.0.0/255.255.252.0 на адрес интерфейса ISP, что противоречит логике.

Короче, единственный рабочий вариант:

> ip static <in-iface> <out-iface>

Значит клиентов без интефейса типа VirtualIP выборочно натить не получится?

А то я уже губу раскатал, но глядя на iptables начинаю закатывать обратно

ЗЫ надо бы к команде в первом предикате значение any прикрутить :grin:

Edited by r13
Link to comment
Share on other sites

  • 0
12 минуты назад, r13 сказал:

Значит клиентов без интефейса типа VirtualIP выборочно натить не получится?

А то я уже губу раскатал, но глядя на iptables начинаю закатывать обратно

ЗЫ надо бы к команде в первом предикате значение any прикрутить :grin:

Безынтерфейсные пока вообще без вариантов.

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

Link to comment
Share on other sites

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

Web ничего не знает о новой команде, и затирает ее полностью (как и любую другую команду ip static, не относящуюся к пробросу портов).

Потому если хотите выключения nat индивидуально по сегментам - настраивайте проброс портов через ip static тоже только в CLI.

Больше проблем не замечено.

Про вэб это я понял.

Спасибо. Завтра попробую.

Link to comment
Share on other sites

  • 0
2 часа назад, Le ecureuil сказал:

Безынтерфейсные пока вообще без вариантов.

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

Может тогда стоит не эту команду обвешивать новыми функциями, а расширять команду ip nat ?

 

  • Thanks 1
Link to comment
Share on other sites

  • 0
5 часов назад, Le ecureuil сказал:

Web ничего не знает о новой команде, и затирает ее полностью (как и любую другую команду ip static, не относящуюся к пробросу портов).

Потому если хотите выключения nat индивидуально по сегментам - настраивайте проброс портов через ip static тоже только в CLI.

Больше проблем не замечено.

Аналогичная проблема, отключив нат и включив на нужном интерфейсе и прописав через CLI нужные порты вроде работает проброс.

Вам уже пора продвинутый интерфейс делать, а то слишком много функционала за кадром, но это не самая большая проблема, хуже что веб интерфейс стирает настройки сделанные через CLI

Подобная проблема наблюдается если редактировать какой нибудь интерфейс на порту которого раскрыт акцес влан и параллельно висит один или несколько trunk вланов. После редактирования из конфига пропадают строки с акцес вланом, и к роутеру теряется доступ, проблема была замечена на GIga2, DSL, Lite 3,. Giga3

Edited by distinctive
  • Thanks 1
Link to comment
Share on other sites

  • 0
11 час назад, r13 сказал:

Может тогда стоит не эту команду обвешивать новыми функциями, а расширять команду ip nat ?

 

ip nat - это для "автоматики", которая вам как раз и не нужна.

Link to comment
Share on other sites

  • 0
9 часов назад, distinctive сказал:

Аналогичная проблема, отключив нат и включив на нужном интерфейсе и прописав через CLI нужные порты вроде работает проброс.

Вам уже пора продвинутый интерфейс делать, а то слишком много функционала за кадром, но это не самая большая проблема, хуже что веб интерфейс стирает настройки сделанные через CLI

Подобная проблема наблюдается если редактировать какой нибудь интерфейс на порту которого раскрыт акцес влан и параллельно висит один или несколько trunk вланов. После редактирования из конфига пропадают строки с акцес вланом, и к роутеру теряется доступ, проблема была замечена на GIga2, DSL, Lite 3,. Giga3

Да, web стирает настройки в cli, и это не считается багом: как только вы сами полезли в cli, то считается что вы понимаете что делаете.

Link to comment
Share on other sites

  • 0
8 минут назад, Le ecureuil сказал:

ip nat - это для "автоматики", которая вам как раз и не нужна.

Автоматика, автоматикой, но по логике ip static команда для проброса портов, ip nat команда для управления NAT. Нам по сути нужна автоматика только более гибкая. По минимуму натить не по условию интерфейса источника а по интерфейсу назначения. 

Если усложнять, то еще добавить в эту схему адрес источника. То есть по сути то что была попытка реализовать с помощью ip static

ИМХО что то вроде:

ip nat {interface | ip address/mask | any} {out interface}

Link to comment
Share on other sites

  • 0
27 минут назад, r13 сказал:

Автоматика, автоматикой, но по логике ip static команда для проброса портов, ip nat команда для управления NAT. Нам по сути нужна автоматика только более гибкая. По минимуму натить не по условию интерфейса источника а по интерфейсу назначения. 

Если усложнять, то еще добавить в эту схему адрес источника. То есть по сути то что была попытка реализовать с помощью ip static

ИМХО что то вроде:

ip nat {interface | ip address/mask | any} {out interface}

Нет, логика неправильная.

ip static - это ручное управление любым NAT, как SNAT, так и DNAT, так и вообще отключение NAT (подробности в CLI Guide).

ip nat - это автоматика (в первую очередь для упрощения работы Web).

Link to comment
Share on other sites

  • 0
1 минуту назад, Le ecureuil сказал:

Нет, логика неправильная.

ip static - это ручное управление любым NAT, как SNAT, так и DNAT, так и вообще отключение NAT (подробности в CLI Guide).

ip nat - это автоматика (в первую очередь для упрощения работы Web).

Ок.

Link to comment
Share on other sites

  • 0
2 часа назад, Le ecureuil сказал:

ip static - это ручное управление любым NAT, как SNAT, так и DNAT, так и вообще отключение NAT (подробности в CLI Guide).

ip nat - это автоматика (в первую очередь для упрощения работы Web).

Ручное управление с нюансами :\ Лично у меня от текущего варианта CLI Guide уже в голове появляется каша без примеров (которых в гайде толком и нет), а с нюансами типа "синтаксис не работает так, как ожидается" и совсем путаница.

Надо все-таки что-то с этим делать... Еще до кучи к этому всему напрягает проблема невозможности применения правил фаервола для транслируемых портов.

3 часа назад, Le ecureuil сказал:

как только вы сами полезли в cli, то считается что вы понимаете что делаете.

Еще бы выводить в WEB что-то типа "внимание, текущая конфигурация может быть несовместима с настройкой через Web-интерфейс"

Link to comment
Share on other sites

  • 0
6 часов назад, Le ecureuil сказал:

как только вы сами полезли в cli, то считается что вы понимаете что делаете.

3 часа назад, KorDen сказал:

Еще бы выводить в WEB что-то типа "внимание, текущая конфигурация может быть несовместима с настройкой через Web-интерфейс"

Тут поддерживаю, так как я понимаю что делаю когда лезу в CLI, а буквально недавно после того как настроил всё, другой человек зашел на веб перезапустить интерфейс, и как только он нажал применить, все вланы стерлись и доступ соответсвенно потерян.

 

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Recently Browsing   0 members

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