路由器三层队列机制

    各种队列从三个方向进行研究:

①队列是否支持分类,

②队列丢弃机制

③队列的调度机制

④配置方法


1、FIFO

    默认情况下路由器的三层接口队列有两种,一种是FIFO一种是Fair-Queen,当带宽大于等于2.048Mbps,就是FIFO。小于则为Fair-Queen

①、FIFO不支持分类

②、默认执行尾丢弃

③、先来的数据包先被转发

④、Cisco路由器没有配置FIFO队列的专用命令,要使用FIFO-Queen可使用接口级别命令no Fair-Queen,接口级别模式下使用Hold-Queen 100 in|out 修改FIFO入站和出站队列大小


2、PQ

    该队列定义了四个子队列,优先级从高到底分别为High、Medium、Normal、Low

①、PQ支持分类

②、默认执行尾丢弃

③、当高优先级队列中有流量时,总是先转发高优先级队列中的数据,直到高优先级队列没有流量转发是,才可以为低优先级的队列转发流量

④、在这里我们定义如下五种流量,应用在FastEthernet0/0接口上

1、Telnet加入High队列

2、ICMP加入Low队列

3、从Fastethernet0/1进入的流量加入Medium

4、IP流量加入Normal队列

5、No-IP流量加入Low


配置如下:

    access-list 100 permit icmp any any    

    priority-list 10 protocol ip high tcp telnet

    priority-list 10 protocol ip low list 100

    priority-list 10 interface FastEthernet0/1 medium

    priority-list 10 protocol ip normal

    priority-list 10 default low            //(没有匹配到的流量都会被default匹配)

Interface FastEthernet0/0

    priority-queen 10

验证:

R1#debug priority 

R1#ping 12.1.1.2 


Type escape sequence to abort.

Sending 5, 100-byte ICMP Echos to 12.1.1.2, timeout is 2 seconds:

!!!!!

Success rate is 100 percent (5/5), round-trip min/avg/max = 20/30/52 ms

R1#

*Mar  1 00:12:47.699: PQ: FastEthernet0/0: ip (s=12.1.1.1, d=12.1.1.2) -> low

修改队列缓冲大小接口级别命令:priority-list 10 queue-limit 10 20 30 40(High:10、Medium:20、Normal:30、low:40)


3、CQ

CQ定义了17个队列,分别为0-16,0号队列称为超级优先队列,只有将该队列中的流量转发完毕才会转发接下来的16个队列,默认情况下该队列中的流量是一些系统流量,例如链路之间交互的keeplive报文,队列1-16是一中轮询机制,该机制默认从1号队列开始转发1500byte(1500-2999)  ,再到第2个队列转发1500,一直到转发到16号队列后,再回到1号队列进行重复如上行为

①、CQ支持分类

②、默认执行尾丢弃

③、一种轮询的转发机制(0号队列除外)

④、配置如下

1、VoIP加入1队列

2、ICMP加入2队列

3、从Fastethernet0/1进入的流量加入3

4、IP流量加入4队列

5、No-IP流量加入5

    access-list 100 permit icmp any any

    queue-list 10 protocol ip 1 udp 16384(使用queue-list 10列表抓取udp端口号为16384的流量,并放入队列1)

    queue-list 10 protocol ip 2 list 100

    queue-list 10 interface FastEthernet0/1 3

    queue-list 10 protocol ip 4

    queue-list 10 default 5

R1(config)#queue-list 1 queue 1 byte-count 100(设置每次转发的流量,单位为byte,默认为1500)

R1(config)#queue-list 1 queue 1 limit 10(设置每个队列的大小,默认为都为20)

假设有这样的需求,要求队列1成为超级优先队列,该如何解决

R1(config)#queue-list 10 lowest-custom 1 (轮询从2号队列开始,0号队列和1号队列将会成为超级优先队列)

r1(config-if)#custom-queue-list 10(应用于接口)


4、WFQ