Есть шлюз. На нем применяются правила от tc. Задача порезать входящую скорость одного IP в инет
Дано:
eth1 - inet
eth0 - локалка (на это интерфейс еще повешен br0, т.к. юзаются vlan)
Ну и куча вланов.
Изучив iptasbles сделал вывод, что трафик вылавливается для шейпенга таким путем
iptables -t mangle -A POSTROUTING -o vlan1 -j CLASSIFY --set-class 1:40
iptables -t mangle -A FORWARD -i vlan1 -o eth1 -j CLASSIFY --set-class 1:40Прикол в том, что стоит мне добавить класс, так он применяется для всех и режет исходящую и так же резко падает входящая.
tc class add dev eth1 parent 1:1 classid 1:60 htb rate 200Kbit ceil 4024Kbit prio 5Даже не надо добавлять это
tc qdisc add dev eth1 parent 1:60 handle 60: sfq perturb 10Ниже выводы class и qdisc для обоих интерфейсов
Показать
eth1
Показать
class htb 1:10 parent 1:1 leaf 10: prio 0 rate 4000Kbit ceil 100000Kbit burst 20Kb cburst 1600b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 640000 ctokens: 2000
class htb 1:1 root rate 100000Kbit ceil 100000Kbit burst 20462b cburst 1600b
Sent 424828706908 bytes 2130711178 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 179987235 borrowed: 0 giants: 0
tokens: 25481 ctokens: 1888
class htb 1:20 parent 1:1 leaf 20: prio 0 rate 3000Kbit ceil 80000Kbit burst 20Kb cburst 1600b
Sent 215329299962 bytes 1023052308 pkt (dropped 20116, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 973766428 borrowed: 48177225 giants: 0
tokens: 851078 ctokens: 2415
class htb 1:30 parent 1:1 leaf 30: prio 0 rate 2000Kbit ceil 40000Kbit burst 20Kb cburst 1600b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 1280000 ctokens: 5000
class htb 1:40 parent 1:1 leaf 40: prio 0 rate 1000Kbit ceil 20000Kbit burst 20Kb cburst 1600b
Sent 198708789224 bytes 1071296072 pkt (dropped 9229, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 962747738 borrowed: 107896942 giants: 0
tokens: 2548875 ctokens: 9443
class htb 1:50 parent 1:1 leaf 50: prio 0 rate 100000bit ceil 1000Mbit burst 2560b cburst 1375b
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 3200000 ctokens: 187
[/console]
Показать
qdisc htb 1: root refcnt 9 r2q 10 default 60 direct_packets_stat 2958310475
Sent 1983477535618 bytes 856515552 pkt (dropped 579389, overlimits 127443941 requeues 1847932)
backlog 0b 0p requeues 1847932
qdisc sfq 10: parent 1:10 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 20: parent 1:20 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec
Sent 215329299962 bytes 1023052308 pkt (dropped 47639, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 30: parent 1:30 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 40: parent 1:40 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec
Sent 198708841683 bytes 1071296474 pkt (dropped 14075, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
qdisc sfq 50: parent 1:50 limit 127p quantum 1514b depth 127 divisor 1024 perturb 10sec
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
[/console]
eth0
Показать
class mq :1 root
Sent 26796624518894 bytes 2970071866 pkt (dropped 0, overlimits 0 requeues 1036783)
backlog 0b 0p requeues 1036783
class mq :2 root
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
class mq :3 root
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
class mq :4 root
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
class mq :5 root
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
class mq :6 root
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
class mq :7 root
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
class mq :8 root
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
backlog 0b 0p requeues 0
[/console]
Показать
qdisc mq 0: root
Sent 26796840563994 bytes 2970276149 pkt (dropped 0, overlimits 0 requeues 1036785)
backlog 0b 0p requeues 1036785
[/console]