流量控制实验

 •  每块网卡都有一个出口“根队列规定”,缺省情况
   下是前面提到的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://A­IP/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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值