Перейти к содержимому
Калькуляторы

вопрос по tc

Есть записи вида

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 ?

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

adron2

а почему mangle не устраивает? там же, по сути, только одно правило - выставить MARK для одного из двух интерфейсов.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

adron2

а почему mangle не устраивает? там же, по сути, только одно правило - выставить MARK для одного из двух интерфейсов.

страшно за производительность. Через этот роутер 800 мегабит бегает и по 150 000 pps.

 

Реально в мангле будет где то 10 правил всего. Не более.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

пока сделал так.

Создал два класса 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

Изменено пользователем adron2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для таких целей подойдет классификатор route: http://lartc.org/howto/lartc.adv-filter.route.html

Изменено пользователем photon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Для таких целей подойдет классификатор route: http://lartc.org/howto/lartc.adv-filter.route.html

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно делать не -j MARK, а -j CLASSIFY --set-class 1:11, тогда не нужно будет фильтры tc создавать. Не знаю, будет ли это эффективнее обычной маркировки.

Изменено пользователем photon

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.