URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 54928
[ Назад ]

Исходное сообщение
"Проблема с классификацией трафика в HTB"

Отправлено eddy , 28-Мрт-05 17:54 
Есть задача  - раздать приоритеты фтп-трафику и игре Counter-Strike, на весь остальной трафик отдать дефолтное правило. Я пока только изучаю управление трафиком поэтому взял эту задачу себе для примера. У меня есть роутер  - с одной стороны у него езернет (клиенты, eth2), с другой - узкий канал (eth0).

Ядро 2.4.28


Написал вот такой простой набор правил:

tc qdisc add dev eth2 root handle 1:0 htb default 15
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 500kbit

tc class add dev eth2 parent 1:1 classid 1:5 htb rate 150kbit ceil 150kbit prio 2
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 150kbit ceil 150kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 200kbit ceil 200kbit prio 10

tc qdisc add dev eth2 parent 1:5 handle 5:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:15 handle 15:0 sfq perturb 10

tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip sport 21 flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip sport 20 flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip sport 27015 flowid 1:5

Так вот - не работает. Весь трафик почемуто класифицируется как трафик по умолчанию и загоняется в класс 15. Я это определил по тому, что изменение параметров первых двух классов не дает никаких изменений в работе в отличие от третьего, дефолтного класса 15.

Попробовал в параметрах фильтров писать не порты а адреса - и заработало все как надо.
Спрашивается почему не работает при указании портов?


Содержание

Сообщения в этом обсуждении
"Проблема с классификацией трафика в HTB"
Отправлено nrvalex , 28-Мрт-05 18:32 
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip sport 20 flowid 1:10

match ip sport 20 0xffff flowid 1:10

>Так вот - не работает. Весь трафик почемуто класифицируется как трафик по
>умолчанию и загоняется в класс 15. Я это определил по тому,
>что изменение параметров первых двух классов не дает никаких изменений в
>работе в отличие от третьего, дефолтного класса 15.
>

tc -s -d class show dev eth2



"Проблема с классификацией трафика в HTB"
Отправлено eddy , 28-Мрт-05 18:45 
>>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>>match ip sport 20 flowid 1:10
>
>match ip sport 20 0xffff flowid 1:10

сорри - это я уже после нескольких правок выложил - забыл добавить

>
>>Так вот - не работает. Весь трафик почемуто класифицируется как трафик по
>>умолчанию и загоняется в класс 15. Я это определил по тому,
>>что изменение параметров первых двух классов не дает никаких изменений в
>>работе в отличие от третьего, дефолтного класса 15.
>>
>
>tc -s -d class show dev eth2


# tc -s -d class show dev eth2
tc: can't resolve symbol 'rint'
#

помоему это не то что Вы хотели увидеть :)


"Проблема с классификацией трафика в HTB"
Отправлено eddy , 04-Апр-05 11:32 
# tc -s -d class show dev eth2
class htb 1:1 root rate 500Kbit ceil 500Kbit burst 2224b/8 mpu 0b cburst 2224b/8 mpu 0b level 7
Sent 4255506 bytes 5533 pkts (dropped 0, overlimits 0)
rate 8480bit 23pps
lended: 1839 borrowed: 0 giants: 0
tokens: 26437 ctokens: 26437

class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 1875 rate 150Kbit ceil 500Kbit burst 1786b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 3106601 bytes 2058 pkts (dropped 0, overlimits 0)
rate 137bit
lended: 670 borrowed: 1388 giants: 0
tokens: 70037 ctokens: 26752

class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1000 rate 20Kbit ceil 500Kbit burst 1624b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 18872 bytes 32 pkts (dropped 0, overlimits 0)
lended: 21 borrowed: 11 giants: 0
tokens: 456788 ctokens: 26437

class htb 1:5 parent 1:1 leaf 5: prio 2 quantum 2500 rate 200Kbit ceil 500Kbit burst 1849b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 1130033 bytes 3443 pkts (dropped 0, overlimits 0)
rate 7480bit 21pps
lended: 3003 borrowed: 440 giants: 0
tokens: 59310 ctokens: 28639


"Проблема с классификацией трафика в HTB"
Отправлено eddy , 04-Апр-05 11:35 
# tc -s -d class show dev eth2
class htb 1:1 root rate 500Kbit ceil 500Kbit burst 2224b/8 mpu 0b cburst 2224b/8 mpu 0b level 7
Sent 4255506 bytes 5533 pkts (dropped 0, overlimits 0)
rate 8480bit 23pps
lended: 1839 borrowed: 0 giants: 0
tokens: 26437 ctokens: 26437

