ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 流量控制实验

流量控制实验

原创 Linux操作系统 作者:眼镜男 时间:2009-07-25 18:09:22 0 删除 编辑

 •  每块网卡都有一个出口“根队列规定”,缺省情况
   下是前面提到的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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 流量控制
下一篇: 高级安全1
请登录后发表评论 登录
全部评论

注册时间:2009-06-28

  • 博文量
    30
  • 访问量
    31700