Re: Подсчет трафика (+ шейпинг)
Artem Chuprina wrote:
N> Из своего опыта: если есть внешний канал - то он шейпится,
Ой, не, это уже более изощренно, чем мне нужно. Чтоб шейпить, надо
иметь четкое представление, что и зачем.
Можно сделать, для профилактики, просто - по ip: 4 + 3х255 строчек на сеть.
Правила tc.conf:
#!/bin/bash
#..................................................шапка:
tc qdisc add dev eth0 root handle 1: htb default 9991
tc class add dev eth0 parent 1: classid 1:9999 htb rate 1mbps burst 150k
tc class add dev eth0 parent 1:9999 classid 1:9991 htb rate 64kbps ceil
128kbps burst 150k
tc qdisc add dev eth0 parent 1:9991 handle 9991: sfq perturb 10
#..................................................и для каждого из ip:
tc class add dev eth0 parent 1:9999 classid 1:1 htb rate 256kbps ceil
512kbps burst 300k
tc class add dev eth0 parent 1:9999 classid 1:255 htb rate 256kbps ceil
512kbps burst 300k
tc qdisc add dev eth0 parent 1:1 handle 1: sfq perturb 10
tc qdisc add dev eth0 parent 1:255 handle 255: sfq perturb 10
tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip src
x.xx.xx.1 flowid 1:1
tc filter add dev eth0 parent 1: protocol ip prio 1 u32 match ip src
xx.xx.xx.255 flowid 1:255
Основная часть скрипта генерится 3мя командами:
(вы это знаете, но может кому пригодится)
for i in `seq 1 255`; do echo "tc class add dev eth0 parent 1:9999
classid 1:"$i" htb rate 256kbps ceil 512kbps burst 300k" >> tc.conf; done;
for i in `seq 1 255`; do echo "tc qdisc add dev eth0 parent 1:"$i"
handle "$i": sfq perturb 10" >> tc.conf; done;
for i in `seq 1 255`; do echo "tc filter add dev eth0 parent 1: protocol
ip prio 1 u32 match ip src xx.xx.xx."$i" flowid 1:"$i >> tc.conf; done;
Посмотреть что получилось (и статистику) tc_show.sh:
#!/bin/bash
tc -s -d qdisc show dev eth0
tc -s -d class show dev eth0
tc -s -d filter show dev eth0
--
Sincerely,
Nicholas
Reply to: