Порядок прохождения пакетов через iptables и iproute, sl1der, 04-Сен-07, 10:09 [смотреть все]Здравствуйте, у меня следующий вопрос. Даны следующие исходные данные (все согласно многочисленным мануалам, форумам и т.д.) 1) 2 канала (шлюза) в инет (ppp0 и ppp1) 2) локальная сеть (eth1) 3) ppp0 шлюз по умолчанию 4) маркирую пакеты (p2p-траффика и pop,smtp) ..._iptables... #p2p $IPTABLES -t mangle -A PREROUTING -j CONNMARK --restore-mark $IPTABLES -t mangle -A PREROUTING -m mark ! --mark 0 -j ACCEPT $IPTABLES -t mangle -A PREROUTING -m ipp2p --ipp2p -j MARK --set-mark 0x1 $IPTABLES -t mangle -A PREROUTING -m mark --mark 0x1 -j CONNMARK --save-mark #mail $IPTABLES -t mangle -A PREROUTING -p tcp -m multiport --dports 25,110 -j MARK --set-mark 0x2 5) делаю переброс их с ppp0 на ppp1 ..._iproute... $RULE add fwmark 0x1 priority 99 table ppp1 #p2p $RULE add fwmark 0x2 priority 100 table ppp1 #mail$RULE add from $INET_IP_2 priority 101 table ppp1 $RULE add from $INET_IP priority 102 table ppp0 $ROUTE add default via $INET_GW dev $INET_DEV src $INET_IP table ppp0 $ROUTE add default via $INET_GW_2 dev $INET_DEV_2 src $INET_IP_2 table ppp1 $ROUTE flush cache 6)Поднят NAT в iptables $IPTABLES -t nat -A POSTROUTING -o $INET_DEV -j SNAT --to-source $INET_IP $IPTABLES -t nat -A POSTROUTING -o $INET_DEV_2 -j SNAT --to-source $INET_IP_2 ПРОБЛЕМА: Пакеты почты проходят без проблем на второй канал, а p2p не хотят, хотя в таблицу пакеты попадают и, САМОЕ ИНТЕРЕСНОЕ, программа mtorrent перестает качать вообще. Объясните пожалуйста порядок прохождения пакета и его возврата в случае использования клиентом в локальной сети (за NAT) p2p сетей (bittorrent например). Я понимаю так в моем случае сначала цепочка (mangle)PREROUTING(маркируем пакеты)->FORWARD(фильтруем разрешенные пакеты, остальные отбрасываем)->(iproute направляет пакеты в шлюз в зависимости от маркировки)->(nat)POSTROUTING (маскируем пакеты) НО: может после маркировки пакет попадает в локальный процесс и идет соотвествено по другим цепочкам (по моему чушь, но всякое бывает :))
|
- Порядок прохождения пакетов через iptables и iproute, sn, 10:46 , 04-Сен-07 (1)
>Я понимаю так в моем случае сначала цепочка (mangle)PREROUTING(маркируем пакеты)->FORWARD(фильтруем разрешенные пакеты, остальные отбрасываем)->(iproute направляет пакеты в шлюз в зависимости от маркировки)->(nat)POSTROUTING (маскируем пакеты)после роутинга либо форвард либо инпут. >НО: может после маркировки пакет попадает в локальный процесс и идет соотвествено >по другим цепочкам (по моему чушь, но всякое бывает :)) может.
- Порядок прохождения пакетов через iptables и iproute, sl1der, 11:18 , 04-Сен-07 (2)
>>Я понимаю так в моем случае сначала цепочка (mangle)PREROUTING(маркируем пакеты)->FORWARD(фильтруем разрешенные пакеты, остальные отбрасываем)->(iproute направляет пакеты в шлюз в зависимости от маркировки)->(nat)POSTROUTING (маскируем пакеты) > >после роутинга либо форвард либо инпут. Это в общем случае форвард или инпут. Я спрашиваю конктретно, что в моем случае? Я так понимаю тут транзитные пакеты, но меня смущает маркировка. Как взаимодействуют iproute и iptable в случае использования NAT и маркировки?
- Порядок прохождения пакетов через iptables и iproute, tux2002, 11:22 , 07-Сен-07 (3)
Руководствуюсь такой вот кривой картинкой :) запарился network | mangle PREROUTING | nat PREROUTING | Routing ----------------- decision------------------ | | mangle mangle INPUT FORWARD | | filter filter INPUT FORWARD | | Local process | | | Routing | decision | | | mangle | OUTPUT | | | nat | OUTPUT | | | filter | OUTPUT | | | -------------------------------------------- | mangle POSTROUTING | nat POSTROUTING | network
- Порядок прохождения пакетов через iptables и iproute, sl1der, 10:56 , 23-Окт-07 (5)
Спасибо за ответы, это я прекрасно знаю. Возможно вопрос неправильно сформулирован. Я имел ввиду именно прохождение bittorent трафика. Прочитайте пожалуйста внимательно первый пост.Суть в том, что порты 25 и 110, icmp прекрасно метяться и направляются по разным маршрутам. А p2p траффик метиться, но на этом все и заканчивается. В теории все должно работать.
|