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

Исходное сообщение
"bridge, iptables, dnat"

Отправлено therapy , 09-Фев-10 18:03 
Есть бридж из двух физических сетевух, eth1, eth2. По бриджу бегут тегированные пакеты, но сам бридж о номерах вланов не знает (вланов много, часто меняются, на бридже прописать их нереально).
ebtables и conntrack подгружены.
drop, accept на бридже работают.
При определенных дестинейшен ип и порт нужно делать днат на локалхост, точнее лупбек. На лупбеке повесил адрес 10.0.0.1, так как днат на 127/8 не всегда работает.
Вот пример правила которое почему-то не работает:
iptables -t nat -A PREROUTING -m physdev --physdev-in eth1 -d 1.1.1.1 -j DNAT --to-destination 10.0.0.1
iptables -t nat -A POSTROUTING -s 10.0.0.1 -j SNAT --to-source 1.1.1.1
Пакеты приходят на eth1. Обратно (после сната) пакеты должны уходить через eth0, интерфейс нетегированный, за ним живет шлюз.
Делаю из мира телнет, в иптаблесах счетчик дната увеличивается на единицу, но телнет не отвечает, syn+ack в ответ не приходит, и счетчики сната по нулям. С самой машины телнет проходит, проблема точно в днате.
Может проблема в том что пакеты тегированные? Хотя днат ведь смотрит содержимое только ип пакета, и езернет тут не при чем, помню делали днат с езернета в тунель, правда пакеты были нетегированные.
Может кто-то сталкивался, в гугле не нашел.

Содержание

Сообщения в этом обсуждении
"bridge, iptables, dnat"
Отправлено Andrey Mitrofanov , 09-Фев-10 18:33 
А без правила со SNAT-ом?

"bridge, iptables, dnat"
Отправлено therapy , 10-Фев-10 12:51 
Пробовал. Тот же результат, что и со снатом.