class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 1875 rate 150Kbit ceil 500Kbit burst 1786b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 3106601 bytes 2058 pkts (dropped 0, overlimits 0)
rate 137bit
lended: 670 borrowed: 1388 giants: 0
tokens: 70037 ctokens: 26752

class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1000 rate 20Kbit ceil 500Kbit burst 1624b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 18872 bytes 32 pkts (dropped 0, overlimits 0)
lended: 21 borrowed: 11 giants: 0
tokens: 456788 ctokens: 26437

class htb 1:5 parent 1:1 leaf 5: prio 2 quantum 2500 rate 200Kbit ceil 500Kbit burst 1849b/8 mpu 0b cburst 2224b/8 mpu 0b level 0
Sent 1130033 bytes 3443 pkts (dropped 0, overlimits 0)
rate 7480bit 21pps
lended: 3003 borrowed: 440 giants: 0
tokens: 59310 ctokens: 28639



"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 04-Апр-05 13:40 
Я бы переписал так:

tc qdisc add dev eth2 root handle 1:0 htb default 15
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 500kbit

tc class add dev eth2 parent 1:1 classid 1:5 htb rate 150kbit ceil 150kbit prio 2
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 150kbit ceil 150kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 200kbit ceil 200kbit prio 10

tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo limit 10

tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 21 0xffff classid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 20 0xffff classid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x11 0xff match ip sport 27015 0xffff classid 1:5


"Проблема с классификацией трафика в HTB"
Отправлено eddy , 05-Апр-05 09:35 
Спасибо. Теперь классифицируется правильно.

Но теперь другая проблема.

если я пропишу вот так:

#eth2

tc qdisc add dev eth2 root handle 1:0 htb default 15
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 500kbit

tc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit ceil 500kbit prio 2
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit ceil 500kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit ceil 500kbit prio 10

tc qdisc add dev eth2 parent 1:5 handle 5:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:10 handle 10:0 sfq perturb 10
tc qdisc add dev eth2 parent 1:15 handle 15:0 sfq perturb 10

#VPN & Contra
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid 1:5
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid 1:5

#FTP
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 21 0xffff flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 20 0xffff flowid 1:10


В этом случае у меня FTP сможет использовать неиспользуемую полосу вплоть до 500kbit. Но на практике получилось что этот трафик "занимает" и при этом забивает напрочь контру и впн, несмотря на то что у них приоритет выше. Чтобы обеспечить бесперебойную работу интерактивных протоколов мне пришлось написать rate 128kbit ceil 128kbit - т. е. просто "зарезать" FTP.
Так как же сделать чтобы и неиспользуемая полоса занималась, но и интерактивный и более приоритетный трафик не забивался?


"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 05-Апр-05 10:38 
1. По моему в ядрах до 2.4.27 включительно были как раз проблемы с htb
borrowing,
2. количество переданной информации, после отсылки которой начинается
обработка менее приоритетного класса задается параметром "quantum"
3. попробуй вместо sfq использовать pfifo в leaf дисциплинах, в противном
случае придется крутить wmem_* + tcp_wmem*.

4. вышли ка tc -d -s qdisc sh dev eth2



"Проблема с классификацией трафика в HTB"
Отправлено eddy , 05-Апр-05 10:54 
>1. По моему в ядрах до 2.4.27 включительно были как раз проблемы
>с htb
>borrowing,

а у меня как раз 2.4.28

>2. количество переданной информации, после отсылки которой начинается
>обработка менее приоритетного класса задается параметром "quantum"

тоесть этот параметр можно попробовать увеличить?

>3. попробуй вместо sfq использовать pfifo в leaf дисциплинах, в противном
>случае придется крутить wmem_* + tcp_wmem*.
>

попробую

>4. вышли ка tc -d -s qdisc sh dev eth2

