Ох и намучено с этими классами ))
Короче есть три корефана я Миша и Рома.
Исходящая полоса 512Кбит делится:
я: 384
Рома: 64
Миша: 64
с возможностью заимствования в случае, когда полоса свободна.
Я это пока набросал вот так:
# установка корневой HTB
tc qdisc add dev $DEV root handle 1: htb default 2
# ограничить общую исходящую скорость величиной $UPLINK -- это предотвратит
# появление огромных очередей в DSL модеме,
# которые отрицательно сказываются на величине задержки:
tc class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit burst 6k
#распределим классы, их полосы и приоритеты
#мой траффик
tc class add dev $DEV parent 1:1 classid 1:2 htb rate ${MY_UP}kbit ceil ${MY_CEIL}kbit prio 1 #это сколько я могу отхавать от интерфейса
tc class add dev $DEV parent 1:2 classid 1:20 htb rate $[3*$MY_UP/10]kbit ceil ${MY_CEIL}kbit #а это уже отхавывает от того, что я могу отхавать от инте
tc class add dev $DEV parent 1:2 classid 1:21 htb rate $[2*$MY_UP/10]kbit ceil ${MY_CEIL}kbit #то-же, но немного меньший приоритет и скорость
#траффик роутера хавает от моей части(1:2)
tc class add dev $DEV parent 1:2 classid 1:22 htb rate $[3*$MY_UP/10]kbit ceil ${MY_CEIL}kbit #а это уже отхавывает от того, что я могу отхавать от интер
tc class add dev $DEV parent 1:2 classid 1:23 htb rate $[2*$MY_UP/10]kbit ceil ${MY_CEIL}kbit #то-же, но немного меньший приоритет и скорость
#Миша
tc class add dev $DEV parent 1:1 classid 1:3 htb rate ${MIXA_UP}kbit ceil ${MIXA_CEIL}kbit prio 2 #это сколько можно отхавать от интерфейса
tc class add dev $DEV parent 1:3 classid 1:30 htb rate $[6*$MIXA_UP/10]kbit ceil ${MIXA_CEIL}kbit #а это уже отхавывает от того, что можно отхавать от ин
tc class add dev $DEV parent 1:3 classid 1:31 htb rate $[4*$MIXA_UP/10]kbit ceil ${MIXA_CEIL}kbit #то-же, но немного меньший приоритет и скорость
#Рома
tc class add dev $DEV parent 1:1 classid 1:4 htb rate ${ROMA_UP}kbit ceil ${ROMA_CEIL}kbit prio 3 #это сколько можно отхавать от интерфейса
tc class add dev $DEV parent 1:4 classid 1:40 htb rate $[6*$ROMA_UP/10]kbit ceil ${ROMA_CEIL}kbit #а это уже отхавывает от того, что можно отхавать от ин
tc class add dev $DEV parent 1:4 classid 1:41 htb rate $[4*$ROMA_UP/10]kbit ceil ${ROMA_CEIL}kbit #то-же, но немного меньший приоритет и скорость
#далее назначим краевым классам безклассовую дисциплину Stochastic Fairness
#эти дисциплины получают новые хэндлы 20:0 21:0 22:0 23:0 ....
#мои с роутером классы
tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev $DEV parent 1:21 handle 21: sfq perturb 10
tc qdisc add dev $DEV parent 1:22 handle 22: sfq perturb 10
tc qdisc add dev $DEV parent 1:23 handle 23: sfq perturb 10
#Мишины
tc qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10
tc qdisc add dev $DEV parent 1:31 handle 31: sfq perturb 10
#Ромины
tc qdisc add dev $DEV parent 1:40 handle 40: sfq perturb 10
tc qdisc add dev $DEV parent 1:41 handle 41: sfq perturb 10
#а вот теперь самое главное. Нужно разлечить где я, где Миша, а где Рома
#разбором и маркировкой занимается iptables тут мы ловим метки и направляем их нужным классам
tc filter add dev $DEV parent 1:1 protocol ip prio 1 handle 122 fw classid 1:22
tc filter add dev $DEV parent 1:1 protocol ip prio 1 handle 120 fw classid 1:20
tc filter add dev $DEV parent 1:1 protocol ip prio 1 handle 130 fw classid 1:30
tc filter add dev $DEV parent 1:1 protocol ip prio 1 handle 140 fw classid 1:40
iptables маркирует пакеты сразу т.е. по 2 критериям saddr такой-то порт назначения такой-то.
Это позволяет однозначно определить к какой дисциплине относится пакет. Но я сомневаюсь можно ли сразу из 1:1 направить пакет в 1:22, перепрыгнув через класс 1:2
Или мне следует закрепить фильтр не за классом 1:1, а за каждым из классов 1:2 1:3 1:4.
Не могу понять толком одну вещь: если у класса-парента нет фильтра, означает ли это, что пакт продвинется по его чилдренам? А вот чилдренам можно было-бы прилепить фильтра и они бы задерживали пакеты..
Или можно прыгать через голову?
У меня фильтра именно это и пытаются сделать, однако я не уверен, что это работает. Как проследить процесс классификации пакета вообще?
В iptables есть счётчики и я могу видеть что происходит, а тут всё мутно как-то так!
Ответ на:
комментарий
от dx
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум [tc][htb] два варианта реализации, но ни один не работает так, как нужно (2011)
- Форум опять IMQ + TC (2007)
- Форум Вопрос по HTB, ESFQ... (2006)
- Форум HTB+samba (2007)
- Форум шейпер tc, фильтр для Ifb (2013)
- Форум TC, HTB, ESFQ: вопрос по приоритетам (2006)
- Форум Оптимизация шейпера, не выходит повесить хэш таблицы на исходящую скорость... (2014)
- Форум смысл команд (2006)
- Форум Работа с шейпером в linux (2009)
- Форум Помогите с HTB (2004)