Страница 1 из 1

Пропустить часть пакетов мимо VPN

Добавлено: 2012-12-28 10:15:32
Фосса
Дана следующая ситуация:

Код: Выделить всё

gateway# ifconfig
vr0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=82808<VLAN_MTU,WOL_UCAST,WOL_MAGIC,LINKSTATE>
        ether 00:40:63:e1:cb:5d
        inet 172.24.71.1 netmask 0xffffff00 broadcast 172.24.71.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=3<RXCSUM,TXCSUM>
        inet 127.0.0.1 netmask 0xff000000
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1500
        inet 10.0.55.143 --> 10.0.0.1 netmask 0xffffffff
tun0: flags=8043<UP,BROADCAST,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 109.169.xxx.xxx netmask 0xfffffc00 broadcast 109.169.yyy.yyy
        Opened by PID 82572
vr0 - локалка, ng0 - ppp соединение до провайдера, tun0 - OpenVPN до туманного Альбиона.

Код: Выделить всё

gateway# netstat -r
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
0.0.0.0/1          109.169.yyy.yyy        UGS       312     5200   tun0 =>
default            10.0.0.1           UGS         0      470    ng0
10.0.0.1           link#3             UH          0        0    ng0
10.0.55.143        link#3             UHS         0        0    lo0
87.117.211.117/32  10.0.0.1           UGS         0     7346    ng0
109.169.yyy.yyy/22     link#4             U           0        0   tun0
109.169.xxx.xxx      link#4             UHS         0       60    lo0
localhost          link#2             UH          0     5340    lo0
128.0.0.0/1        109.169.yyy.yyy        UGS       137     2131   tun0
172.24.71.0        link#1             U           0    88648    vr0
gateway            link#1             UHS         0      201    lo0

Код: Выделить всё

gateway# cat /etc/ipnat.rules
map ng0 from 0.0.0.0/0 to any -> 10.0.55.143/32
map tun0 from 0.0.0.0/0 to any -> 109.169.xxx.xxx/32
Сейчас все пакеты к внешним серверам (кроме входной точки VPN-а) уходят через tun0.

Нужно сделать так, чтобы пакеты от socks-прокси (nylon) уходили через ng0, не попадая в тунель. В конфиге nylon выходным интерфейсом указан ng0, но если посмотреть через socks на internet.yandex.ru, то обнаруживается, что IP по-прежнему tun0.

Что я делаю не так?

Re: Пропустить часть пакетов мимо VPN

Добавлено: 2012-12-28 10:41:06
hizel
man setfib

Re: Пропустить часть пакетов мимо VPN

Добавлено: 2012-12-28 12:25:04
Фосса
Ага, изучаю. Но, почему так-то не работает? Ведь если пакет выходит через какой-то интерфейс, то разве таблица маршрутизации не пофигу?

Re: Пропустить часть пакетов мимо VPN

Добавлено: 2012-12-28 12:38:11
hizel
как вы себе представляете код который отправляет через интерфейс?

Re: Пропустить часть пакетов мимо VPN

Добавлено: 2012-12-28 12:41:06
Фосса
А разве всё не так-же, как когда код слушает интерфейс? Зачем-же тогда вообще в конфигах _исходящий_ интерфейс указывают?

Re: Пропустить часть пакетов мимо VPN

Добавлено: 2012-12-28 12:49:03
hizel
использовать ip как исходящий. для того чтобы фаервол пропустил, например. чтобы точно знать какой ip будет в from поле ip-пакета.

Re: Пропустить часть пакетов мимо VPN

Добавлено: 2012-12-28 13:05:04
Фосса
Ясно, спасибо }=