# tc -d -s qdisc sh dev eth2
qdisc htb 1: r2q 10 default 15 direct_packets_stat 36 ver 3.17
Sent 69664656 bytes 85336 pkts (dropped 0, overlimits 48012)
qdisc sfq 5: parent 1:5 limit 128p quantum 1514b flows 128/1024 perturb 10sec
Sent 3256 bytes 44 pkts (dropped 0, overlimits 0)
qdisc sfq 10: parent 1:10 limit 128p quantum 1514b flows 128/1024 perturb 10sec
Sent 13809896 bytes 9167 pkts (dropped 0, overlimits 0)
qdisc sfq 15: parent 1:15 limit 128p quantum 1514b flows 128/1024 perturb 10sec
Sent 55236845 bytes 71344 pkts (dropped 0, overlimits 0)
#



"Проблема с классификацией трафика в HTB"
Отправлено eddy , 05-Апр-05 11:30 
>1. По моему в ядрах до 2.4.27 включительно были как раз проблемы
>с htb
>borrowing,
>2. количество переданной информации, после отсылки которой начинается
>обработка менее приоритетного класса задается параметром "quantum"

а число указываетс в байтах? Попробовал указать 1000000 для самого приоритетного - не помогло

>3. попробуй вместо sfq использовать pfifo в leaf дисциплинах, в противном
>случае придется крутить wmem_* + tcp_wmem*.
>

попробовал pfifo - не помогло, может там еще какой параметр надо?

>4. вышли ка tc -d -s qdisc sh dev eth2



"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 05-Апр-05 13:09 
чего-то я нифига не вижу
1. создай очереди с pfifo
2. вышли ка еще раз tc -d -s class sh dev eth2 с пиковой загрузкой


"Проблема с классификацией трафика в HTB"
Отправлено eddy , 05-Апр-05 15:42 
>чего-то я нифига не вижу
>1. создай очереди с pfifo


#eth2

tc qdisc add dev eth2 root handle 1:0 htb default 15
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1020kbit

tc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit ceil 1020kbit prio 2
tc class add dev eth2 parent 1:1 classid 1:7 htb rate 128kbit ceil 1020kbit prio 5
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit ceil 1020kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit ceil 52kbit prio 7

tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo
tc qdisc add dev eth2 parent 1:7 handle 7:0 pfifo
tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo
tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo

#SSH
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 22 0xffff flowid 1:5

#VPN
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid 1:5

#Contra
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid 1:7

#FTP
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 21 0xffff flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 20 0xffff flowid 1:10

>2. вышли ка еще раз tc -d -s class sh dev eth2
>с пиковой загрузкой

# tc -d -s class show dev eth2
class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b cburst 2874b
/8 mpu 0b level 7
Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
rate 66973bit 61pps
lended: 6878 borrowed: 0 giants: 0
tokens: 8450 ctokens: 8450

class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 1600 rate 128Kbit ceil 1020Kbi
t burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 12825077 bytes 8493 pkts (dropped 0, overlimits 0)
rate 65292bit 43pps
lended: 1622 borrowed: 6871 giants: 0
tokens: -14310 ctokens: 8758

class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1000 rate 52Kbit ceil 52Kbit b
urst 1.625Kb/8 mpu 0b cburst 1.625Kb/8 mpu 0b level 0
Sent 2256 bytes 20 pkts (dropped 0, overlimits 0)
lended: 20 borrowed: 0 giants: 0
tokens: 198750 ctokens: 198750

class htb 1:5 parent 1:1 leaf 5: prio 2 quantum 4000 rate 320Kbit ceil 1020Kbit
burst 1999b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 54551 bytes 452 pkts (dropped 0, overlimits 0)
rate 298bit 1pps
lended: 452 borrowed: 0 giants: 0
tokens: 39977 ctokens: 18164

class htb 1:7 parent 1:1 leaf 7: prio 5 quantum 1600 rate 128Kbit ceil 1020Kbit
burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 122817 bytes 1310 pkts (dropped 0, overlimits 0)
rate 1190bit 14pps
lended: 1303 borrowed: 7 giants: 0
tokens: 83968 ctokens: 17702



"Проблема с классификацией трафика в HTB"
Отправлено jonatan , 05-Апр-05 16:32 
>#VPN
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid
>1:5
Для VPN (pptp) нужен еще протокол GRE (47).

tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x2f 0xff flowid 1:5


"Проблема с классификацией трафика в HTB"
Отправлено eddy , 05-Апр-05 16:51 
>>#VPN
>>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>>match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid
>>1:5
>Для VPN (pptp) нужен еще протокол GRE (47).
>
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x2f 0xff flowid 1:5

Спасибо, а то я долго голову ломал почему VPN не хочет в этот класс попадать.


