LINUX.ORG.RU
ФорумAdmin

OpenVPN - как выборочно зарулить туда проходящий трафик?

 ,


0

2

Всем привет. Воюю с оператором сотовой связи :) Имеется две подсети (дачная и городская), объединенные OpenVPN. Дачный роутер устанавливает соединение с московским по статическому IP (через USB-модем 192.168.8.1). Стоит задача завернуть в туннель весь трафик (с дачи), кроме определенных портов (для простоты начнем с 443/HTTPS). Туннель работает очень медленно, поэтому завернуть туда весь трафик - не вариант (я так понял, все упирается в железо роутеров)

Таблица маршрутизации на дачном роутере:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.8.1     0.0.0.0         UG    1      0        0 weth0
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
192.168.2.0     192.168.4.1     255.255.255.0   UG    500    0        0 tun0
192.168.4.0     *               255.255.255.0   U     0      0        0 tun0
192.168.5.0     192.168.4.1     255.255.255.0   UG    0      0        0 tun0
192.168.8.0     *               255.255.255.0   U     0      0        0 weth0

начитавшись умных людей, делаю вот что:

iptables -t mangle -A FORWARD -p tcp -m multiport ! --dports 443 -j MARK --set-mark 0x2
ip route add default via 192.168.4.1 dev tun0 table 102
ip rule add fwmark 0x2/0x2 lookup 102

и… никакого видимого эффекта не наблюдаю. Что я делаю не так?


Ответ на: комментарий от anonymous

спасибо. появился видимый эффект :)

iptables -t mangle -A PREROUTING -i br0 -p tcp -m multiport ! --dports 443 -j MARK --set-mark 0x2
ip route add default via 192.168.4.1 dev tun0 table 102
ip rule add fwmark 0x2/0x2 lookup 102

теперь https не грузится. что я опять не так делаю (br0 - это LAN)?

Toxa79 ()
Ответ на: комментарий от Toxa79

-A OUTPUT -j CONNMARK –restore-mark –nfmask 0xffffffff –ctmask 0xffffffff Попробуй ещё добавить. Посмотри куда у тебя https теперь уходит

anonymous ()
Ответ на: комментарий от Toxa79

а как «посмотреть куда у тебя https теперь уходит»?

tcpdump
Но в целом ваше правило не должно никак влиять на 443 порт

anc ★★★★★ ()
Ответ на: комментарий от anonymous

-A OUTPUT -j CONNMARK

Вроде как не причем,
1. OUTPUT это только для локальных процессов.
2. ТС маркирует не соединение а каждый пакет.

anc ★★★★★ ()
Ответ на: комментарий от anc

не знаю, как это все оттрассировать… методом проб и ошибок убедился, что на asus-500gp/oleg нижеприведенный конфиг работает (https трафик перестает заворачиваться в ovpn-туннель, в отличие от остального трафика. проверяю speedtest.net), а на asus-rt56/padavan - нет (https страницы перестают грузиться):

iptables -t mangle -A PREROUTING -i br0 -p tcp --dport 443 -j MARK --set-mark 111
ip route add default via 192.168.8.1 dev wan0 table 111
ip rule add fwmark 111 lookup 111

какой-то хардкор…

Toxa79 ()
Ответ на: комментарий от Toxa79

https страницы перестают грузиться

Только они?

iptables -t mangle -I POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 

anc ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.