LINUX.ORG.RU
ФорумAdmin

Вопрос по шейперу


0

0

Здравствуйте.

К примеру есть такой шейпер который делает 100кбит для всех кто в подсети 172.16.0.0/24. Т.е все в этой сети делят между собой 100кбит. Вопрос: а как сделать чтоб 100кбит было не на всех а для каждого отдельно?

tc qdisc del dev $iface root handle 1: htb default 401 tc qdisc add dev $iface root handle 1: htb default 401

tc class add dev $iface parent 1: classid 1:1 htb rate 100mbit quantum 65535

tc class add dev $iface parent 1:1 classid 1:401 htb rate 100mbit quantum 65535 prio 0

tc class add dev $iface parent 1:1 classid 1:a1 htb rate 100kbit quantum 65535 prio 2

tc filter add dev $iface protocol all parent 1:0 prio 2 u32 match ip dst 172.16.0.0/24 classid 1:a1

Спасибо.

> Вопрос: а как сделать чтоб 100кбит было не на всех а для каждого отдельно?
Примерно так:

tc class add dev $iface parent 1:1 classid 1:a1 htb rate 100kbit quantum 65535 prio 2
tc filter add dev $iface protocol all parent 1:0 prio 2 u32 match ip dst 172.16.0.1 classid 1:a1
tc class add dev $iface parent 1:1 classid 1:a2 htb rate 100kbit quantum 65535 prio 2
tc filter add dev $iface protocol all parent 1:0 prio 2 u32 match ip dst 172.16.0.2 classid 1:a2
tc class add dev $iface parent 1:1 classid 1:a3 htb rate 100kbit quantum 65535 prio 2
tc filter add dev $iface protocol all parent 1:0 prio 2 u32 match ip dst 172.16.0.3 classid 1:a3

и т.д. А вот для класса 1:401 я бы задал вот такие параметры:

rate 1 kbit ceil 100Mbit

VitalkaDrug ★★
()

провайдеры делают это при помощи tc filter .... police для каждого ипа.

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

azure ★★
()
Ответ на: комментарий от azure

Провайдеры делают хешфильтры или классификатор flow. А то когда сделате пять тыщ правил поочереди то никакие ксеоны не потянут. А с хешфильтрами обычно 2-3 сравнения, не говоря уже про flow

PS: У вас нет краевых дисцислин - для каждого вашего класса еще нужно:

 tc qdisc add dev $iface root parent 1:a1 handle 1:a1 sfq perturb 10
к примеру так

ventilator ★★★
()
Ответ на: комментарий от ventilator

каким именно образом обрабатывается цепочка фильтров - это уже вопрос производительности, он здесь не поднимался.

azure ★★
()
Ответ на: комментарий от ventilator

> PS: У вас нет краевых дисцислин - для каждого вашего класса еще нужно:

краевые дисциплины есть всегда. по дефолту [p|b]fifo

azure ★★
()
Ответ на: комментарий от ventilator

Т.е я все равно для каждого ip-адреса должен создавать свой класс?

palladium
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.