"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 05-Апр-05 18:53 
Видиш ли, я вообще не вижу чтобы htb откидывал пакеты (у тебя drop везде по нулям). pfifo слудует выставить в 10 (я уж не помню сколько там по
умолчанию устанавливается, но по моему в районе 100). Все остальное
выглядит вполне нормально, единственное что могу еще посоветовать, это
подкрутить r2q<10.

>>чего-то я нифига не вижу
>>1. создай очереди с pfifo
>
>
>#eth2
>
>tc qdisc add dev eth2 root handle 1:0 htb default 15
>tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1020kbit
>
>
>tc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit
>ceil 1020kbit prio 2
>tc class add dev eth2 parent 1:1 classid 1:7 htb rate 128kbit
>ceil 1020kbit prio 5
>tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit
>ceil 1020kbit prio 6
>tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit
>ceil 52kbit prio 7
>
>tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo
>tc qdisc add dev eth2 parent 1:7 handle 7:0 pfifo
>tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo
>tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo
>
>#SSH
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 22 0xffff flowid
>1:5
>
>#VPN
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid
>1:5
>
>#Contra
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid
>1:7
>
>#FTP
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 21 0xffff flowid
>1:10
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 20 0xffff flowid
>1:10
>
>
>
>>2. вышли ка еще раз tc -d -s class sh dev eth2
>>с пиковой загрузкой
>
># tc -d -s class show dev eth2
>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>cburst 2874b
>/8 mpu 0b level 7
> Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
> rate 66973bit 61pps
> lended: 6878 borrowed: 0 giants: 0
> tokens: 8450 ctokens: 8450
>
>class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 1600 rate
>128Kbit ceil 1020Kbi
>t burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
> Sent 12825077 bytes 8493 pkts (dropped 0, overlimits 0)
> rate 65292bit 43pps
> lended: 1622 borrowed: 6871 giants: 0
> tokens: -14310 ctokens: 8758
>
>class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1000 rate
>52Kbit ceil 52Kbit b
>urst 1.625Kb/8 mpu 0b cburst 1.625Kb/8 mpu 0b level 0
> Sent 2256 bytes 20 pkts (dropped 0, overlimits 0)
> lended: 20 borrowed: 0 giants: 0
> tokens: 198750 ctokens: 198750
>
>class htb 1:5 parent 1:1 leaf 5: prio 2 quantum 4000 rate
>320Kbit ceil 1020Kbit
>burst 1999b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
> Sent 54551 bytes 452 pkts (dropped 0, overlimits 0)
> rate 298bit 1pps
> lended: 452 borrowed: 0 giants: 0
> tokens: 39977 ctokens: 18164
>
>class htb 1:7 parent 1:1 leaf 7: prio 5 quantum 1600 rate
>128Kbit ceil 1020Kbit
>burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
> Sent 122817 bytes 1310 pkts (dropped 0, overlimits 0)
> rate 1190bit 14pps
> lended: 1303 borrowed: 7 giants: 0
> tokens: 83968 ctokens: 17702



"Проблема с классификацией трафика в HTB"
Отправлено eddy , 06-Апр-05 09:03 
>Видиш ли, я вообще не вижу чтобы htb откидывал пакеты (у тебя
>drop везде по нулям). pfifo слудует выставить в 10 (я уж
>не помню сколько там по
>умолчанию устанавливается, но по моему в районе 100).

Вы имеете ввиду параметр limit? Он там стоит по умолчанию 1000


>Все остальное
>выглядит вполне нормально, единственное что могу еще посоветовать, это
>подкрутить r2q<10.



"Проблема с классификацией трафика в HTB"
Отправлено eddy , 06-Апр-05 10:00 
Создал такие правила:

#eth2

tc qdisc add dev eth2 root handle 1:0 htb default 15 r2q 5
tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1020kbit

tc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit ceil 1020kbit prio 1
tc class add dev eth2 parent 1:1 classid 1:6 htb rate 50kbit ceil 1020kbit prio 3
tc class add dev eth2 parent 1:1 classid 1:7 htb rate 128kbit ceil 1020kbit prio 5
tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit ceil 1020kbit prio 6
tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit ceil 1020kbit prio 7

tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:6 handle 6:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:7 handle 7:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo limit 10
tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo limit 10

#SSH
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 22 0xffff flowid 1:6

