Надоели юзвери в попытках положить канал торрентами...
Захотелось придумать решение на основе шейпера под линукс.
Решение: дать ICMP, www, smtp наибольший приоритет, а оставшимся портам всё остальное.
Условно, канал 100 мегабит
Путём ковыряния документации вышло следющее:
eth0 - внешний интерфейс
eth1 - внутренний интерфейс
зы: ессно между ними нат.
# clean shaper
tc filter del dev eth1 parent 1: prio 1
tc qdisc del dev eth1 root handle 1: htb
tc filter del dev eth0 parent 1: prio 1
tc qdisc del dev eth0 root handle 1: htb
# install shaper
# download rules
tc qdisc add dev eth1 root handle 1: htb default 20
tc class add dev eth1 parent 1: classid 1:1 htb rate 100mbit
tc class add dev eth1 parent 1:1 classid 1:20 htb rate 50mbit prio 2
tc class add dev eth1 parent 1:1 classid 1:30 htb rate 100mbit prio 1
tc qdisc add dev eth1 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth1 parent 1:30 handle 30: sfq perturb 10
# ssh, www, smtp
tc filter add dev eth1 parent 1:0 protocol ip prio 10 u32 match ip sport 22 0xffff flowid 1:30
tc filter add dev eth1 parent 1:0 protocol ip prio 10 u32 match ip sport 25 0xffff flowid 1:30
tc filter add dev eth1 parent 1:0 protocol ip prio 10 u32 match ip sport 80 0xffff flowid 1:30
# ICMP
tc filter add dev eth1 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:30
# upload rules
tc qdisc add dev eth0 root handle 1: htb default 20
tc class add dev eth0 parent 1: classid 1:1 htb rate 100mbit
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 50mbit prio 2
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 100mbit prio 1
tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 10
tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 10
# ssh, www, smtp
tc filter add dev eth0 parent 1:0 protocol ip prio 10 u32 match ip dport 22 0xffff flowid 1:30
tc filter add dev eth0 parent 1:0 protocol ip prio 10 u32 match ip dport 25 0xffff flowid 1:30
tc filter add dev eth0 parent 1:0 protocol ip prio 10 u32 match ip dport 80 0xffff flowid 1:30
# ICMP
tc filter add dev eth0 parent 1:0 protocol ip prio 10 u32 match ip protocol 1 0xff flowid 1:30
Для того чтоб дополнительно ограничить по скорости некоторых клиентов - я маркирую их в iptables и обрабатываю в шейпере по примеру подобного:
# download
tc class add dev eth1 parent 1: classid 1:100 htb rate 1024kbit burst 12k
tc filter add dev eth1 protocol ip parent 1:0 prio 1 handle 100 fw flowid 1:100
tc qdisc add dev eth1 parent 1:100 handle 100: sfq perturb 10
# upload
tc class add dev eth0 parent 1: classid 1:100 htb rate 1024kbit burst 12k
tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 100 fw flowid 1:100
tc qdisc add dev eth0 parent 1:100 handle 100: sfq perturb 10
Так вот, ограничение по скорости коиентов - работает на ура.
Но канал по приоритетам не делится... может я где не прав?
Ответ на:
комментарий
от dimon555
Ответ на:
комментарий
от Nao
Ответ на:
комментарий
от Nao
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Шейпинг трафика Vlan (2014)
- Форум tc htb + хэш таблицы (2018)
- Форум [на рецензию] Traffic Control (TC) (2011)
- Форум Оптимизация шейпера, не выходит повесить хэш таблицы на исходящую скорость... (2014)
- Форум HTB+samba (2007)
- Форум Приоритезация и динамический шейпинг SRR (2009)
- Форум tc шейпер (2012)
- Форум Настройка QoS, приоритезация трафика. (2013)
- Форум Linux шейпер (2011)
- Форум htb - разграничение трафика (2005)