• 每块网卡都有一个出口“根队列规定”,缺省情况
下是前面提到的pfifo_fast队列规定。
• 每个队列规定都指定一个句柄,以便以后的配置
语句能够引用这个队列规定。除了出口队列规定
之外,每块网卡还有一个入口,以便policies进入的
数据流。
• 队列规定的句柄有两个部分:
– 一个主号码和一个次号码。习惯上把根队列规定称为
“1:”,等价于“1:0”。队列规定的次号码永远是0。
– 类的主号码必须与它们父辈的主号码一致。
一 。实验SFQ:
• tc qdisc add dev eth0 handle 1: root sfq
• qdisc sfq 1: dev eth0 limit 128p quantum 1514b
•
删除
tc qdisc del dev eth0 root
tc qdisc add dev eth0
handle 1: 句柄号
root 策略安置位置 算法
sfq
qdisc sfq 1: dev eth0
limit 128p 队列等待包数
quantum 1514b 每次传输一个队列中一个数据单元长度
• PS:就是一个队列传输几个字节后,就传输下一个队列中数据。如此反复。
通过 举例子理解tbf限速
• 电影院出票,票进桶,人员在桶中去票,看戏。控制人员量,桶可以积累一定票,以迎接迸发。但票不能超出桶限制。
• tc qdisc add dev eth0 root tbf rate 512kbit burst 100000 latency 1s
• tc qdisc add dev eth0 root tbf
发放令牌速率 rate 512kbit
突发上限制 burst 100000
在队列中最大延迟时间 latency 1s
限制队列中等待的字节 limit
• tc qd add dev eth0 root tbf rate 1mbit burst 500k limit 10k
测试
• 生成有一个大文件
• 开启ftp
• 客户端下载这个文件
二。PRIO 实验
实验拓扑图:
• eth0
• prio 1:0
• tbf tbf tbf
10k 10M 2M
下面是实现此拓扑图的实验执行脚本
#!/bin/bash
ETH=eth1
tc qd del dev $ETH root
# 这里把所有数据流量导入3号队列
tc qd add dev $ETH root handle 1:0 prio priomap 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
通过令牌限制速度
tc qd add dev $ETH parent 1:1 handle 10:0 tbf rate 20kbit burst 10k limit 10k
tc qd add dev $ETH parent 1:2 handle 20:0 tbf rate 10mbit burst 10k limit 10k
tc qd add dev $ETH parent 1:3 handle 30:0 tbf rate 2mbit burst 10k limit 10k
根据端口号进行过滤
tc fi add dev $ETH parent 1:0 protocol ip prio 1001 u32 match ip sport 22 0xffff flowid 1:1
tc fi add dev $ETH parent 1:0 protocol ip prio 1010 u32 match ip sport 80 0xffff flowid 1:2
• 测试:
• 1、ssh
• 2、wget
• wget http://AIP/file 观察速率指示
•
三。HTB实验
• eth0
htb策略 1:0 qd>default 14
• + + + +
• 1:11 1:12 1:13 1:14
• 20k 10m 5m 2m (个队列限制的速度)
• sfq sfq sfq sfq (策略)
• 22 80 25 other(要过滤的端口号)
#!/bin/bash
ETH=eth1
tc qd del dev $ETH root
tc qd add dev $ETH root handle 1:0 htb default 14
tc cl add dev $ETH parent 1:0 classid 1:1 htb rate 20mbit burst 500k
tc cl add dev $ETH parent 1:1 classid 1:11 htb rate 20kbit burst 10k ceil 10mbit
tc cl add dev $ETH parent 1:1 classid 1:12 htb rate 10mbit burst 10k ceil 20mbit
tc cl add dev $ETH parent 1:1 classid 1:13 htb rate 5mbit burst 10k ceil 20mbit
tc cl add dev $ETH parent 1:1 classid 1:14 htb rate 2mbit burst 10k ceil 8mbit
tc qd add dev $ETH parent 1:11 handle 10:0 sfq
tc qd add dev $ETH parent 1:12 handle 20:0 sfq
tc qd add dev $ETH parent 1:13 handle 30:0 sfq
tc qd add dev $ETH parent 1:14 handle 40:0 sfq
tc fi add dev $ETH parent 1:0 protocol ip prio 100 u32 match ip sport 22 0xffff flowid 1:11
tc fi add dev $ETH parent 1:0 protocol ip prio 200 u32 match ip sport 80 0xffff flowid 1:12
tc fi add dev $ETH parent 1:0 protocol ip prio 300 u32 match ip sport 25 0xffff flowid 1:13
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21996817/viewspace-610432/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/21996817/viewspace-610432/