#VPN
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid 1:5
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x2f 0xff flowid 1:5

#Contra
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid 1:7

#FTP
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 21 0xffff flowid 1:10
tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32 match ip protocol 0x06 0xff match ip sport 20 0xffff flowid 1:10


1. Запустил закачку по FTP - скорость закачки максимальная.
2. Зашел на сервер контры - скорость закачки стала прыгать в сторону уменьшения (тоесть более приоритетный трафик стал брать свое от канала)
3. Все бы хорошо, но контре от этого не легче - латенси в игре переваливает за 1200

Посмотрел статистику:

# tc -d -s class show dev eth2
class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b cburst 2874b/8 mpu 0b level 7
Sent 3337578 bytes 3161 pkts (dropped 0, overlimits 0)
rate 49769bit 46pps
lended: 1610 borrowed: 0 giants: 0
tokens: 7834 ctokens: 7834

class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 3200 rate 128Kbit ceil 1020Kbit burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 3209874 bytes 2121 pkts (dropped 0, overlimits 0)
rate 48351bit 31pps
lended: 561 borrowed: 1560 giants: 0
tokens: -74528 ctokens: 8758

class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1300 rate 52Kbit ceil 1020Kbit burst 1.625Kb/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 46493 bytes 62 pkts (dropped 0, overlimits 0)
rate 190bit
lended: 12 borrowed: 50 giants: 0
tokens: 187660 ctokens: 17342

class htb 1:5 parent 1:1 leaf 5: prio 1 quantum 8000 rate 320Kbit ceil 1020Kbit burst 1999b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
lended: 0 borrowed: 0 giants: 0
tokens: 40960 ctokens: 18472

class htb 1:6 parent 1:1 leaf 6: prio 3 quantum 1250 rate 50Kbit ceil 1020Kbit burst 1.625Kb/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 14472 bytes 172 pkts (dropped 0, overlimits 0)
rate 348bit 4pps
lended: 172 borrowed: 0 giants: 0
tokens: 211550 ctokens: 18164

class htb 1:7 parent 1:1 leaf 7: prio 5 quantum 3200 rate 128Kbit ceil 1020Kbit burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b level 0
Sent 66739 bytes 806 pkts (dropped 0, overlimits 0)
rate 1048bit 11pps
lended: 806 borrowed: 0 giants: 0
tokens: 82740 ctokens: 17548

Получается так что FTP может занимать неиспользуемую полосу, но если более приоритетные приложения начинают задействовать свою полосу - то полоса эта разгружается недостаточно быстро.


