本文档说明当使用模块化服务质量命令行界面(MQC)命令为出站路由器接口配置服务策略时,路由协议消息(如hello和数据库描述符)以及其他重要控制流量如何排队。
具体而言,本文档将回顾Cisco IOS®路由器用于确定控制数据包优先级的这两种机制:
字段 | 位置 | 考虑优先级 |
---|---|---|
IP优先级位 | IP报头中的服务类型(TOS)字节 | 通过网络提供优先级 |
pak_priority | 路由器内部由接口驱动程序分配的数据包标签 | 通过路由器提供优先级(每跳) |
设计了两个机制来确保出局接口被堵塞时,关键控制数据包没有丢失,也没有被路由器和排队系统最后丢下。
本文档没有任何特定的要求。
本文档中的信息基于Cisco IOS软件版本12.2。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
请求注解(RFC)791 定义IP数据包报头中的TOS字节。虽然RFC 2474 和RFC 2475 将此字节重定义为差分服务代码点(DSCP)值,但Cisco IOS路由器仍使用TOS字节的原始IP优先位,如RFC 791所述。请注意RFC如何定义TOS字节:
“服务类型提供所需服务质量抽象参数的指示。这些参数用于指导在通过特定网络传输数据报时选择实际服务参数。多个网络提供服务优先级,这会以某种方式将高优先级流量视为比其他流量更重要(通常在高负载时只接受高于特定优先级的流量)。”
如图所示,IP优先级字段占用TOS字节的三个最高位。只有三个IP优先级位反映了数据包的优先级或重要性,而不是TOS字节的完整值。
下表列出了优先位的值:
编号 | 比特值 | 名称 |
---|---|---|
0 | 000 | 例程 |
1 | 001 | 优先级 |
2 | 010 | 立即 |
3 | 011 | Flash |
4 | 100 | 闪烁覆盖 |
5 | 101 | 批评/ECP |
6 | 110 | 网间控制 |
7 | 111 | 网络控制 |
Cisco IOS为控制平面上的路由协议数据包分配IP优先级6。如RFC 791所述,“网际网络控制标识仅供网关控制发起方使用。” 具体而言,Cisco IOS会标记以下基于IP的控制数据包:开放最短路径优先(OSPF)、路由信息协议(RIP)、增强型内部网关路由协议(EIGRP)hello和keepalive。进出路由器的Telnet数据包也收到IP优先级值6。当输出接口将数据包传输到网络时,分配的值仍随数据包一起保留。
虽然IP优先级值指定了数据报在通过网络传输时的处理,但pak优先级机制指定了数据包在路由器内部传输时的处理。
除路由器CPU的核心外,每个接口还使用网络控制器或本地CPU,该CPU运行称为驱动程序的特殊软件。驱动程序代码提供特定于接口的说明。
当接口驱动程序接收到数据包时,该接口驱动程序将该数据包从小的先进先出(FIFO)缓冲器复制到输入/输出(I/O)存储器中的数据缓冲器。然后,它会将小数据包报头附加到缓冲区。数据包报头(在Cisco IOS术语中称为数据包结构)包含有关缓冲区中数据块的关键信息。根据数据包的内容,数据包报头可以指向内存中的地址,其中以太网封装报头、互联网协议(IP)报头和传输控制协议(TCP)报头开始。
Cisco IOS软件使用数据包报头中的字段来控制接口队列中数据包的处理。数据包报头包括pak_priority标志,该标志指示标记的数据包对排队系统的相对重要性。
在路由器核心CPU上运行的RIP和OSPF路由进程会标记其源于IP优先级6和pak优先级的所有流量。相反,边界网关协议(BGP)指示TCP使用IP优先级6标记其流量,但不设置pak_priority。
Cisco IOS还必须确保几类非IP控制数据包的丢包率较低。这些数据包类型包括:
中间系统到中间系统(IS-IS)路由协议消息
增强型内部网关路由协议(EIGRP)消息
点对点协议(PPP)和高级数据链路控制(HDLC)保持连接在串行接口和SONET分组(POS)接口上
ATM接口上的操作、管理和维护(OAM)信元和地址解析协议(ARP)消息
由于此类流量不是IP,因此Cisco IOS无法匹配IP优先级值以提供优先级。相反,它仅使用数据包缓冲区报头中的内部pak_priority值。
注意:Cisco Catalyst 6000/Cisco 7600系列最初仅支持FlexWAN上的pak_priority机制。随后实施了对IP和非IP控制数据包优先级的增强。
Cisco 7500路由/交换处理器(RSP)和低端路由器(如Cisco 7200和3600系列)等路由器使用与Cisco 7500通用接口处理器(VIP)不同的路由和控制流量机制。 下表总结了两种方法,并假设使用MQC配置的服务策略应用于出站接口。
Platform | pak_priority消息的队列 |
---|---|
Cisco 7500系列(具有分布式QoS和VIP) |
|
基于RSP的QoS和其他平台,包括Cisco 7200、3600、2600系列 |
|
换句话说,在Cisco 7500系列上,如果输出服务策略连接到接口,则数据包会根据该策略中的类进行分类,而pakpriority数据包会放置在所选类队列的末尾。如果pak_priority数据包与任何用户定义的类都不匹配,则它将被置于class-default队列的尾部。
注意:使用优先级队列和自定义队列等传统排队方法或使用默认接口FIFO队列,非RSP路由器将pak_priority消息输入到队列头,以确保最小延迟和最小丢弃概率。
如数据包优先级标记和队列表中所述,Cisco 7200、3600和2600系列等思科路由器平台将pakpriority消息放入单独的队列集,而不是类默认队列集。
接口上有三组队列:
2^n一组基于流的队列,这些队列将报头值视为源IP地址和目的IP地址。实际队列数取决于接口或虚电路的带宽。请参阅《Cisco IOS命令参考》中对fair-queue命令的说明。
用于用户创建的类的队列。
根据链路类型的哈希值访问的队列。例如,公平排队系统根据源地址和目的地址及端口、TOS位和IP协议号的哈希值将IP微流分类为队列。帧中继本地管理接口(LMI)消息根据幻数的哈希值排队,该哈希值表示该消息为LMI。带有pak_priority标志的消息将进入这些单独的链路类型队列。
下表列出了带宽大于512 Kbps的接口的各种队列及其会话ID(如show policy-map interface或show queue命令的输出所示)。
会话/队列编号 | 通信类型 |
---|---|
1 - 256 | 基于流的一般流量队列。与用户创建的类不匹配的流量与类默认值和一个基于流的队列匹配。 |
257 - 263 | 为思科发现协议和标有内部高优先级标志的数据包保留。 |
264 | 为优先级类(用 priority 命令配置的类)保留的队列。 在 show policy-map interface 输出中查找类的“Strict Priority”值。优先级队列使用的会话ID等于动态队列数加8。 |
265 及以上版本 | 用于用户创建的类的队列。 |
注:此表中的值取决于实施,并且可能会更改。
中间系统到中间系统(IS-IS)路由控制数据包是有关排队和数据包优先级的特殊情况。
IS-IS是国际标准化组织(ISO)的无连接网络协议(CLNP)的路由协议。 CLNP的开发人员将TCP/IP视为开放系统互联(OSI)套件最终将取代的临时协议套件。为支持此预测过渡,集成IS-IS(或双IS-IS)作为IS-IS的扩展而创建,以提供能够路由无连接模式网络服务(CLNS)和IP的单一路由协议。该协议设计为在纯CLNS环境、纯IP环境或双CLNS/IP环境中运行。
即使IS-IS仅用于路由TCP/IP,IS-IS仍是ISO CLNP协议。IS-IS与其对等体通信的数据包是CLNS协议数据单元(PDU),这反过来意味着,即使在仅IP环境中,排队系统和Cisco IOS也不能使用IP优先级来排定CLNS控制消息的优先级。相反,IS-IS数据包通过路由器内部的pak_priority机制接收优先级。
本节将考虑设计排队策略的三种常用方法,特别是在Cisco 7500系列和VIP的严重拥塞条件下,将控制数据包丢弃的可能性降至最低。(请回想一下,默认情况下,非RSP平台将控制数据包放在单独的队列中。)
战略 | 适用场合 | 如何配置的说明 |
---|---|---|
匹配到单独的队列。 | 最保守的策略。确保几乎不丢弃。 | 使用模块化QoS CLI配置单独的类,并使用bandwidth命令在拥塞期间为匹配流量分配最小带宽分配。使用bandwidth命令配置的类使用基于带宽而非IP优先级的调度“权重”。请参阅了解ATM上基于类的加权公平队列。 |
与具有公平队列的class-default匹配。 | 足以支持大多数配置。某些控制数据包在出现拥塞时会被丢弃。 | 使用Cisco IOS自动分配给数据包的IP优先级6来影响数据包的权重,从而影响其带宽份额。请参阅了解ATM上的加权公平队列。 |
与具有FIFO队列的class-default匹配。 | 不建议用于拥塞链路。某些控制数据包在出现拥塞时会被丢弃。 | 此方法不考虑IP优先级。使用基于VIP的QoS时,pak_priority消息将排入FIFO队列的尾端。 |
这是如何为RIP控制数据包创建单独队列的示例。
class-map match-all rp match access-group 104 ! access-list 104 permit udp any eq rip any eq rip !--- Create a class-map that matches an ACL permitting RIP. ! policy-map bandwidth class voip priority 64 class bus bandwidth 184 class RP bandwidth 8 !--- Create a policy-map (named "bandwidth") and specify !--- class RP. ! interface Serial1/0:0.1 point-to-point bandwidth 256 ip unnumbered Loopback0 ip accounting precedence input no cdp enable frame-relay class sample frame-relay interface-dlci 100 IETF !--- Apply the map-class named "sample" to the PVC. ! map-class frame-relay sample frame-relay cir 256000 frame-relay bc 2560 frame-relay mincir 256000 no frame-relay adaptive-shaping service-policy output bandwidth frame-relay fragment 160 !--- Create a frame relay map-class and apply the service !--- policy inside the map-class.
选择以下方法之一时,请考虑以下因素:
用于Hello和数据库刷新的特定路由协议以及配置的计时器值
需要交换的数据库的大小以及是否只定期刷新更新/更改或完整表
接口或虚电路上预期的拥塞量
换句话说,考虑拥塞时实际排队高优先级数据包的可能性。
路由器生成的流量代表出站QoS服务策略的特殊情况。某些本地生成的流量必须被视为任何其他用户流量,并且QoS系统必须将配置的QoS机制应用于此流量。此类流量的一个示例是性能探测,其设计用于测量给定类的数据包所产生的行为。其他本地生成的流量(尤其是第2层Keepalive和路由协议消息)对路由器的基本功能至关重要,不能受某些QoS功能的限制。例如,当平均队列深度达到高水位时,加权随机早期检测(WRED)不能丢弃第2层保活
此外,必须谨慎处理发往路由器的数据包。例如,请记住,应用基于类的策略的服务策略不得应用于发往路由器的数据包,以避免丢弃重要的控制消息。
注意: 根据设计,RP生成的数据包不会计入模块化QoS CLI计数器,即使这些数据包已正确分类/排队。这些数据包未在show policy-map interface命令输出中列出。
下表列出了当前发往路由器和来自路由器的数据包与关键QoS功能交互的方式。
QoS功能 | 描述 |
---|---|
基于类的标记 |
|
管制 |
|
当您在Supervisor和Catalyst 6000中的多层交换功能卡(MSFC)上运行Cisco IOS时,RP会以IP优先级6标记路由控制数据包。此重新标记的值可与输出调度一起将路由控制数据包映射到高队列、高阈值的加权轮询(WRR)系统。只要使用mls qos命令全局启用QoS,MSFC源的路由控制数据包的这种映射就会自动发生。如果启用QoS,系统会设置所有队列参数,如WRED丢弃阈值、WRR带宽和队列限制。在全局禁用QoS的情况下,所有数据包都映射到WRR的低队列(输出调度的低阈值)。
如Catalyst 6000配置指南的配置QoS一章所述,QoS支持在以太网入口端口使用第2层服务类(CoS)值进行分类、标记、调度和拥塞避免。以太网入口端口的分类、标记、调度和拥塞避免不使用或设置第3层IP优先级或DSCP值。此外,对于任何交换引擎,QoS都支持以太网出口端口调度和拥塞避免(使用第2层CoS值)。因此,关键IP和非IP数据包必须映射到CoS值,即使这些值仅在内部用作数据总线报头的一部分。关键IP数据包的IP优先级值为6,映射到等效的CoS值6。关键非IP数据包(包括来自MSFC的IS-IS数据包)标有pak_priority标志,然后此类标记的数据包映射到CoS值6。此映射在当前Cisco IOS版本中自动发生。
入口监察器和出口监察器都不会标记由MSFC发往通过物理以太网接口传输的数据包。
Catalyst 6000上的QoS配置不在本文档的范围内。有关详细信息,请参阅配置QoS和Catalyst LAN和ATM交换机支持页。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
15-Feb-2008 |
初始版本 |