adron2 Posted October 14, 2009 Posted October 14, 2009 Есть записи вида tc filter add dev eth2 protocol ip parent 1: prio 6 u32 match ip dst xx.73.128.0/20 flowid 1:253 tc filter add dev eth2 protocol ip parent 1: prio 7 u32 match ip dst xx.26.80.0/22 flowid 1:253 Есть два аплинка eth0 и eth1 Нужно каким то образом в правила tc добавить что: если пакет пришел через eth0 к ip dst xx.73.128.0/20 то flowid 1:253 если пакет пришел через eth1 к ip dst xx.73.128.0/20 то flowid 1:1000 Как это сделать без помощи iptables -t mangle ? Вставить ник Quote
vitalyb Posted October 14, 2009 Posted October 14, 2009 adron2 а почему mangle не устраивает? там же, по сути, только одно правило - выставить MARK для одного из двух интерфейсов. Вставить ник Quote
adron2 Posted October 14, 2009 Author Posted October 14, 2009 adron2 а почему mangle не устраивает? там же, по сути, только одно правило - выставить MARK для одного из двух интерфейсов. страшно за производительность. Через этот роутер 800 мегабит бегает и по 150 000 pps. Реально в мангле будет где то 10 правил всего. Не более. Вставить ник Quote
adron2 Posted October 14, 2009 Author Posted October 14, 2009 (edited) пока сделал так. Создал два класса 1:11 и 1:12 В них все нужные подклассы и классификаторы трафика на на базе u32 А в классы 1:11 и 1:12 tc filter add dev eth2 parent 1: protocol ip handle 0x555 fw prio 1 flowid 1:11 tc filter add dev eth2 parent 1: protocol ip handle 0x777 fw prio 1 flowid 1:12 Ну и соответственно iptables -t mangle -A FORWARD -i eth1 -o eth2.+ -j MARK --set-mark 0x555 iptables -t mangle -A FORWARD -i eth0 -o eth2.+ -j MARK --set-mark 0x777 То есть обошлись всего двумя правилами в mangle. Но все равно лишние модули iptable_mangle, xt_MARK загружаются. Вопрос с гуру ядер линукса. На сколько такие вот действия критичны для производительности системы? Ядро стоит 2.6.30 Edited October 14, 2009 by adron2 Вставить ник Quote
vitalyb Posted October 14, 2009 Posted October 14, 2009 adron2 Я приблизительно такое имел ввиду: tc filter add ... u32 ht ... match ip dst a.b.c.d/e match mark 0x555 0xffffffff flowid 1:253 tc filter add ... u32 ht ... match ip dst a.b.c.d/e flowid 1:1000 iptables -t mangle -A FORWARD -i eth1 -o eth2.+ -j MARK --set-mark 0x555 Вставить ник Quote
photon Posted October 14, 2009 Posted October 14, 2009 (edited) Для таких целей подойдет классификатор route: http://lartc.org/howto/lartc.adv-filter.route.html Edited October 14, 2009 by photon Вставить ник Quote
adron2 Posted October 14, 2009 Author Posted October 14, 2009 Для таких целей подойдет классификатор route: http://lartc.org/howto/lartc.adv-filter.route.html не получится так. Маршруты добавляются зеброй динамически. Можно конечно пропатчить квагу и метить реалмом пекеты но оно все такое нестабильное. Вставить ник Quote
photon Posted October 15, 2009 Posted October 15, 2009 (edited) Можно делать не -j MARK, а -j CLASSIFY --set-class 1:11, тогда не нужно будет фильтры tc создавать. Не знаю, будет ли это эффективнее обычной маркировки. Edited October 15, 2009 by photon Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.