Перейти к содержанию

Вопрос

Опубликовано

Добрый день!

 

Что то никак не могу решить задачу через web-ui или cli.

Для сети 192.168.0.0/16 (доступной через туннель) при выходе в интернет и только туда, надо делать SNAT в адрес интерфейса.

Для пример - команда CLI

 

ip static 192.168.0.0 255.255.0.0 PPPoE0

прописывает не только SNAT, но и DNAT правило типа такого

 

Chain _NDM_STATIC_DNAT (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1        8   512 DNAT       all  --  *      *       0.0.0.0/0            192.168.0.0/16        to:1.9.5.31

 

Что совсем мешает жить и работать

Рекомендуемые сообщения

  • 0
Опубликовано

Интересно. Видимо сеть 192.168.0.0/16 у вас соответствует public интерфейсу, поэтому роутер и создает правило dnat заодно с snat. Т.к. судя по справочнику "Если interface или network соответствует интерфейсу c уровнем безопасности public, то будет выполняться трансляция адреса назначения (DNAT). Если to-address соответствует интерфейсу c уровнем безопасности public, то будет выполняться трансляция адреса источника (SNAT)."  У вас, видимо,  получается выполняются оба условия вот и создаются сразу два правила. Как выход, что если попробовать интерфейсу, за которым у вас сеть 192.168.0.0/16 (я так понимаю, это впн интерфейс), присвоить security-level private?

  • 0
Опубликовано

Сеть 192.168.0.0/16 не соответствует никакому интерфейсу. Она маршрутизируется в сторону интерфейса Wireguard0. На нем стыковочный адрес с маской /30. Он private

 

interface Wireguard0
    description VPN
    security-level private
    ip address 10.0.10.2 255.255.255.252
    ip mtu 1400
    ip tcp adjust-mss pmtu
    wireguard listen-port x.x.x.x
    wireguard peer <key>
        endpoint x.x.x.x:yyy
        keepalive-interval 10
        preshared-key <key>
        allow-ips 0.0.0.0 0.0.0.0
    !
    up
!
ip route 192.168.0.0 255.255.0.0 10.0.10.1 Wireguard0

 

  • 0
Опубликовано
12 minutes ago, werldmgn said:

Интересно. Видимо сеть 192.168.0.0/16 у вас соответствует public интерфейсу, поэтому роутер и создает правило dnat заодно с snat. Т.к. судя по справочнику "Если interface или network соответствует интерфейсу c уровнем безопасности public, то будет выполняться трансляция адреса назначения (DNAT). Если to-address соответствует интерфейсу c уровнем безопасности public, то будет выполняться трансляция адреса источника (SNAT)."  У вас, видимо,  получается выполняются оба условия вот и создаются сразу два правила. Как выход, что если попробовать интерфейсу, за которым у вас сеть 192.168.0.0/16 (я так понимаю, это впн интерфейс), присвоить security-level private?

Вот это "network соответствует интерфейсу c уровнем безопасности public" крайне расплывчато. Назначена на интерфейсе? Маршрутизируется в интерфейс? Непонятно но что что значит public. Да и потом. О какой сети/интерфейсе идет речь?

 

Для команды ip static 192.168.0.0 255.255.0.0 PPPoE0

Мы говорим про 192.168.0.0 255.255.0.0 или про PPPoE0 ?

  • 0
Опубликовано (изменено)
15 минут назад, gaaronk сказал:

О какой сети/интерфейсе идет речь?

Общий вид команды ip static protocol( interface| ( address› ‹mask) ) ( portthrough end-port(to-address| to-host) | [port] (to-address| to-host) [to-port] | to-address| to-host| to-interface›) Соответственно речь о 192.168.0.0/16, когда в описании упоминается interface или network. И речь о PPPoE, когда в описании сказано to-address | to-interface

15 минут назад, gaaronk сказал:

Вот это "network соответствует интерфейсу c уровнем безопасности public" крайне расплывчато. Назначена на интерфейсе? Маршрутизируется в интерфейс?

Ну не знаю. На мой взгляд, все же проблема именно в том, что роутер считает 192.168.0.0/16 соответствующей public. Поэтому и создаются два правила. Попробуйте в официальную поддержку обратиться, возможно они смогут подсказать решения для такой ситуации.

Изменено пользователем werldmgn
  • 0
Опубликовано
6 минут назад, r13 сказал:

Возможно поэтому:

 

Ничего себе какие дела. Очень плохо, что такие замечания к работе не записаны в cli manual'e. Полагаю, в данном конкретном случае, должна сработать как нужно только ip static Wireguard0 PPPoE0 

  • 0
Опубликовано

Ну да,  как тут правильно отписали ip static <in-iface> <out-iface> еще в source добавляет сеть прибитую к интерфейсу.

Я проблему подпер костылем - делаю NAT по нужным условиям на другом конце туннеля. Там просто линукс.

Использовать руки Opkg тоже невозможно =(

  • 0
Опубликовано (изменено)
12 minutes ago, werldmgn said:

Ничего себе какие дела. Очень плохо, что такие замечания к работе не записаны в cli manual'e. Полагаю, в данном конкретном случае, должна сработать как нужно только ip static Wireguard0 PPPoE0 

Оно работает так

Chain _NDM_STATIC_SNAT (1 references)
num   pkts bytes target     prot opt in     out     source               destination
4        0     0 SNAT       all  --  *      ppp0    10.0.10.0/30      0.0.0.0/0            ndmmark match 0x4/0x4 to:x.x.x.x

 

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

Поэтому тут надо явно задавать сети. А вот тот то оно добавляет сети в DNAT - в том и печаль.

 

Изменено пользователем gaaronk
  • 0
Опубликовано
3 минуты назад, gaaronk сказал:

 

Печально что тема 2017 года, а изменений нет =(

Согласен. Особенно учитывая, что под капотом то по сути нетфильтр, где все это элементарно выполняется. Ну, допустим, есть проблема с интерпретацией команды ip static, слишком она сложная и универсальная, ну так сделали бы две отдельные ip snat и ip dnat.

  • 0
Опубликовано
1 minute ago, werldmgn said:

Согласен. Особенно учитывая, что под капотом то по сути нетфильтр, где все это элементарно выполняется. Ну, допустим, есть проблема с интерпретацией команды ip static, слишком она сложная и универсальная, ну так сделали бы две отдельные ip snat и ip dnat.

Надо Feature Request пилить

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.