Jump to content

Question

Posted

Добрый день!

 

Что то никак не могу решить задачу через 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

 

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

12 answers to this question

Recommended Posts

  • 0
Posted

Интересно. Видимо сеть 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
Posted

Сеть 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
Posted
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
Posted (edited)
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. Поэтому и создаются два правила. Попробуйте в официальную поддержку обратиться, возможно они смогут подсказать решения для такой ситуации.

Edited by werldmgn
  • 0
Posted

Тут пришло в голову. Раз у вас интерфейс wireguard, так сделайте ip static Wireguard0 PPPoE0 

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

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

 

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

  • 0
Posted

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

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

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

  • 0
Posted (edited)
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 - в том и печаль.

 

Edited by gaaronk
  • 0
Posted
16 minutes ago, r13 said:

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

 

 

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

  • 0
Posted
3 минуты назад, gaaronk сказал:

 

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

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

  • 0
Posted
1 minute ago, werldmgn said:

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

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

Important Information

This site uses cookies. By clicking "I accept" or continuing to browse the site, you authorize their use in accordance with the Privacy Policy.