"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 07-Апр-05 11:59 
>Создал такие правила:
>
>#eth2
>
>tc qdisc add dev eth2 root handle 1:0 htb default 15 r2q
>5
>tc class add dev eth2 parent 1:0 classid 1:1 htb rate 1020kbit
>
>
>tc class add dev eth2 parent 1:1 classid 1:5 htb rate 320kbit
>ceil 1020kbit prio 1
>tc class add dev eth2 parent 1:1 classid 1:6 htb rate 50kbit
>ceil 1020kbit prio 3
>tc class add dev eth2 parent 1:1 classid 1:7 htb rate 128kbit
>ceil 1020kbit prio 5
>tc class add dev eth2 parent 1:1 classid 1:10 htb rate 128kbit
>ceil 1020kbit prio 6
>tc class add dev eth2 parent 1:1 classid 1:15 htb rate 52kbit
>ceil 1020kbit prio 7
>
>tc qdisc add dev eth2 parent 1:5 handle 5:0 pfifo limit 10
>
>tc qdisc add dev eth2 parent 1:6 handle 6:0 pfifo limit 10
>
>tc qdisc add dev eth2 parent 1:7 handle 7:0 pfifo limit 10
>
>tc qdisc add dev eth2 parent 1:10 handle 10:0 pfifo limit 10
>
>tc qdisc add dev eth2 parent 1:15 handle 15:0 pfifo limit 10
>
>
>#SSH
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 22 0xffff flowid
>1:6
>
>#VPN
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 1723 0xffff flowid
>1:5
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x2f 0xff flowid 1:5
>
>#Contra
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x11 0xff match ip sport 27015 0xffff flowid
>1:7
>
>#FTP
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 21 0xffff flowid
>1:10
>tc filter add dev eth2 protocol ip parent 1:0 prio 1 u32
>match ip protocol 0x06 0xff match ip sport 20 0xffff flowid
>1:10
>
>
>1. Запустил закачку по FTP - скорость закачки максимальная.
>2. Зашел на сервер контры - скорость закачки стала прыгать в сторону
>уменьшения (тоесть более приоритетный трафик стал брать свое от канала)
>3. Все бы хорошо, но контре от этого не легче - латенси
>в игре переваливает за 1200
>
>Посмотрел статистику:
>
># tc -d -s class show dev eth2
>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>cburst 2874b/8 mpu 0b level 7
> Sent 3337578 bytes 3161 pkts (dropped 0, overlimits 0)
> rate 49769bit 46pps
> lended: 1610 borrowed: 0 giants: 0
> tokens: 7834 ctokens: 7834
>
>class htb 1:10 parent 1:1 leaf 10: prio 6 quantum 3200 rate
>128Kbit ceil 1020Kbit burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 3209874 bytes 2121 pkts (dropped 0, overlimits 0)
> rate 48351bit 31pps
> lended: 561 borrowed: 1560 giants: 0
> tokens: -74528 ctokens: 8758
>
>class htb 1:15 parent 1:1 leaf 15: prio 7 quantum 1300 rate
>52Kbit ceil 1020Kbit burst 1.625Kb/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 46493 bytes 62 pkts (dropped 0, overlimits 0)
> rate 190bit
> lended: 12 borrowed: 50 giants: 0
> tokens: 187660 ctokens: 17342
>
>class htb 1:5 parent 1:1 leaf 5: prio 1 quantum 8000 rate
>320Kbit ceil 1020Kbit burst 1999b/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 0 bytes 0 pkts (dropped 0, overlimits 0)
> lended: 0 borrowed: 0 giants: 0
> tokens: 40960 ctokens: 18472
>
>class htb 1:6 parent 1:1 leaf 6: prio 3 quantum 1250 rate
>50Kbit ceil 1020Kbit burst 1.625Kb/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 14472 bytes 172 pkts (dropped 0, overlimits 0)
> rate 348bit 4pps
> lended: 172 borrowed: 0 giants: 0
> tokens: 211550 ctokens: 18164
>
>class htb 1:7 parent 1:1 leaf 7: prio 5 quantum 3200 rate
>128Kbit ceil 1020Kbit burst 1759b/8 mpu 0b cburst 2874b/8 mpu 0b
>level 0
> Sent 66739 bytes 806 pkts (dropped 0, overlimits 0)
> rate 1048bit 11pps
> lended: 806 borrowed: 0 giants: 0
> tokens: 82740 ctokens: 17548
>
>Получается так что FTP может занимать неиспользуемую полосу, но если более приоритетные
>приложения начинают задействовать свою полосу - то полоса эта разгружается недостаточно
>быстро.

сдеай quantum у менее приоритетных классов в районе скажем 1500


"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 07-Апр-05 15:28 
да, кстати если это не поможет (хотя вс е вроде бы нормально), есть другой
способ сотворить такую же очередь, но без HTB

"Проблема с классификацией трафика в HTB"
Отправлено eddy , 07-Апр-05 17:01 
>да, кстати если это не поможет (хотя вс е вроде бы нормально),
>есть другой
>способ сотворить такую же очередь, но без HTB


Все так же не помогает. Приоритеты до лампочки.


"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 07-Апр-05 17:45 
>>да, кстати если это не поможет (хотя вс е вроде бы нормально),
>>есть другой
>>способ сотворить такую же очередь, но без HTB
>
>
>Все так же не помогает. Приоритеты до лампочки.

ну здесь уж ни чем не могу помочь, т.к. все сделано правильно.
при latency ядра в 10 ms все должно работать очень даже хорошо,
единственно на что могу грешить, так это на то, что CS работает по
UDP, который дрессировке не поддается практически никак. Хотя с другой
стороны у меня и UDP вполне нормально пашет.



"Проблема с классификацией трафика в HTB"
Отправлено nrvalex , 07-Апр-05 19:05 
>>2. вышли ка еще раз tc -d -s class sh dev eth2
>>с пиковой загрузкой

># tc -d -s class show dev eth2
>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>cburst 2874b/8 mpu 0b level 7
>Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
>rate 66973bit 61pps
^
Это пиковая загрузка ?

