Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 1 -
QUALITY
OF
SERVICE
CONFIGURATION
GUIDE
作者 红头发(CCIE#15101)
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 2 -
Module 1
- Packet Classification
Pt.1 End-to-End QoS Models
QoS Models Overview
Cisco IOS软件支持的 3种 QoS模型:
1.尽力而为(best-effort)服务模型.
2.集成(integrated)服务模型.
3.差分(differentiated)服务模型.
Best-Effort Service
尽力而为服务模型是在不保证可靠性,传输延迟和吞吐量的情况下进行数据的传输.比如 FIFO队列机制.
Integrated Service
集成服务模型是可以容纳多种 QoS 需求的多服务模型.这种模型里的应用程序在它发送数据之前先要向网
络请求特定的服务.这个请求是由信令产生的.应用程序告诉网络它自己的流量原型,带宽和延迟的需求.当
从网络得到确认之后,应用程序才开始进行数据的发送.比如资源预留
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
(RSVP).
Differentiated Service
差分服务模型是可以满足不同QoS需求的多服务模型.和集成服务模型不同的是,这种模型的应用程序不需
要信令机制就可以发送数据.比如 CAR.
Pt.2 IP Precedence
IP Precedence Overview
IP优先级可以定义 IP数据包的服务类别(CoS).IP优先级占用了 IP数据包中 ToS字段的 3个位.IP优先
级的分类方式通常应用在网络的边界或管理域里.
IP优先级的值和对应的名字:
值 名字
0 routine
1 priority
2 immediate
3 flash
4 flash-override
5 critical
6 internet
7 network
其中 6(internet)和 7(network)保留.
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 3 -
Pt.3 Committed Access Rate
CAR Overview
CAR可以通过限速来做策略和分类.比如通过 IP优先级对数据包进行分类.在配置CAR之前,先要在接口下
启用 CEF.
CAR 通常使用在网络边界路由器的接口上,用来限制进入或离开该网络的流量速率.每个接口可以配置多个
CAR 策略,当数据包进入使用了多个策略的接口时,路由器将检查每个策略,直到数据包和某个策略相匹配;
如果没有找到匹配的策略,默认操作是转发该数据包.
Restrictions
1.CAR只能对 IP流量限速.
2.CAR不支持快速以太网信道(Fast EtherChannel).
3.CAR不支持隧道接口.
4.CAR不支持 ISDN PRI接口.
Configuring CAR
配置 CAR:
Aiko(config-if)#rate-limit {input|output} {CIR Bc Be} conform-action {action}
exceed-action {action}
一些动作选项:
命令 含义
continue 继续执行下一条 CAR语句
drop 丢弃该数据包
set-prec-continue {precedence} 设置 IP优先级并继续执行下一条 CAR语句
set-prec-trasnmit {precedence} 设置 IP优先级并转发该数据包
set-dscp-continue {dscp} 设置 IP DSCP值并继续执行下一条 CAR语句
set-dscp-trasnmit {dscp} 设置 IP DSCP值并转发该数据包
set-qos-continue {group ID} 设置 QoS组 ID并继续执行下一条 CAR语句
set-qos-transmit {group ID} 设置 QoS组 ID并发送该数据包
transmit 转发该数据包
Configuring CAR Policies
设置 CAR的策略的步骤如下:
1.定义限速 ACL.可选:
Aiko(config)#access-list rate-limit {ACL} {precedence|mac-address}
2.针对每个类别的流量设置 CAR 限速策略,可以调用 ACL,也可以调用限速 ACL,还可以基于 IP DSCP 值
进行限速:
Aiko(config-if)#rate-limit {input|output} [dscp dscp] access-group [rate-limit] {ACL} {CIR
Bc Be} conform-action {action} exceed-action {action}
Case 1
对 IP优先级为 3的出站流量进行限速:
!
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 4 -
interface Serial1
ip address 10.0.0.1 255.255.255.252
rate-limit output access-group rate-limit 1 20000000 24000 32000 conform-action transmit
exceed-action drop
!
access-list rate-limit 1 3
!
Case 2
对 IP DSCP值为 1的出站流量进行限速:
!
interface Serial1
ip address 10.0.0.1 255.255.255.252
rate-limit output dscp 1 20000000 24000 32000 conform-action transmit exceed-action drop
!
对匹配 192.168.0.0/24的出站流量进行限速:
!
interface Serial1
ip address 10.0.0.1 255.255.255.252
rate-limit output access-group 1 20000000 24000 32000 conform-action transmit
exceed-action drop
!
access-list 1 permit 192.168.0.0 0.0.0.255
!
Monitoring CAR
一些辅助性的命令:
1.查看限速 ACL:
Aiko#show access-lists rate-limit [ACL]
2.查看接口的限速信息:
Aiko#show interfaces [interface] rate-limit
Pt.4 Class-Based Packet Marking
IP Precedence and IP DSCP Marking
IP优先级占用了 ToS字段的 3个位(即有 8个值);而 IP DSCP占用了 ToS字段的 6个位(即有 64个值).
因此后者相当于前者的扩展,但是不能同时设置这两种值,如果同时设置了这两种值,那么只有 IP DSCP 的
值生效.
CoS Value Marking
CoS 是基于层 2 的标记方式,可以设置 8 个值对帧进行分类,路由器能够识别帧头部中的 CoS 值并对数据
包进行分类.
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 5 -
QoS Group Value Marking
还可以把组 ID 和数据包进行关联,这种分类方式只能对进站的数据包进行分类,而不能对出站的数据包进
行分类.可以设置 100个组 ID.
Configuring Class-Based Packet Marking
配置基于分类的数据包标记的步骤如下:
1.定义 class map:
Aiko(config)#class-map [match-all|match-any] {map-name}
2.定义匹配语句:
Aiko(config-cmap)#{condition}
一些条件选项:
命令 含义
match access-group {ACL} 匹配 IP ACL
match protocol {protocol} 匹配协议
match input-interface {interface} 匹配进站接口
match qos-group {Group ID} 匹配组 ID
match destination-address {mac mac-address} 匹配目标MAC地址
match source-address {mac mac-address} 匹配源MAC地址
match ip {dscp dscp} 匹配 IP DSCP值
match ip {precedence precedence} 匹配 IP优先级
match class-map {map-name} 匹配 class map
match vlan {vlan-id} 匹配 VLAN
3.设置 policy map:
Aiko(config)#policy-map {policy-name}
4.调用 class map:
Aiko(config-pmap)#class {class-map}
5.设置标记:
Aiko(config-pmap-c)#{action}
一些用于标记的动作选项:
命令 含义
set ip {precedence precedence} 设置 IP优先级
set ip {dscp dscp} 设置 IP DSCP值
set qos-group {Group ID} 设置组 ID
set cos {cos} 设置 CoS值
Case 3
把来自 192.168.10.0/24 的出站 telnet流量的 IP优先级设置为 5,其他的出站流量的 IP优先级设置为
1:
!
access-list 133 permit tcp 192.168.10.0 0.0.0.255 any eq telnet
!
class-map match-all telnet
match access-group 133
!
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 6 -
policy-map Aiko
class telnet
set ip precedence 3
class class-default
set ip precedence 1
!
interface Serial1
ip address 10.0.0.1 255.255.255.252
service-policy output Aiko
!
Verifying the Class-Based Packet Marking Feature
一些辅助性的命令:
1.查看 policy map:
Aiko#show policy-map [policy-name]
2.查看接口的 policy map信息:
Aiko#show policy-map interface [interface]
Pt.5 Network-Based Application Recognition
NBAR Overview
基于网络的应用程序识别(NBAR)可以对使用动态分配 TCP/UDP 端口号的应用程序和 HTTP 流量等进行
分类.在使用 NBAR的时候要先启用 CEF特性.
数据包描述语言模块(PDLM)从路由器的闪存里加载,用于在不使用新的 Cisco IOS 软件,或重启路由器的
情况下对新的协议或应用程序进行识别.
Restrictions
NBAR不能在以下几种逻辑接口上使用:
1.快速以太网信道.
2.使用了隧道或加密技术的接口.
3.SVI.
4.拨号接口.
5.多链路 PPP(MLP).
NBAR的一些限制:
1.不支持多于 24个的并发 URL,HOST或MINE的匹配类型.
2.不支持超过 400字节的 URL匹配.
3.不支持非 IP流量.
4.不支持组播或其他非 CEF的交换模式.
5.不支持被分片的数据包.
6.不支持源自或去往运行 NBAR的路由器的 IP流量.
Configuring Network-Based Application Recognition
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 7 -
配置 NBAR的基本步骤:
1.启用 CEF特性:
Aiko(config)#ip cef
2.把流量分类,定义 class map:
Aiko(config)#class-map [match-all|match-any] {map-name}
3.定义 NBAR要匹配的协议:
Aiko(config-cmap)#match protocol {protocol}
4.设置 policy map:
Aiko(config)#policy-map {policy-name}
5.调用 class map:
Aiko(config-pmap)#class {class-map}
6.设置策略:
Aiko(config-pmap-c)#{action}
7.把策略应用在接口上:
Aiko(config-if)#service-policy {input|output} {policy-map}
Case 4
用 NBAR识别 BitTorrent程序流量:
1.加载 bittorrent.pdlm到路由器闪存里:
Aiko(config)#ip nbar pdlm flash://bittorrent.pdlm
2.定义 class map,识别 BitTorrent程序流量,并对进站的 BitTorrent程序流量做出丢弃策略:
!
ip cef
!
class-map bittorrent
match protocol bittorrent
!
policy-map drop-bittorrent
class bittorrent
drop
!
interface Serial0
ip address 192.168.0.1 255.255.255.0
service-policy input drop-bittorrent
!
Case 5
用 NBAR对进站的 HTTP流量下载进行限速,速率为 100kbps,下载的图象格式包括 jpg,jpeg和 gif:
!
ip cef
!
class-map match-all HTTP
match procotol http url "*.jpeg|*.jpg"
match procotol http url "*.gif"
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 8 -
!
policy-map Aiko
class HTTP
police 100000 conform-action transmit exceed-action drop
!
interface Serial0
ip address 10.0.0.1 255.255.255.252
service-policy input Aiko
!
Case 6
用 NBAR来防止红色代码(Code Red)和尼姆达(Nimda)蠕虫病毒:
!
ip cef
!
class-map match-all DENY-ATTACK
match protocol http url "*.ida*"
match protocol http url "*cmd.exe*"
match protocol http url "*root.exe*"
match protocol http url "*readme.eml*"
!
policy-map Aiko
class DENY-ATTACK
drop
!
interface Serial0
ip address 10.0.0.1 255.255.255.252
service-policy input Aiko
!
Verifying Traffic Policy Configuration
一些辅助性的命令:
1.查看流量分类信息:
Aiko#show class-map [map-name]
2.查看 policy map:
Aiko#show policy-map [policy-name]
3.查看接口的 policy map信息:
Aiko#show policy-map interface [interface]
4.显示 NBAR所使用的 PDLM:
Aiko#show ip nbar pdlm
5.显示 NBAR使用的协议到端口号的映射信息:
Aiko#show ip nbar port-map
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 9 -
Module 2
- Congestion Management
Pt.1 Congestion Management Overview
Queueing Overview
常见的几种队列机制:
1.先进先出(FIFO)队列.
2.加权公平队列(WFQ).
3.基于分类的加权公平队列(CBWFQ).
4.自定义队列(CQ).
5.优先级队列(PQ).
注意,一个接口只能使用一种队列机制.
Pt.2 FIFO Queueing
FIFO Queueing Overview
FIFO 队列机制不提供优先级和流量分类的特性.并且只有一个队列,所有的数据包被公平的对待.数据包按
抵达接口的先后顺序被转发出去.当没有使用其他的队列机制时,除了传输速率大于 2.048Mbps 的串行接
口以外的所有接口,默认都使用这种队列机制.
Pt.3 Weighted Fair Queueing
WFQ Overview
WFQ是一种对网络中所有流量提供公平的带宽分配的动态调度方式.WFQ根据权重,优先级来鉴别流量,把
它加入到某个队列里,并决定队列之间的带宽分配.WFQ 采用基于流的算法,该算法把交互式的流量同时调
度到队列的最前端来减少响应时间,并公平的分配剩余的带宽.当拥塞信息产生的时候,高带宽的数据流的信
息将被丢弃;而低带宽的数据流的信息仍然被加到队列中.WFQ是传输速率低于2.048Mbps的串行接口默
认的队列机制.帧中继(FR)的 DE位,FECN位,和 BECN位将影响WFQ权重的分配.
Restrictions
WFQ的一些限制:
1.WFQ不支持隧道或采用了加密技术的接口,因为这些技术要修改数据包中WFQ用于分类的信息.
2.WFQ提供的带宽控制的精确度不如 CBWFQ和 CQ等队列机制.
Bandwidth Allocation
对于 IP 优先级高的队列,WFQ 会分配更多的带宽给它.WFQ 还给每个数据流分配权重,来决定这些队列的
转发顺序.权重低的优先被转发.Cisco IOS软件把 IP优先级做为除数,得到的值就是权重.
WFQ对每个队列的带宽分配的方式,由权重来决定,而权重又取决于 IP优先级.公式为:
每个队列的带宽分配百分比=(该队列 IP优先级+1)/(所有队列的 IP优先级+1)
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 10 -
RSVP使用WFQ来分配缓冲区空间和对数据包进行调度,并保证了对数据流带宽的保留.RSVP是 IP网络
中唯一的提供端到端的信令
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
的协议.
Configuring WFQ
接口下启用WFQ:
Aiko(config-if)#fair-queue
Monitoring Fair Queueing
一些辅助性的命令:
1.显示公平队列的配置状态:
Aiko#show queueing fair
2.显示接口的队列信息:
Aiko#show queue [interface]
Pt.4 Class-Based Weighted Fair Queueing
CBWFQ Overview
CBWFQ 是 WFQ 的扩展,根据用户自己定义的类别把数据包进行分类,再加到某个队列中去.当每个队列中
数据包的数目达到上限的时候,队列将采用尾丢弃(tail drop)的方式将这些数据包丢弃;或者根据每个类的
策略,进行数据包的丢弃.
CBWFQ 一般采用尾丢弃的机制,除非定义了采用加权早期随机检测(WRED)来对超过上限的数据包进行
丢弃.注意,如果你打算为一个或多个队列采用 WRED 而不是采用尾丢弃的方式来进行数据包的丢弃,必须
保证应用了服务策略的接口没有配置WRED.
如果在 policy map中是通过 bandwidth命令来定义默认的分类,没有划分分类的流量将被划分到单独的
采用 FIFO机制的队列中;如果在 policy map中是通过 fair-queue命令来定义默认的分类,没有划分类的
流量将以尽力而为的方式被处理;如果没有定义默认的分类,那么所有流量将被以尽力而为的方式被处理.
并且数据流的方式是基于WFQ的.
Bandwidth Allocation
CBWFQ 中带宽分配的总和不能超过接口带宽的 75%,剩余 25%的带宽用于别的负载,比如路由协议的流
量和尽力而为的流量.
RSVP也可以和 CBWFQ协同工作.当一个接口同时配置了 CBWFQ和 RSVP,它们之间的工作是独立的.并
且当 CBWFQ不存在的时候 RSVP还是会继续工作.
Restrictions
CBWFQ的一些限制:
1.目前流量和整形不支持 CBWFQ.
2.CBWFQ不支持以太网子接口.
Configuring CBWFQ
配置 CBWFQ的 3个过程:
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 11 -
1.定义分类的策略,即 class map.
2.设置策略,即定义 policy map.
3.把 policy map应用在相关接口上.
定义 class map步骤如下:
1.定义 class map:
Aiko(config)#class-map [match-all|match-any] {map-name}
2.定义匹配语句:
Aiko(config-cmap)#{condition}
一些条件选项:
命令 含义
match access-group {ACL} 匹配 IP ACL
match protocol {protocol} 匹配协议
match input-interface {interface} 匹配进站接口
match qos-group {Group ID} 匹配组 ID
match destination-address {mac mac-address} 匹配目标MAC地址
match source-address {mac mac-address} 匹配源MAC地址
match ip {dscp dscp} 匹配 IP DSCP值
match ip {precedence precedence} 匹配 IP优先级
match class-map {map-name} 匹配 class map
match vlan {vlan-id} 匹配 VLAN
定义分类的策略,即 policy map的步骤如下:
1.设置 policy map:
Aiko(config)#policy-map {policy-name}
2.调用 class map或默认的 class map(所有未分类的流量默认都属于该分类,否则未分类的流量将以尽力
而为的方式被处理):
Aiko(config-pmap)#class {class-map|class-default}
3.设置策略:
Aiko(config-pmap-c)#bandwidth {kbps|percent percent}
4.定义尾丢弃机制允许的队列中数据包个数的上限,默认值为 64:
Aiko(config-pmap-c)#queue-limit {packets}
在出站接口上应用 policy map:
Aiko(config-if)#service-policy output {policy-name}
Case 1
限制源自 192.168.10.0/24的流量的带宽为 1000kbps:
!
class-map match-all aiko
match access-group 1
!
policy-map Nara
class aiko
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 12 -
bandwidth 1000
queue-limit 30
class class-default
!
interface Serial1
ip address 172.16.10.1 255.255.255.252
service-policy output Nara
!
access-list 1 permit 192.168.10.0 0.0.0.255
!
Configuring the Bandwidth Limiting Factor
更改用于 RSVP和 CBWFQ等队列机制保留的最大带宽值,默认为 75%:
Aiko(config-if)#max-reserved-bandwidth {percent}
Verifying Configuration of Policy Maps and Their Classes
一些辅助性的命令:
1.查看 policy map信息:
Aiko#show policy-map [policy-name]
2.查看接口的 policy map信息:
Aiko#show policy-map interface [interface]
3.显示接口的队列信息:
Aiko#show queue [interface]
Pt.5 IP RTP Priority
IP RTP Priority Overview
IP实时传输协议(RTP)优先级对延迟比较敏感的数据流,比如语音数据,提供了优先级队列机制的特性.该特
性
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示如果某些数据包存在于优先级队列中,它们的出列顺序将优先于别的队列中的数据包.IP RTP优先级
特性无需知道语音呼叫的端口号,它提供了鉴别数据流的端口号范围的能力.并且可以定义整个用于语音数
据流的端口范围,UDP 端口号 16384 到 32767,来保证所有的语音数据流都可以得到优先级服务.IP RTP
优先级特性对带宽低于 1.544Mbps的链路尤为有用.
IP RTP优先级特性可以和使用了WFQ或 CBWFQ的出站接口结合使用.匹配 IP RTP优先级某个端口范
围的数据包将优先于别的 CBWFQ分类.
一般语音数据包的体积较小,如果有体积较大的数据包要从该接口被转发出去,该接口应配置链路分片和交
叉(LFI)特性.体积较大的数据包被分片为体积较小的数据包.该特性防止语音数据包要等待到体积较大的
数据包被转发完毕之后才能被转发,这样语音数据包可以和被分片的数据包交叉被转发出去,从而减少了语
音数据包转发消耗的时间.
Configuring IP RTP Priority
配置 IP RTP优先级:
Aiko(config-if)#ip rtp priority {starting-rtp-port-number port-number-range} {bandwidth}
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 13 -
Monitoring and Maintaining IP RTP Priority
一些辅助性的命令:
1.显示接口队列信息:
Aiko#show queue [interface]
2.调试优先级队列:
Aiko#debug priority
Pt.6 Low Latency Queueing
LLQ Overview
低延迟队列(LLQ)把优先级队列的特性加入到了CBWFQ中,这点和 IP RTP优先级特性类似.如果没有LLQ,
对于一些实时的数据流量,比如语音数据流量,CBWFQ 对于每个定义好的分类的操作是基于 WFQ 的.采用
了 LLQ之后,该分类的操作将优先于别的分类.LLQ减少了语音会话的抖动.LLQ和 IP RTP优先级特性的区
别在于,它不受 UDP端口号的限制.
Configuring LLQ
配置 LLQ:
Aiko(config-pmap-c)#priority {bandwidth}
Monitoring and Maintaining LLQ
一些辅助性的命令:
1.显示接口队列信息:
Aiko#show queue [interface]
2.调试优先级队列:
Aiko#debug priority
Pt.7 Custom Queueing
CQ Overview
自定义队列(CQ)可以自定义 16 个队列,为每个队列定义一定字节数的数据包,这些被定义好的数据包采用
轮循的方式被转发.当接口启用了CQ之后,队列0为系统队列,系统队列为优先级最高的队列,当系统队列中
的数据包全部被转发完毕之后,接下来才会轮到自定义队列(队列 1到 16).自定义队列中的数据包也按照队
列号顺序被转发,当队列为空或超出本次队列允许发送的数据包时,接下来会轮到下一个队列.
Determining Byte Count Values for Queues
为了能够为每个队列分配一定的带宽,必须为每个队列定义一定字节数的数据包.自定义队列中的数据包也
按照队列号顺序被转发,当队列为空或超出本次队列允许发送的数据包时,接下来会轮到下一个队列.但是假
如定义的字节数为 100字节,而某个数据包的大小为 1024字节,那么该队列每次将转发的数据包的大小即
为 1024字节,而不是 100字节.
假如有 3个队列,每个队列中的数据包大小分别为 500字节,300字节和 200字节,如果想让这 3个队列平
均的占用带宽,为这 3个队列定义的字节数分别为 200字节,200字节和 200字节,但是实际上生效的带宽
占用比为 5/3/2.因此如果把队列中数据包的字节数定义的过小的话,将导致带宽分配的不尽如人意.但是如
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 14 -
果把队列中数据包的字节数定义的过大,那么将导致下一个队列中的数据包被转发的等待时间过长.
Restrictions
CQ的一些限制:
1.由于 CQ是静态配置的,因此它不能适应网络结构的改变.
2.由于数据包要经过处理器卡的分类,因此 CQ对数据包转发的速度要比 FIFO慢.
Configuring CQ
配置 CQ的步骤如下:
1.定义 CQ列表:
Aiko(config-if)#custom-queue-list {list}
2.定义队列中数据包的字节数或最大个数,默认为 20个.可选:
Aiko(config)#queue-list {list} queue {queue-number} {limit number|byte-count bytes}
3.把数据包分配进特定的 CQ中,可以基于协议或基于进站接口:
Aiko(config)#queue-list {list} {protocol protocol|interface interface} {queue-number}
4.定义默认的 CQ队列,未分类的流量默认被分配进该队列:
Aiko(config)#queue-list {list} default {queue-number}
Monitoring CQ Lists
一些辅助性的命令:
1.显示接口队列信息:
Aiko#show queue [interface]
2.显示 CQ列表信息:
Aiko#show queueing custom
Pt.8 Priority Queueing
PQ Overview
优先级队列(PQ)通过为队列指定优先级,根据优先级对队列中的数据包进行转发.当优先级最高的队列为空
时,接下来对优先级次高的队列进行处理.
4个优先级类别:
1.high.
2.medium.
3.normal.
4.low.
未指定优先级的数据包默认属于 normal队列.
Restrictions
PQ的一些限制:
1.由于 PQ是静态配置的,因此它不能适应网络结构的改变.
2.由于数据包要经过处理器卡的分类,因此 PQ对数据包转发的速度要比 FIFO慢.
3.PQ不支持隧道接口.
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 15 -
Configuring PQ
配置 PQ的步骤如下:
1.定义优先级列表,可以基于协议或基于进站接口:
Aiko(config)#priority-list {list} {protocol protocol|interface interface} {queue-number}
{high|medium|normal|low}
2.定义默认的优先级队列,未分类的流量默认被分配进该队列,优先级为 normal:
Aiko(config)#priority-list {list} default {high|medium|normal|low}
3.定义每个队列中数据包的最大个数,由高到低,默认为 20,40,60和 80.可选:
Aiko(config)# priority-list {list} queue-limit {high-limit medium-limit normal-limit low-limit}
4.把优先级列表应用在接口上:
Aiko(config-if)#priority-group {list}
Monitoring PQ Lists
一些辅助性的命令:
1.显示接口队列信息:
Aiko#show queue [interface]
2.显示 PQ列表信息:
Aiko#show queueing priority
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 16 -
Module 3
- Congestion Avoidance
Pt.1 Weighted Random Early Detection
WRED Overview
默认当接口的输出队列满的时候,将执行尾丢弃的行为.WRED 用于避免网络带宽瓶颈所带来的拥塞.IP 优
先级控制WRED对数据包丢弃的策略.在发生拥塞的时候优先级低的将优先被丢弃,并且一般性的数据流中
的数据包将优先于 RSVP数据流中的数据包被丢弃.WRED把非 IP数据流的 IP优先级设置为 0,因此非 IP
数据包被丢弃的可能性最高.
WRED常常用于骨干路由器,边缘路由器为数据包分配 IP优先级,当这些数据包进入网络的时候,WRED使
用 IP优先级来对不同分类的数据流进行区别对待.
Restrictions
WRED不能配置在使用了基于路由交换处理器(RSP)的 CQ,PQ和WFQ队列机制的接口上.
Configuring WRED
配置WRED的步骤如下:
1.启用WRED:
Aiko(config-if)#random-detect
2.设置WRED丢弃数据包的最小值,最大值和丢弃数据包的轮循间隔:
Aiko(config-if)#random-detect precedence {precedence|rsvp} {min max mark}
Configuring DiffServ Compliant WRED
配置和差分服务模型兼容的WRED的步骤如下:
1.使用 IP DSCP来配置WRED:
Aiko(config-if)#random-detect dscp-based
2.设置丢弃数据包的最小值,最大值和丢弃数据包的轮循间隔:
Aiko(config-if)#random-detect dscp {dscp} {min max mark}
Monitoring WRED
一些辅助性的命令:
1.显示接口队列信息:
Aiko#show queue [interface]
2.显示WRED信息:
Aiko#show queueing random-detect
Pt.2 Flow-Based Weighted Random Early Detection
Flow-Based WRED Overview
基于流的 WRED 相比 WRED,它可以防止单一的数据流独占接口全部的缓冲区,保证了丢弃数据包的公平
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 17 -
性.
Configuring Flow-Based WRED
在配置基于流的WRED之前,必须先启用WRED.步骤如下:
1.启用基于流的WRED:
Aiko(config-if)#random-detect flow
2.设置平均深度因素(average depth factor)的值,值必须为 2的幂,默认值为 4.可选:
Aiko(config-if)#random-detect flow average-depth-factor {scaling-factor}
3.设置基于流的WRED的数据流数目,默认值为 256.可选:
Aiko(config-if)#random-detect flow count {number}
Monitoring Flow-Based WRED
一些辅助性的命令:
1.显示接口队列信息:
Aiko#show queue [interface]
2.显示WRED信息:
Aiko#show queueing random-detect
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 18 -
Module 4
- Policing and Shaping
Pt.1 Traffic Policing
Traffic Policing Overview
流量策略使用令牌桶(Token Bucket)算法控制接口接收或发送的流量的最大速率,并且根据不同的优先级
或 CoS对网络进行分区.流量策略通常使用在网络边缘路由器的接口上,比如 CAR的限速特性.
Token Bucket
令牌桶是传输速率的正式定义.它有 3个组件:
1.平均速率(CIR).
2.突发流量(Bc).
3.时间间隔(Tc).
3个组件的换算公式为:
CIR=Bc/Tc
Configuring Traffic Policing
配置流量策略:
Aiko(config-pmap-c)#police {CIR Bc Be} conform-action {action} exceed-action {action}
[violate-action {action}]
一些动作选项:
命令 含义
continue 继续执行下一条 CAR语句
drop 丢弃该数据包
set-prec-continue {precedence} 设置 IP优先级并继续执行下一条 CAR语句
set-prec-trasnmit {precedence} 设置 IP优先级并转发该数据包
set-dscp-continue {dscp} 设置 IP DSCP值并继续执行下一条 CAR语句
set-dscp-trasnmit {dscp} 设置 IP DSCP值并转发该数据包
set-qos-continue {group ID} 设置 QoS组 ID并继续执行下一条 CAR语句
set-qos-transmit {group ID} 设置 QoS组 ID并发送该数据包
transmit 转发该数据包
Case 1
限制来自 192.168.0.0/24 的进站数据包的平均速率为 8000bps,突发流量(Bc)为 2000 字节,额外突发
流量(Be)为 4000字节.对突发流量和额外突发流量分别采取转发和设置 QoS组 ID为 25的策略;对违反
突发流量和额外突发流量的数据流量采取丢弃的策略:
!
class-map match-all Aiko
match access-group 1
!
policy-map Qoooooo
Written by Asuqa a.k.a RedHair Http://www.91Lab.com
- 19 -
class Aiko
police 8000 2000 4000 conform-action transmit exceed-action set-qos-transmit 25
violate-action drop
!
interface Serial1
ip address 172.16.0.1 255.255.255.252
service-policy input Qoooooo
!
access-list 1 permit 192.168.0.0 0.0.0.255
!