URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 97403
[ Назад ]

Исходное сообщение
"Перенаправление всего траффика на порт 161 через второй шлюз"

Отправлено POMATu , 17-Апр-19 21:06 
Здравствуте,

Я пытаюсь настроить перенаправление всех коннектов на порт 161 через второй шлюз в то время как остальные коннекты должны идти на прямую.

Схема:
[локалхост] -> [впншлюз] -> [сервер] - OK
[локалхост] <- [впншлюз] <- [сервер] - пакет исчезает после впн туннеля. То есть я могу ответный пакет проснифать на tun0 но дальше он просто исчезает

при этом -A INPUT -j ACCEPT стоит. В итоге приложение не видит ответный пакет и переотправляет его пока ему это не надоедает. С TCP пакетами происходит аналогичное, TCP-retransmission ловлю на шлюзе

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

что я делал что бы настроить это шаманство
создал новую таблицу в rt_tables 201 gw1

далее правила
ip route add default via 10.8.0.1 dev tun0 table gw1
ip rule add fwmark 0x1 table gw1
iptables -A OUTPUT -t mangle -o eth0 -p tcp --dport 443 -j MARK --set-mark 1
iptables -A POSTROUTING -t nat -o tun0 -p tcp --dport 443 -j SNAT --to 10.8.0.2
iptables -A OUTPUT -t mangle -o eth0 -p udp --dport 161 -j MARK --set-mark 1
iptables -A POSTROUTING -t nat -o tun0 -p udp --dport 161 -j SNAT --to 10.8.0.2

Ну вот и все собственно, и происходит указанная ситуация.

Пытался менять SNAT на маскарад на локалхосте - ничего не меняется все тоже самое.
DNAT еще ковырял но чето я не так делаю видимо

Может там какое-то очередная "фича" в sysctl.conf которую надо отключить или включить? Вечно это г*вно всю картину маршрутизации портит (извиняюсь, накипело уже)
Ах да система centos 7, но это не так важно я думаю


Содержание

Сообщения в этом обсуждении
"Перенаправление всего траффика на порт 161 через второй шлюз"
Отправлено ACCA , 17-Апр-19 22:11 
Похоже на косяк в маршрутах. Особенно если балуешься с NAT.

Позови ребёнка (или ещё какого джуниора) и расскажи ему в лицах, что происходит с пакетом на каждом шаге. Сам разберёшься.


"Перенаправление всего траффика на порт 161 через второй шлюз"
Отправлено POMATu , 17-Апр-19 22:30 
> Похоже на косяк в маршрутах. Особенно если балуешься с NAT.
> Позови ребёнка (или ещё какого джуниора) и расскажи ему в лицах, что
> происходит с пакетом на каждом шаге. Сам разберёшься.

Я фрилансер) кота бы позвал, да и его нет)

В общем у меня адски горит жопа, потому что проблема была там где я предполагал

for f in /proc/sys/net/ipv4/conf/*/rp_filter; do echo 0 > $f; done
echo 1 > /proc/sys/net/ipv4/route/flush

все работает теперь, и правила правильные у меня
напридумывают дерьма какого-то потом разбирайся. Каждый раз об этот сраный sysctl.conf натыкаюсь, там новые опции появляются быстрее чем я живу.

притом надо снять защиту от спуфинга на каждом интерфейсе именно! опция all не работает разумеется.


"Перенаправление всего траффика на порт 161 через второй шлюз"
Отправлено михалыч , 18-Апр-19 05:39 
> Я фрилансер) кота бы позвал, да и его нет)

тогда соседку (без соседа!), надеюсь соседка есть?

ей будет крайне интересно послушать увлекательный рассказ
о маршрутизации ма-аленьких таких себе пакетиков )))