LinuxForum.Fans
Тема

tc хеш фильтры

Автор: Kettler 2 сообщений 1744 просмотров
#382472

Есть кто может не много пролить свет на эту тему?
Возьмём пример с LARCT.
http://www.opennet.ru/docs/RUS/LARTC/x1661.html

text
tc filter add dev eth1 parent 1:0 prio 5 protocol ip u32
tc filter add dev eth1 parent 1:0 prio 5 handle 2: protocol ip u32 divisor 256    

Создали хеш таблицу с ID 2.

text
tc filter add dev eth1 protocol ip parent 1:0 prio 5 u32 ht 2:7b: match ip src 1.2.0.123 flowid 1:1

Добавили фильтр, подключили к таблице с ID 2.
Тут у меня момент ht 2:7b: насколько я понял условие классификатор тут работает типо такого?
Если последняя октета равна 123 тогда отбираем пакет

text
match ip src 1.2.0.123

и отравляем в

text
 flowid 1:1

Дальше =)

text
tc filter add dev eth1 protocol ip parent 1:0 prio 5 u32 ht 800:: \
        match ip src 1.2.0.0/16 \
        hashkey mask 0x000000ff at 12 \
        link 2:      

Не совсем ясно с

text
mask 0x000000ff

если мы будем отправлять например 0xff000000
Что будет хранить в хеше?

#382481

Тему можно закрывать

Так для примера

text
#"Очищаем" интерфейс eht1
tc qdisc del dev eth1 root handle 1: htb default 15

#Создаем заново дисциплину и указываем дефолтный класс tc qdisc add dev eth1 root handle 1: htb default 15

#Создаем общий для клиентов класс tc class add dev eth1 parent 1: classid 1:1 htb rate 90Mbit ceil 90Mbit

#Создаем корневой фильтр tc filter add dev eth1 parent 1:0 protocol ip u32

#Создаем 4 хеш таблицы для каждого октета tc filter add dev eth1 parent 1:0 handle 10: protocol ip u32 divisor 256

#Создаем фильтр направлящий весь трафик в хеш таблицу с ID 10 tc filter add dev eth1 parent 1:0 protocol ip u32 ht 800:: match ip dst 192.168.0.0/16 hashkey mask 0xff00 at 16 link 10: tc filter add dev eth1 parent 1:0 protocol ip prio 1 u32 ht 10:1: hashkey mask 0xff00 at 16 match ip dst 192.168.0.0/16 flowid 1:11 tc filter add dev eth1 parent 1:0 protocol ip prio 2 u32 ht 10:2: hashkey mask 0xff00 at 16 match ip dst 192.168.0.0/16 flowid 1:12

#Создаем корневой класс клиента tc class add dev eth1 parent 1:1 classid 1:10 htb rate 90Mbit ceil 90Mbit

#Создаем 2 подкласса для каждого из видов подсети tc class add dev eth1 parent 1:10 classid 1:11 htb rate 1MBit ceil 1Mbit prio 1 tc class add dev eth1 parent 1:10 classid 1:12 htb rate 20Mbit ceil 80Mbit prio 1 tc class add dev eth1 parent 1:10 classid 1:15 htb rate 20Mbit ceil 80Mbit prio 1

#Создаем дисциплины шейпирования для конечных классов tc qdisc add dev eth1 parent 1:11 handle 11: sfq perturb 10 tc qdisc add dev eth1 parent 1:12 handle 12: sfq perturb 10 tc qdisc add dev eth1 parent 1:15 handle 15: sfq perturb 10

Войдите или зарегистрируйтесь, чтобы ответить.