>1. Запустил закачку по FTP - скорость закачки максимальная.
и сколько в kbit?
>2. Зашел на сервер контры - скорость закачки стала прыгать в сторону
>уменьшения (тоесть более приоритетный трафик стал брать свое от канала)


"Проблема с классификацией трафика в HTB"
Отправлено eddy , 07-Апр-05 19:12 
>>>2. вышли ка еще раз tc -d -s class sh dev eth2
>>>с пиковой загрузкой
>
>># tc -d -s class show dev eth2
>>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>>cburst 2874b/8 mpu 0b level 7
>>Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
>>rate 66973bit 61pps
>^
>Это пиковая загрузка ?

да

>
>>1. Запустил закачку по FTP - скорость закачки максимальная.
> и сколько в kbit?

качал фаром он в КБ показывает  - в районе 100

>>2. Зашел на сервер контры - скорость закачки стала прыгать в сторону
>>уменьшения (тоесть более приоритетный трафик стал брать свое от канала)

скорость стала колебаться 45-80 КБ


"Проблема с классификацией трафика в HTB"
Отправлено nrvalex , 08-Апр-05 12:01 
>>>>2. вышли ка еще раз tc -d -s class sh dev eth2
>>>>с пиковой загрузкой
>>
>>># tc -d -s class show dev eth2
>>>class htb 1:1 root rate 1020Kbit ceil 1020Kbit burst 2874b/8 mpu 0b
>>>cburst 2874b/8 mpu 0b level 7
>>>Sent 13004701 bytes 10275 pkts (dropped 0, overlimits 0)
>>>rate 66973bit 61pps
>>^
>>Это пиковая загрузка ?
>
>да
>
>>
>>>1. Запустил закачку по FTP - скорость закачки максимальная.
>> и сколько в kbit?
>
>качал фаром он в КБ показывает  - в районе 100
>
>>>2. Зашел на сервер контры - скорость закачки стала прыгать в сторону
>>>уменьшения (тоесть более приоритетный трафик стал брать свое от канала)
>
>скорость стала колебаться 45-80 КБ

rate 66973bit   и 45-80 КБ  разница на порядок ?
кто врет far , htb ,tc ?


"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 08-Апр-05 10:29 
я кстати по прежнему не вижу ни одного отброшенного пакета,
даже при нагрузке. Это не есть правильно, HTB должен отбрасывать
пакеты.
Чтобы выяснить почему такое происходит, нужно включать отладку
(готовь место на диске).

"Проблема с классификацией трафика в HTB"
Отправлено eddy , 08-Апр-05 10:46 
>я кстати по прежнему не вижу ни одного отброшенного пакета,
>даже при нагрузке. Это не есть правильно, HTB должен отбрасывать
>пакеты.
>Чтобы выяснить почему такое происходит, нужно включать отладку
>(готовь место на диске).


как ее включить?


"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 08-Апр-05 11:25 
tc qdisc add htb ... debug 3333333


"Проблема с классификацией трафика в HTB"
Отправлено eddy , 08-Апр-05 12:30 
>tc qdisc add htb ... debug 3333333


а ему можно какнить сказать куда кидать логи? А то у меня фиртуальная ФС - места мало - зато в /mnt/fd есть место


"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 08-Апр-05 15:37 
>>tc qdisc add htb ... debug 3333333
>
>
>а ему можно какнить сказать куда кидать логи? А то у меня
>фиртуальная ФС - места мало - зато в /mnt/fd есть место
>

vi /etc/syslog.conf
----
kern.*   /path/to/log/file
----
kill -HUP `pgrep syslogd`


"Проблема с классификацией трафика в HTB"
Отправлено Z0termaNN , 07-Апр-05 22:24 
>>да, кстати если это не поможет (хотя вс е вроде бы нормально),
>>есть другой
>>способ сотворить такую же очередь, но без HTB
>
>
>Все так же не помогает. Приоритеты до лампочки.

вот здесь я не понял какие такие приоритеты ?


"Проблема с классификацией трафика в HTB"
Отправлено eddy , 08-Апр-05 08:44 
>>>да, кстати если это не поможет (хотя вс е вроде бы нормально),
>>>есть другой
>>>способ сотворить такую же очередь, но без HTB
>>
>>
>>Все так же не помогает. Приоритеты до лампочки.
>
>вот здесь я не понял какие такие приоритеты ?


у классов прописаны еще и приоритеты - prio
у FTP, например, приоритет один из самых низких - prio 6