本文档介绍如何在Cisco 12000系列互联网路由器上配置Cisco IOS®软件拥塞管理和拥塞避免功能。
阅读本文档后,您必须能够:
了解为什么在核心网络中配置修改的差额轮询(MDRR)和加权随机早期检测(WRED)非常重要。
了解Cisco 12000系列中MDRR和WRED的基础实施。
使用传统服务类别(CoS)语法和模块化QoS CLI(MQC)配置MDRR和WRED。
本文档的读者应掌握以下这些主题的相关知识:
熟悉Cisco 12000系列互联网路由器架构。
特别是,对排队架构和以下术语的了解:
ToFab(面向交换矩阵) — 描述入站线卡上的接收端队列。
FrFab(从交换矩阵) — 描述出站线卡上的传输端队列。
注意:还建议您查看如何读取show controller frfab的输出 | Cisco 12000系列Internet路由器上的tofab queue命令。
本文档中的信息基于以下软件和硬件版本:
所有思12000平台,包括12008、12012、12016、12404、12406、12410和12416。
思科IOS软件版本12.0(24)S1。
注意:虽然本文档中的配置已在Cisco IOS软件版本12.0(24)S1上测试,但可以使用任何支持Cisco 12000系列Internet路由器的Cisco IOS软件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
排队方法定义分组调度机制或分组出队到接口以在物理线路上传输的顺序。根据调度程序函数为队列提供服务的顺序和次数,排队方法还支持最小带宽保证和低延迟。
必须确保数据包调度机制支持实施该机制的交换架构。加权公平队列(WFQ)是公认的调度算法,用于在采用基于总线架构的思科路由器平台上进行资源分配。但是,Cisco 12000系列Internet路由器不支持它。传统Cisco IOS软件优先级队列和自定义队列也不受支持。相反,Cisco 12000系列使用一种特殊形式的队列,称为“修改差额轮询”(MDRR),它提供相对带宽保证和低延迟队列。MDRR的M表示“修改”;与没有优先级队列的DRR相比,它会添加优先级队列。有关MDRR的详细信息,请参阅MDRR概述部分。
此外,Cisco 12000系列支持加权随机早期检测(WRED)作为MDRR队列内的丢弃策略。此拥塞避免机制提供了默认尾部丢弃机制的替代方案。通过控制丢包可以避免拥塞。
拥塞避免和管理机制(如WRED和MDRR)对于相对低速出站接口(如信道化线卡(LC))的FrFab队列尤其重要。 高速交换矩阵向信道组发送数据包的速度比信道组传输数据包的速度快得多。由于队列/缓冲区在物理端口级别进行管理,因此一个信道上的背压可能影响该端口上的所有其他信道。因此,通过WRED/MDRR管理背压非常重要,这限制了背压对相关通道的影响。有关如何管理出站接口超订用的详细信息,请参阅排除Cisco 12000系列互联网路由器上忽略的数据包和无内存丢包的故障。
本节概述修改差额轮询(MDRR)。
将MDRR配置为排队策略后,非空队列将以轮询方式依次服务。每次服务队列时,都会出列固定数量的数据。然后,算法会为下一个队列提供服务。当队列服务时,MDRR会跟踪出列的数据字节数超过配置值。在下一步中,当队列再次服务时,将会出列较少的数据,以补偿以前服务的过多数据。因此,每个队列出列的平均数据量将接近配置的值。此外,MDRR维护优先队列,该队列以优先级为基础提供服务。本节将更详细地介绍MDRR。
MDRR中的每个队列由两个变量定义:
量子值 — 这是每轮服务的平均字节数。
赤字计数器 — 用于跟踪队列在每轮传输的字节数。初始化为量子值。
只要赤字计数器大于零,队列中的数据包就可用。处理完一个数据包就会降低递减计数器的数值,降低的量等于数据包的字节长度。当递减计数器变为零或负值后,就不再处理该队列。在每一次新轮中,每个非空队列的赤字计数器的量子值增加。
注意:通常,队列的量子大小不得小于接口的最大传输单位(MTU)。这可确保调度程序始终为来自每个非空队列的至少一个数据包提供服务。
每个MDRR队列可以被赋予相对权重,组中的一个队列被定义为优先级队列。当接口拥塞时,权重为每个队列分配相对带宽。如果队列中有要发送的数据,MDRR算法会以轮询方式从每个队列中出列数据。
如果所有常规MDRR队列都包含数据,则按如下方式处理:
0-1-2-3-4-5-6-0-1-2-3-4-5-6...
在每个周期中,队列可以根据其配置的权重将量排队。在引擎0和引擎2线卡上,值1等于为接口赋予其MTU的权重。对于大于1的每个增量,队列的权重都会增加512字节。例如,如果特定接口的MTU为4470,而队列的权重配置为3,则每次通过旋转时,4470 +(3-1)*512 = 5494字节都允许出列。如果使用两个普通DRR队列(Q0和Q1),则Q0的权重为1,而Q1的权重为9。如果两个队列都拥塞,则每次循环时,Q0都可以发送4470字节,Q1可以发送[4470 +(9-1)*512] = 8566字节。这将产生流向Q0的流量,其带宽约为1/3,流向Q1的流量约为2/3。
注:用于计算MDRR带宽分配的标准解队公式是D = MTU +(weight-1)*512。在Cisco IOS软件版本12.0(21)S/ST之前的版本中,引擎4线卡使用了不同的解队公式。为了配置MDRR权重以分配正确的带宽,请确保您运行的Cisco IOS软件版本高于12.0(21)S/ST。
注:引擎4+线卡的量子公式为(对于toFab方向,此公式对FrFab无效)Quantum = BaseWeight + {BaseWeight *(QueueWeight - 1)* 512} / MTU。BaseWeight由以下公式获得:基本重量= {(MTU + 512 - 1)/ 512} + 5
注意: 所有计算均四舍五入;即忽略所有小数。
注:要了解特定引擎线卡是否支持MDRR,请参阅按引擎类型划分的MDRR支持。
Cisco 12000系列支持MDRR内的优先级队列(PQ)。此队列提供IP语音(VoIP)等对时间敏感的流量所需的低延迟和低抖动。
如上所述,Cisco 12000系列不支持加权公平队列(WFQ)。 因此,MDRR内部的PQ的运行方式不同于其他平台可用的Cisco IOS软件低延迟队列(LLQ)功能。
主要区别在于如何配置MDRR调度程序以在以下两种模式下之一为PQ提供服务,如表1所示:
表1 — 如何配置MDRR调度程序以在两种模式下为PQ提供服务备用模式 | 严格优先级模式 | |
---|---|---|
优势 | 在此,PQ在其他队列之间提供服务。换句话说,MDRR调度程序可以为PQ和任何其他配置的队列提供服务。 | 此处,PQ在非空时提供服务。这为匹配流量提供了尽可能低的延迟。 |
缺点 | 与严格优先级模式相比,此模式可能会引入抖动和延迟。 | 此模式可能会使其他队列无法运行,尤其是当匹配的流是主动发送方时。 |
备用模式对抖动和延迟的控制较少。如果MDRR调度程序开始为来自数据队列的MTU大小的帧提供服务,然后语音数据包到达PQ,则处于备用模式的调度程序将完全为非优先级队列提供服务,直到其赤字计数器达到零。在此期间,PQ不会得到服务,VoIP数据包会延迟。
相反,在严格优先级模式下,调度程序仅为当前非优先级数据包提供服务,然后切换到PQ。只有在PQ完全空后,调度程序才开始为非优先级队列提供服务。
请注意,在备用优先级模式下的优先级队列在一个周期中多次得到服务,因此比具有相同额定权重的其他队列占用的带宽更多。定义了多少个队列的函数还有多少。例如,对于三个队列,低延迟队列的服务频率是其他队列的两倍,并且它每个周期发送两倍的权重。如果定义了八个队列,则低延迟队列的服务频率将提高七倍,有效权重将提高七倍。因此,队列可以占用的带宽与每轮循环服务的频率有关,这又取决于整体定义的队列数。在备用优先级模式下,优先级队列通常因此特殊原因配置为小权重。
例如,假设定义了四个队列:0、1、2和优先级队列。在备用优先级模式下,如果所有队列都拥塞,将按如下方式处理这些队列:0、llq、1、llq、2、llq、0、llq、1、....其中llq代表低延迟队列。
每次为队列提供服务时,它都可以发送至其配置的权重。因此,低延迟队列可以具有的最低带宽为:
WL =低延迟队列的权重。
W0、W1、...Wn =常规DRR队列的权重。
n =用于此接口的常规DRR队列数。
BW =链路的带宽。
对于备用优先级模式,低延迟队列的最小带宽= BW * n * WL /(n * WL + Sum(W0,Wn))。
权重是MDRR中唯一可配置的变量参数。它影响流量类可以使用的相对带宽量以及一次发送的流量量。使用较大的权重意味着整个周期需要更长的时间,并可能增加延迟。
配置指南
最好将带宽要求最低的类的权重配置为1,以便在其他类中尽可能低的延迟和抖动。
选择尽可能低的权重值。从带宽最低的类的权重1开始。例如,当您为每个类使用带宽为50%的两个类时,必须配置1和1。使用10和10并不合理,因为选择1时对性能没有影响。此外,权重越高,抖动越大。
LLQ的低权重值非常重要,特别是在备用模式下,以便不给其他类增加太多延迟或抖动。
本节中的示例取自Inside Cisco IOS®软件架构, Cisco Press。
假设我们有三个队列:
队列0 — 有1500字节的量;它是低延迟队列,配置为在备用模式下运行。
队列1 — 的量为3000字节。
队列2 — 的量为1500字节。
图1显示了队列的初始状态,以及已接收和排队的一些数据包。
图1 - MDRR初始状态
首先处理队列0,其量子被加到其赤字计数器,传输数据包1(250字节),并从赤字计数器中减去其大小。由于队列0的赤字计数器仍大于0(1500 - 250 = 1250),因此也会传输数据包2,并从赤字计数器中减去其长度。队列0的赤字计数器现在为–250,因此队列1将接下来被处理。图2表示此状态。
图2 - MDRR后续状态
队列1的赤字计数器设置为3000(0 + 3000 = 3000),并且发送数据包4和5。在传输每个数据包时,从赤字计数器中减去该数据包的大小,因此队列1的赤字计数器将缩小为0。图3说明了此状态。
图3 — 当队列1的赤字计数器为零时的MDRR状态
我们需要从备用优先级模式返回到服务队列0。同样,量子被添加到当前赤字计数器,队列0的赤字计数器被设置为结果(-250 + 1500 = 1250)。 现在传输数据包3,因为赤字计数器大于0,队列0现在为空。清空队列时,其赤字计数器设置为0,如图4所示
图4 — 清空队列时的MDRR状态
队列2接下来提供服务;其赤字计数器设置为1500(0 + 1500 = 1500)。 数据包7到10被传输,使赤字计数器为500(1500 -(4*250)= 500)。 由于赤字计数器仍大于0,因此也会传输数据包11。
如图5所示,当数据包11被传输时,队列2为空,其赤字计数器设置为0。
图5 — 传输数据包11时的MDRR状态
队列0下一步将再次服务(因为我们处于备用优先级模式)。 因为它为空,所以我们为队列1提供服务,然后传输数据包6。
Cisco 12000系列支持五种线卡型号,具有独特的第3层(L3)转发引擎架构。MDRR支持因L3引擎类型和卡类型而异。例如,引擎0 ATM线卡上不支持MDRR和WRED。您可以使用show diag命令确定已安装线路卡的L3引擎类型:
router#show diags | include (SLOT | Engine) !--- The regular expression is case-sensitive. ... SLOT 1 (RP/LC 1 ): 1 port ATM Over SONET OC12c/STM-4c Multi Mode L3 Engine: 0 - OC12 (622 Mbps) SLOT 3 (RP/LC 3 ): 3 Port Gigabit Ethernet L3 Engine: 2 - Backbone OC48 (2.5 Gbps)
您可以使用“传统CoS语法”或“模块化QoS命令行界面”在Cisco 12000系列上配置MDRR。本文档后面的部分讨论如何使用传统CoS或模块化QoS配置MDRR。您必须使用传统CoS语法配置ToFab队列,因为它们不支持MQC的较新语法。详细信息见表2。
表2 - ToFab(Rx)队列上MDRR的详细信息实施位置 | ToFab MDRR | ToFab备用PQ | ToFab严格PQ | ToFab WRED | |
---|---|---|---|---|---|
引擎 0 | 软件 | 否** | 否** | Yes | Yes |
引擎 1 | - | 无 | 无 | 无 | 无 |
引擎 2 | Hardware | Yes | Yes | Yes | Yes |
引擎 3 | Hardware | 无 | Yes | Yes | Yes |
引擎 4 | Hardware | Yes | Yes | Yes | Yes |
引擎 4+ | Hardware | Yes | Yes | Yes | Yes |
**在ToFab(Rx)方向的引擎0 LC上支持MDRR,但只支持严格优先级模式,而不支持备用优先级模式。其余7个队列照常受支持。
入站接口为每个目标LC维护一个单独的虚拟输出队列。这些队列的实施方式取决于L3引擎类型。
引擎0 — 入站LC在每个目标插槽中维护八个队列。因此,队列的最大数量是16x8 = 128。每个队列可单独配置。
引擎2、3、4和4+ — 入站LC在每个目标接口上维护八个队列。如果有16个目标插槽和每个插槽16个接口,则最大队列数为16x16x8 = 2048。目标插槽上的所有接口必须使用相同的参数。
FrFab队列上的MDRR无论在硬件还是软件中实施,都能一致运行。所有L3引擎类型都支持每个出站接口的八个类队列。详细信息见表3。
表3 - FrFab(Tx)队列上MDRR的详细信息实施位置 | FrFab备用PQ | FrFab严格PQ | FrFab WRED | |
---|---|---|---|---|
引擎 0 | 软件1 | 无 | Yes | Yes |
引擎 1 | - | 无 | 无 | 无 |
引擎 2 | Hardware | 有2 | Yes | Yes |
引擎 3 | Hardware | 无 | Yes | Yes |
引擎 4 | Hardware | Yes | Yes | Yes |
引擎 4+ | Hardware | Yes | Yes | Yes |
1 在以下版本的Cisco IOS软件中引入了对引擎0 LC的FrFab队列上的MDRR的支持:
思科IOS软件版本12.0(10)S - 4xOC3和1xOC12 POS、4xOC3和1xCHOC12/STM4。
思科IOS软件版本12.0(15)S - 6xE3和12xE3。
思科IOS软件版本12.0(17)S - 2xCHOC3/STM1。
2 必须使用传统CoS语法在FrFab方向配置备用MDRR。
注意:3xGE LC支持ToFab队列上的MDRR,并且与Cisco IOS软件版本12.0(15)S一样,支持FrFab队列上的MDRR,这两个限制分别是固定量和每个接口的单个CoS队列。优先级队列支持可配置的量子以及严格和备用优先级模式。所有三个接口共享一个PQ。
注:有关Cisco 12000系列LC上支持的QoS功能的最新信息,请参阅Cisco 12000系列路由器版本说明。
加权随机早期检测(WRED)旨在防止接口拥塞对网络吞吐量的有害影响。
图6 - WRED丢包概率
有关WRED参数的说明,请参阅Cisco 12000系列路由器上的加权随机早期检测。最小、最大和标记概率参数描述了实际随机早期检测(RED)曲线。当加权队列平均值低于最小阈值时,不会丢弃任何数据包。当加权队列平均值高于最大队列阈值时,所有数据包都会被丢弃,直到平均值低于最大阈值。当平均值介于最小阈值和最大阈值之间时,数据包被丢弃的概率可以通过从最小阈值(丢弃概率将为0)到最大阈值(丢弃概率等于1/mark概率分母)的直线计算。
RED和WRED的区别在于,当接口开始拥塞时,WRED可以选择性地丢弃优先级较低的流量,并且可以为不同的服务类别(CoS)提供不同的性能特征。 默认情况下,WRED对每个权重使用不同的RED配置文件(IP优先级 — 8个配置文件)。 它比更重要的数据包更积极地丢弃不太重要的数据包。
调整WRED参数以管理队列深度是一项复杂的挑战,它取决于许多因素,包括:
提供的流量负载和配置文件。
负载与可用容量的比率。
拥塞时的流量行为。
这些因素因网络而异,进而取决于所提供的服务和使用这些服务的客户。因此,我们无法提出适用于特定客户环境的建议。但是,表4描述了基于链路带宽的一般建议值。在这种情况下,我们不区分不同服务类别之间的丢弃特征。
表4 — 基于链路带宽的建议值带宽 | 理论带宽(kbps) | 物理BW1(kbps) | 最小阈值 | 最大阈值 |
---|---|---|---|---|
OC3 | 155000 | 149760 | 94 | 606 |
OC12 | 622000 | 599040 | 375 | 2423 |
OC48 | 2400000 | 239616 | 1498 | 9690 |
OC192 | 10000000 | 9584640 | 5991 | 38759 |
1 物理SONET速率
计算上述阈值时,需要考虑几个限制条件。例如,最大化链路利用率同时最小化平均队列深度,最大值和最小值之间的差值必须是2的幂(由于硬件限制)。 根据经验和仿真,RED控制的队列最大瞬时深度小于2 MaxTh。对于0C48及更高版本,1 MaxTh,依此类推。但是,这些值的确切确定超出了本文档的范围。
注:指数加权常数值无需在引擎2及以上线卡上配置,因为使用的是硬件队列采样。对于引擎0 LC,可以配置以下值:
ds3 - 9
oc3 - 10
oc12 - 12
注意:引擎1 LC不支持WRED。
如以下各节所述,您可以同时使用传统CoS语法和较新的MQC语法来配置WRED。
Cisco 12000系列传统服务类别(CoS)语法使用cos-queue-group模板定义一组CoS定义。然后,您将模板分别应用于入站或出站接口上的ToFab和FrFab队列。
cos-queue-group命令可创建MDRR和WRED参数的命名模板。以下是CLI中的可用配置参数:
Router(config)#cos-queue-group oc12 Router(config-cos-que)#? Static cos queue commands: default Set a command to its defaults dscp Set per DSCP parameters, Engine 3 only exit Exit from COS queue group configuration mode exponential-weighting-constant Set group's RED exponential weight constant. (Not used by engine 0, 1 or 2 line cards) no Negate a command or set its defaults precedence Set per precedence parameters queue Set individual queue parmeters random-detect-label Set RED drop criteria traffic-shape Enable Traffic Shaping on a COS queue group
使用MDRR,可以将IP优先级映射到MDRR队列并配置特殊低延迟队列。可以在cos-queue-group命令下为以下项使用优先级参数:
precedence <0-7> queue [ <0-6> | low-latency]
您可以将特定IP优先级映射到常规MDRR队列(队列0到6),也可以将其映射到优先级队列。以上命令允许您将多个IP优先级映射到同一队列。
注意:建议对低延迟队列使用优先级5。优先级6用于路由更新。
您可以为每个MDRR队列分配相对权重,其中组中的一个队列定义为优先级队列。可以在cos-queue-group下使用queue命令来执行以下操作:
queue <0-6> <1-2048> queue low-latency [alternate-priority | strict-priority] <1-2048> !--- The weight option is not available with strict priority.
使用cos-queue-group命令定义任何WRED参数:
random-detect-label
以下是名为oc12的cos-queue-group的示例。它定义了三个流量类:队列0、1和低延迟。它将IP优先级值0 - 3映射到队列0,优先级值4、6和7映射到队列1,将优先级5映射到低延迟队列。队列1分配了更多带宽。
配置示例 |
---|
cos-queue-group oc12 !--- Creation of cos-queue-group called "oc12". precedence 0 queue 0 !--- Map precedence 0 to queue 0. precedence 0 random-detect-label 0 !--- Use RED profile 0 on queue 0. precedence 1 queue 0 precedence 1 random-detect-label 0 precedence 2 queue 0 precedence 2 random-detect-label 0 precedence 3 queue 0 precedence 3 random-detect-label 0 !--- Precedence 1, 2 and 3 also go into queue 0. precedence 4 queue 1 precedence 4 random-detect-label 1 precedence 6 queue 1 precedence 6 random-detect-label 1 precedence 7 queue 1 precedence 7 random-detect-label 1 precedence 5 queue low-latency !--- Map precedence 5 to special low latency queue. !--- We do not intend to drop any traffic from the LLQ. We have an SLA !--- that commits not to drop on this queue. You want to give it all !--- the bandwidth it requires. Random-detect-label 0 375 2423 1 !--- Minimum threshold 375 packets, maximum threshold 2423 packets. !--- Drop probability at maximum threshold is 1. random-detect-label 1 375 2423 1 queue 1 20 !--- Queue 1 gets MDRR weight of 20, thus gets more Bandwidth. queue low-latency strict-priority !--- Low latency queue runs in strict priority mode. |
为避免线头阻塞,Cisco 12000系列的入站接口为每个目标插槽维护一个虚拟输出队列。使用attach命令转到线卡并执行execute-on show controller tofab queue命令(或直接输入execute-on slot 0 show controllers tofab queue命令)以查看这些虚拟输出队列。下面提供了直接从LC控制台捕获的输出示例。请参阅如何读取show controller frfab的输出 | Cisco 12000系列Internet路由器上的tofab queue命令。
LC-Slot1#show controllers tofab queues Carve information for ToFab buffers SDRAM size: 33554432 bytes, address: 30000000, carve base: 30029100 33386240 bytes carve size, 4 SDRAM bank(s), 8192 bytes SDRAM pagesize, 2 carve(s) max buffer data size 9248 bytes, min buffer data size 80 bytes 40606/40606 buffers specified/carved 33249088/33249088 bytes sum buffer sizes specified/carved Qnum Head Tail #Qelem LenThresh ---- ---- ---- ------ --------- 5 non-IPC free queues: 20254/20254 (buffers specified/carved), 49.87%, 80 byte data size 1 17297 17296 20254 65535 12152/12152 (buffers specified/carved), 29.92%, 608 byte data size 2 20548 20547 12152 65535 6076/6076 (buffers specified/carved), 14.96%, 1568 byte data size 3 32507 38582 6076 65535 1215/1215 (buffers specified/carved), 2.99%, 4544 byte data size 4 38583 39797 1215 65535 809/809 (buffers specified/carved), 1.99%, 9248 byte data size 5 39798 40606 809 65535 IPC Queue: 100/100 (buffers specified/carved), 0.24%, 4112 byte data size 30 72 71 100 65535 Raw Queue: 31 0 17302 0 65535 ToFab Queues: Dest Slot 0 0 0 0 65535 1 0 0 0 65535 2 0 0 0 65535 3 0 0 0 65535 4 0 0 0 65535 5 0 17282 0 65535 6 0 0 0 65535 7 0 75 0 65535 8 0 0 0 65535 9 0 0 0 65535 10 0 0 0 65535 11 0 0 0 65535 12 0 0 0 65535 13 0 0 0 65535 14 0 0 0 65535 15 0 0 0 65535 Multicast 0 0 0 65535 LC-Slot1#
使用slot-table-cos命令将命名的cos-queue-group映射到目标虚拟输出队列。您可以为每个输出队列配置唯一的cos-queue-group模板
Router(config)#slot-table-cos table1 Router(config-slot-cos)#destination-slot ? <0-15> Destination slot number all Configure for all destination slots Router(config-slot-cos)#destination-slot 0 oc48 Router(config-slot-cos)#destination-slot 1 oc48 Router(config-slot-cos)#destination-slot 2 oc48 Router(config-slot-cos)#destination-slot 3 oc48 Router(config-slot-cos)#destination-slot 4 oc12 Router(config-slot-cos)#destination-slot 5 oc48 Router(config-slot-cos)#destination-slot 6 oc48 Router(config-slot-cos)#destination-slot 9 oc3 Router(config-slot-cos)#destination-slot 15 oc48
注:上述配置使用名为oc48、oc12和oc3的三个模板。如步骤1所示,cos-queue-group的配置如步骤1所示。同样,配置oc3和oc48。建议根据带宽和应用将唯一模板应用于一组接口。
使用rx-cos-slot命令将slot-table-cos应用到LC。
Router(config)#rx-cos-slot 0 ? WORD Name of slot-table-cos Router(config)#rx-cos-slot 0 table1 Router(config)#rx-cos-slot 2 table1
Cisco 12000系列为每个出站接口维护一个单独的队列。要查看这些队列,请连接到线卡CLI。使用attach命令,然后执行show controller frfab queue命令,如下所示:
LC-Slot1#show controller frfab queue ========= Line Card (Slot 2) ======= Carve information for FrFab buffers SDRAM size: 16777216 bytes, address: 20000000, carve base: 2002D100 16592640 bytes carve size, 0 SDRAM bank(s), 0 bytes SDRAM pagesize, 2 carve(s) max buffer data size 9248 bytes, min buffer data size 80 bytes 20052/20052 buffers specified/carved 16581552/16581552 bytes sum buffer sizes specified/carved Qnum Head Tail #Qelem LenThresh ---- ---- ---- ------ --------- 5 non-IPC free queues: 9977/9977 (buffers specified/carved), 49.75%, 80 byte data size 1 101 10077 9977 65535 5986/5986 (buffers specified/carved), 29.85%, 608 byte data size 2 10078 16063 5986 65535 2993/2993 (buffers specified/carved), 14.92%, 1568 byte data size 3 16064 19056 2993 65535 598/598 (buffers specified/carved), 2.98%, 4544 byte data size 4 19057 19654 598 65535 398/398 (buffers specified/carved), 1.98%, 9248 byte data size 5 19655 20052 398 65535 IPC Queue: 100/100 (buffers specified/carved), 0.49%, 4112 byte data size 30 77 76 100 65535 Raw Queue: 31 0 82 0 65535 Interface Queues: 0 0 0 0 65535 1 0 0 0 65535 2 0 0 0 65535 3 0 0 0 65535
使用tx-cos命令将cos-queue-group模板应用到接口队列。如图所示,您将参数集直接应用到接口;不需要表。在本示例中,pos48是参数集的名称。
Router(config)#interface POS 4/0 Router(config-if)#tx-cos ? WORD Name of cos-queue-group Router(config-if)#tx-cos pos48
使用show cos命令确认您的配置:
Router#show cos !--- Only some of the fields are visible if MDRR is configured on Inbound !--- or Outbound interfaces. Interface Queue cos Group Gi4/0 eng2-frfab !--- TX-cos has been applied. Rx Slot Slot Table 4 table1 !--- rx-cos-slot has been applied. Slot Table Name - table1 1 eng0-tofab 3 eng0-tofab !--- slot-table-cos has been defined. cos Queue Group - eng2-tofab !--- cos-queue-group has been defined. Prec Red Label [min, max, prob] Drr Queue [deficit] 0 0 [6000, 15000, 1/1] 0 [10] 1 1 [10000, 20000, 1/1] 1 [40] 2 1 [10000, 20000, 1/1] 1 [40] 3 1 [10000, 20000, 1/1] 0 [10] 4 2 [15000, 25000, 1/1] 2 [80] 5 2 [15000, 25000, 1/1] 2 [80] 6 no drop low latency 7 no drop low latency
注意:传统CLI还使用多协议标签交换(MPLS)流量的优先级语法。路由器将MPLS位视为IP服务类型(ToS)位,并将适当的数据包放入正确的队列中。这对MQC完全不是。MPLS QoS不在本文档的范围内。
思科模块化QoS CLI(MQC)的目标是以逻辑方式连接所有不同的QoS功能,以简化思科IOS软件服务质量(QoS)功能的配置。例如,分类与排队、策略和整形分开进行。它为基于模板的QoS提供单个配置框架。以下是有关MQC配置的几点要记住的:
它可以轻松地应用于接口或从接口中删除。
它可以轻松重复使用(同一策略可应用于多个接口)。
它为QoS提供单一配置框架,使您能够轻松调配、监控和排除故障。
它提供更高级别的抽象。
它独立于平台。
在Cisco 12000系列上,可以使用MQC命令代替传统服务类(CoS)语法。
Cisco 12000系列的MQC支持并不意味着Cisco 12000上现在提供了其他平台(如Cisco 7500系列)上可用的相同QoS功能集。MQC提供了一种通用语法,其中命令会导致共享功能或行为。例如,bandwidth命令实现了最低带宽保证。Cisco 12000系列使用MDRR作为调度机制来预留带宽,而Cisco 7500系列使用WFQ。主算法是对特定平台的补充。
重要的是,只有FrFab队列支持通过MQC配置QoS功能。由于ToFab队列是虚拟输出队列,而不是真正的输入队列,因此MQC不支持这些队列。必须使用传统CoS命令配置它们。
表5列出了对每个L3引擎类型的MQC的支持。
表5 — 对L3引擎类型的MQC的支持L3引擎类型 | 引擎 0 | 引擎 1 | 引擎 2 | 引擎 3 | 引擎 4 | 引擎 4+ |
---|---|---|---|---|---|---|
MQC 支持 | Yes | 无 | Yes | Yes | Yes | Yes |
IOS 版本 | 12.0(15)S | - | 12.0(15)S1 | 12.0(21)S | 12.0(22)S | 12.0(22)S |
1 请记住引擎0和2线卡(LC)上支持MQC的以下异常:
2xCHOC3/STM1 — 在12.0(17)S中引入。
1xOC48 DPT — 在12.0(18)S中引入。
8xOC3 ATM — 计划用于12.0(22)S。
MQC使用以下三个步骤创建QoS策略:
使用class-map命令定义一个或多个流量类。
使用policy-map命令创建QoS策略,并将QoS操作(如带宽或优先级)分配给命名流量类。
使用service-policy命令将策略映射附加到出站接口的FrFab队列。
使用show policy-map interface命令监控策略。
有关详细信息,请参阅模块化服务质量命令行界面概述。
class-map命令用于定义流量类。在内部,在Cisco 12000系列上,class-map命令将类分配给线卡上的特定CoS队列(有关详细信息,请参阅第4步)。
class-map命令支持“match-any”和“match-all”,前者将匹配任何匹配语句的数据包放入类中,后者仅在所有语句都为true时将数据包放入此类中。以下命令创建一个名为“Prec_5”的类,并将IP优先级为5的所有数据包分类到此类:
Router(config-cmap)#match ? access-group Access group any Any packets class-map Class map destination-address Destination address fr-dlci Match on fr-dlci input-interface Select an input interface to match ip IP specific values mpls Multi Protocol Label Switching specific values not Negate this match result protocol Protocol qos-group Qos-group source-address Source address Router(config-cmap)#match ip precedence 5
表6列出了每种L3引擎类型支持的匹配条件。
表6 - L3引擎支持的匹配条件引擎0、2 | 引擎 3 | 引擎 4 | 引擎 4+ | |
---|---|---|---|---|
IP 优先级 | Yes | Yes | Yes | 是1 |
access-group | 无 | Yes | 无 | 无 |
mpls exp | 无 | Yes | 无 | 是(12.0.26S) |
ip dscp | 无 | Yes | 无 | 是(12.0.26S) |
qos-group | 无 | Yes | 无 | 无 |
match input-interface POS x/y | 无 | 是(仅作为接收策略) | 无 | 无 |
自12.0.26S以来的1个入口/出口
policy-map命令用于将数据包处理策略或操作分配给一个或多个定义的类。例如,当您分配带宽预留或应用随机丢弃配置文件时。
Cisco 12000系列基于L3引擎的高速架构支持MQC功能的子集。表7列出了支持的命令:
表7 — 支持的命令命令 | 描述 |
---|---|
带宽 | 在拥塞期间提供最低带宽保证。它指定为链路速度的百分比或绝对值。如果某个类不使用或需要等于保留kbps的带宽,则其他带宽类可以使用可用带宽。 |
警察,形状 | 限制类可以传输的流量。这些命令在功能上略有不同。police命令可识别超出配置带宽的流量,并丢弃或注释该流量。shape命令可缓冲任何超额流量,并以恒定速率调度其传输,但不会丢弃或注释。 |
队列限制 | 为给定的流量类分配固定队列长度。可以在队列中可以保留的数据包数量中指定此值。 |
优先级 | 将队列标识为低延迟队列。MQC仅支持PQ的严格模式。MQC不支持备用模式。使用不带百分比值的priority命令启用严格优先级模式。 注意:在Cisco 12000系列上实施priority命令与在运行Cisco IOS软件的其他路由器上实施的不同。在此平台上,优先级流量不限于拥塞期间配置的kbps值。因此,您还必须配置police命令以限制优先级类可以使用的带宽,并确保为其他类提供足够的带宽。此时,仅引擎3线卡上支持police命令。在其他引擎线卡上,配置优先级类时仅允许class-default。 |
随机检测 | 分配WRED配置文件。使用random-detect precedence命令按IP优先级值配置非默认WRED值。 |
在引擎3 LC上,必须使用模块化QoS CLI(MQC)配置FrFab队列;不支持传统命令行界面(CLI)。
配置bandwidth命令时,请注意,引擎0和2 LC仅支持六个带宽类。第七类可用于低延迟服务,第八类(class-default)可用于所有不匹配的流量。因此,您总共有八个队列。Class-default不用作优先级类。
在引擎3 LC上,bandwidth percent命令将转换为kbps值,该值随基础链路速率而变化,然后直接在队列中配置。保证的最低带宽精确度为 64 Kbps。
虽然使用bandwidth命令不会转换到量子值,但所有队列都有量子。在引擎3 LC上,量子值根据接口的最大传输单位(MTU)在内部设置,并对所有队列均等设置。没有可以修改此量子值的 MQC CLI 机制,无论是通过直接方式还是间接方式。量子值必须大于或等于接口MTU。在内部,量子值以512字节为单位。因此,MTU为4470字节时,MTU的最小量子值必须为9。
本节提供在引擎3 LC上实施WRED和MDRR的配置说明。
在CLI中配置的MDRR带宽将转换为与L2对应的量(例如,L1开销被删除)。 然后,该量将四舍五入到下一个64 kbps,并在硬件中编程。
一个类支持三个不同的WRED配置文件。
WRED(最大阈值 — 最小阈值)近似为2的最近幂。然后,在保持最大阈值不变的情况下,自动调整最小阈值。
支持标记概率值1。
不支持指数加权常量配置。
支持IP优先级、MPLS EXP位和DSCP值。
注意:Tetra(4GE-SFP-LC=)或CHOC12/DS1-IR-SC= Frostbite线卡上的每个端口或通道默认分配四个队列。这四个队列包括:
一个优先级队列(LLQ)类
一个默认队列类
两个普通非优先级类
将包含这四个类别(1个HPQ、2个LPQ和class-default)以上的服务策略应用到接口时,将报告以下错误:
Router(config-if)#service-policy output mdrr-policy
%队列资源不足,无法满足请求。
自12.0(26)S起,已为4GE-SFP-LC= Tetra线卡添加了一个命令,允许配置八个队列/VLAN而不是四个。八个队列包括:
一个LLQ
一个类默认队列
六个正常队列
使用此命令需要线路卡的微码重新加载,并且只能配置508个VLAN,而不能配置1022个VLAN。命令语法如下:
[no] hw-module slot <slot#> qos interface queues 8
例如:
Router(config)#hw-module slot 2 qos接口队列8
警告:请微量重新加载线路卡以使此命令生效
Router(config)#microcode reload 2
此命令将用于12.0(32)S中的CHOC12/DS1-IR-SC= Frostbite线卡
示例#1 - bandwidth percent命令
此示例将20%的可用带宽分配给Prec_4类流量,30%分配给Prec_3类流量。剩余50%留给class-default类。
此外,它还将WRED配置为所有数据类上的丢弃机制。
示例#1 — 带宽百分比 |
---|
policy-map GSR_EXAMPLE class Prec_4 bandwidth percent 20 random-detect random-detect precedence 4 1498 packets 9690 packets 1 !--- All data classes should have WRED configured. class Prec_3 bandwidth percent 30 random-detect random-detect precedence 3 1498 packets 9690 packets 1 class class-default !--- Class-default uses any leftover bandwidth. random-detect random-detect precedence 2 1498 packets 9690 packets 1 random-detect precedence 1 1498 packets 9690 packets 1 random-detect precedence 0 1498 packets 9690 packets 1 |
示例#2 - bandwidth {kbps}命令
本示例说明如何将bandwidth命令作为绝对kbps值而非百分比应用。
示例#2 — 带宽{kbps} |
---|
policy-map GSR_EXAMPLE class Prec_4 bandwidth 40000 !--- Configures a minimum bandwidth guarantee of 40000 kbps or 40 Mbps in !--- times of congestion. Random-detect random-detect precedence 4 1498 packets 9690 packets 1 class Prec_3 bandwidth 80000 !--- Configures a minimum bandwidth guarantee of 80000 kbps or 80 Mbps in !--- times of congestion. Random-detect random-detect precedence 3 1498 packets 9690 packets 1 class class-default !--- Any remaining bandwidth is given to class-default. Random-detect random-detect precedence 2 1498 packets 9690 packets 1 random-detect precedence 1 1498 packets 9690 packets 1 random-detect precedence 0 1498 packets 9690 packets 1 |
示例#3 - priority命令
此示例专为使用Cisco 12000系列路由器作为MPLS提供商边缘(PE)路由器,并需要在PE路由器与客户边缘(CE)路由器之间的链路上配置QoS服务策略的服务提供商而设计。它将IP优先级5数据包放入优先级队列,并将该队列的输出限制为64 Mbps。然后,它将剩余带宽的一部分分配给带宽类。
所有非优先级类队列都使用random-detect命令配置,以启用WRED作为丢弃策略。所有带宽类和class-default必须显式配置WRED。
示例#3 — 优先级 |
---|
policy-map foo class Prec_5 police 64000000 conform-action transmit exceed-action drop !--- The police command is supported on Engine 3 line cards. priority class Prec_4 bandwidth percent 30 random-detect random-detect precedence 4 1498 packets 9690 packets 1 class Prec_3 bandwidth percent 10 random-detect random-detect precedence 3 1498 packets 9690 packets 1 class Prec_2 bandwidth percent 10 random-detect random-detect precedence 2 1498 packets 9690 packets 1 class Prec_1 bandwidth percent 10 random-detect random-detect precedence 1 1498 packets 9690 packets 1 class Prec_0 bandwidth percent 25 random-detect random-detect precedence 0 1498 packets 9690 packets 1 class class-default random-detect random-detect precedence 6 1498 packets 9690 packets 1 random-detect precedence 7 1498 packets 9690 packets 1 |
如上所述,MQC仅与出站接口上的FrFab队列配合使用。要应用已定义的策略映射,请使用service-policy 输出命令,如下所示:
Router(config)#interface POS 0/0 Router(config-if)#service-policy ? history Keep history of QoS metrics input Assign policy-map to the input of an interface output Assign policy-map to the output of an interface Router(config-if)#service-policy output ? WORD policy-map name Router(config-if)#service-policy output GSR_EXAMPLE
使用show policy-map interface命令查看策略的应用。show policy-map interface命令显示以下内容:
已配置的带宽和优先级类以及匹配条件。
任何WRED配置文件。
形状和策略参数。
流量记帐和速率。
特定类映射到的内部CoS队列。这些队列由show controller frfab queue命令输出中使用的同一索引引用。
以下是用于监控策略的完整配置和show命令的示例:
完成配置 |
---|
class-map match-all class1 match ip precedence 1 class-map match-all class2 match ip precedence 2 !--- Step 1 - Configure traffic classes. ! policy-map policy1e Class class1 bandwidth percent 10 random-detect random-detect precedence 1 375 packets 2423 packets 1 Class class2 bandwidth percent 20 random-detect !--- Step 2 - Configure a policy-map. ! interface POS6/0 ip address 12.1.1.1 255.255.255.0 no ip directed-broadcast no keepalive service-policy output policy1e !--- Step 3- Attach policy-map to the interface. |
使用show policy-map interface命令查看接口上配置的策略以及所有已配置的类。以下是命令的输出:
Router#show policy-map int pos6/0 POS6/0 Service-policy output: policy1e (1071) Class-map: class1 (match-all) (1072/3) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: ip precedence 1 (1073) Class of service queue: 1 Tx Queue (DRR configured) bandwidth percent Weight 10 1 Tx Random-detect: Exp-weight-constant: 1 (1/2) Precedence RED Label Min Max Mark 1 1 375 2423 1 Class-map: class2 (match-all) (1076/2) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: ip precedence 2 (1077) Class of service queue: 2 Tx Queue (DRR configured) bandwidth percent Weight 20 9 Tx Random-detect: Exp-weight-constant: 1 (1/2) Precedence RED Label Min Max Mark Class-map: class-default (match-any) (1080/0) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any (1081) 0 packets, 0 bytes 5 minute rate 0 bps
本节列出可用于监控拥塞管理和避免策略的命令。
表8列出了入口和出口线卡的相关命令。
表8 — 线卡的命令入口线卡 | 出口线卡 |
---|---|
|
|
这些命令将在本节中介绍。
在使用此命令之前,请确认正确的“队列策略”。 如果输出显示先进先出(FIFO),请确保运行配置中显示service-policy命令(如果已使用MQC配置MDRR)。
监控输出丢弃数,这表示此接口上传出流量已发生的WRED FrFab丢弃总数。show interfaces命令输出中的输出丢弃数必须等于或高于show interfaces <number> random命令输出中的输出丢弃数。
注意:在Cisco 12000系列路由器上,接口输出丢弃在WRED丢弃更新后更新。如果使用工具查询两个丢弃计数器,则接口丢包尚未更新。
Router#show interfaces POS 4/0 POS4/0 is up, line protocol is up Hardware is Packet over SONET Description: link to c12f9-1 Internet address is 10.10.105.53/30 MTU 4470 bytes, BW 622000 Kbit, DLY 100 usec, rely 255/255, load 82/255 Encapsulation PPP, crc 32, loopback not set Keepalive set (10 sec) Scramble enabled LCP Open Open: IPCP, CDPCP, OSICP, TAGCP Last input 00:00:02, output 00:00:05, output hang never Last clearing of "show interface" counters 00:04:54 Queueing strategy: random early detection (WRED) Output queue 0/40, 38753019 drops; input queue 0/75, 0 drops 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 200656000 bits/sec, 16661 packets/sec 135 packets input, 6136 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 parity 0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 7435402 packets output, 11182627523 bytes, 0 underruns 0 output errors, 0 applique, 0 interface resets 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions
使用此命令时,必须:
验证是否已将正确的cos-queue-group模板应用到此接口。
检查MDRR权重。对于每个MDRR队列,可以检查队列长度的加权平均值和达到的最高值(以数据包为单位)。 这些值按加权平均值计算,无需反映达到的实际最大队列深度。
检查WRED最小和最大阈值。
检查每个RED标签的随机丢包数和阈值丢包数(“到交换矩阵”丢包表示所有线卡上此标签的丢包总数)。
“TX-queue-limit drops”计数器仅用于不支持WRED的引擎1 LC。引擎1卡使您能够使用TX-queue-limit接口命令设置MDRR队列的限制。如果支持WRED,则WRED阈值确定MDRR队列的深度。
Router#show interfaces POS 4/0 random POS4/0 cos-queue-group: oc12 RED Drop Counts TX Link To Fabric RED Label Random Threshold Random Threshold 0 29065142 73492 9614385 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 0 0 0 0 5 0 0 0 0 6 0 0 0 0 TX-queue-limit drops: 0 Queue Lengths TX Queue (DRR configured) oc12 Queue Average High Water Mark Weight 0 0.000 2278.843 1 1 0.000 0.000 73 2 0.000 0.000 10 3 0.000 0.000 10 4 0.000 0.000 10 5 0.000 0.000 10 6 0.000 0.000 10 Low latency 0.000 0.000 10 TX RED config Precedence 0: 375 min threshold, 2423 max threshold, 1/1 mark weight Precedence 1: not configured for drop Precedence 2: not configured for drop Precedence 3: not configured for drop Precedence 4: 375 min threshold, 2423 max threshold, 1/1 mark weight Precedence 5: not configured for drop Precedence 6: 375 min threshold, 2423 max threshold, 1/1 mark weight Precedence 7: not configured for drop weight 1/2
此命令显示给定插槽上给定端口的瞬时队列深度。本部分的输出示例显示接口POS 4/1上的MDRR队列。您会看到MDRR队列1的队列深度(共1964个数据包)。权重是可在此队列中提供的字节数。此权重确定要给此队列的带宽百分比。赤字是告诉DRR算法仍然需要服务多少数据包的值。您可以看到LLQ(DRR队列7)中没有排队的数据包。
Router#execute-on slot 4 show controllers frfab queue 1 ========= Line Card (Slot 4) ======= FrFab Queue Interface 1 DRR# Head Tail Length Average Weight Deficit 0 95330 40924 0 0.000 4608 0 1 211447 233337 1964 1940.156 41472 35036 2 0 0 0 0.000 9216 0 3 0 0 0 0.000 9216 0 4 0 0 0 0.000 9216 0 5 0 0 0 0.000 9216 0 6 0 0 0 0.000 9216 0 7 0 0 0 0.000 9216 0
此命令尤其用于监控出口线卡的优先级队列的深度。当您看到数据包开始在此LLQ上等待时,很好地表明您必须将某些IP语音(VOIP)流量转移到其他出口线卡。在良好的设计中,长度应始终为0或1。在真实网络中,即使是语音数据,您也会遇到突发流量。当语音总负载短时间超过出口带宽的100%时,额外延迟会更加严重。路由器无法将比允许的流量更多的流量放在线路上,因此语音流量会在其自己的优先级队列中排队。这会导致语音流量本身的突发导致语音延迟和语音抖动。
Router#execute-on slot 4 show controllers frfab queue 0 ========= Line Card (Slot 4) ======= FrFab Queue Interface 0 DRR# Head Tail Length Average Weight Deficit 0 181008 53494 2487 2282.937 4608 249 1 16887 45447 7 0.000 41472 0 2 0 0 0 0.000 9216 0 3 0 0 0 0.000 9216 0 4 0 0 0 0.000 9216 0 5 0 0 0 0.000 9216 0 6 0 0 0 0.000 9216 0 7 107818 142207 93 0.000 9216 -183600
队列7是LLQ,长度告诉您此LLQ中有多少个数据包。
当您怀疑LC的数据包内存开始接近满容量时,请使用此命令。“no mem drop”计数器的增值表明未配置WRED或WRED阈值设置过高。在正常情况下,此计数器不得递增。有关详细信息,请参阅Cisco 12000系列Internet路由器上忽略的数据包和无内存丢弃故障排除。
Router#execute-on slot 4 show controllers frfab QM stat ========= Line Card (Slot 4) ======= 68142538 no mem drop, 0 soft drop, 0 bump count 0 rawq drops, 8314999254 global red drops, 515761905 global force drops 0 no memory (ns), 0 no memory hwm (Ns) no free queue 0 0 1968 88 0 0 0 0 0 0 0 0 0 0 0 0 0 multicast drops TX Counts Interface 0 859672328848 TX bytes, 3908130535 TX pkts, 75431 kbps, 6269 pps Interface 1 86967615809 TX bytes, 57881504 TX pkts, 104480 kbps, 8683 PPS Interface 2 0 TX bytes, 0 TX pkts, 0 kbps, 0 PPS Interface 3 0 TX bytes, 0 TX pkts, 0 kbps, 0 PPS
本节介绍用于监控入站拥塞管理的命令。
在发出此命令之前,请检查忽略的计数器中的值是否在增加。如果ToFab端的内存不足或线路卡无法足够快地接受数据包,您将看到忽略的数据包。有关详细信息,请参阅排除Cisco 12000系列Internet路由器上的输入丢弃故障。
Router#show interfaces POS 14/0 POS14/0 is up, line protocol is up Hardware is Packet over SONET Description: agilent 3b for QOS tests Internet address is 10.10.105.138/30 MTU 4470 bytes, BW 2488000 Kbit, DLY 100 usec, rely 234/255, load 1/255 Encapsulation HDLC, crc 32, loopback not set Keepalive not set Scramble disabled Last input never, output 00:00:03, output hang never Last clearing of "show interface" counters 00:34:09 Queueing strategy: random early detection (WRED) Output queue 0/40, 0 drops; input queue 0/75, 0 drops 5 minute input rate 2231000 bits/sec, 4149 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 563509152 packets input, 38318622336 bytes, 0 no buffer Received 0 broadcasts, 0 runts, 0 giants, 0 throttles 0 parity 166568973 input errors, 0 CRC, 0 frame, 0 overrun, 166568973 ignored, 0 abort 35 packets output, 12460 bytes, 0 underruns 0 output errors, 0 applique, 0 interface resets 0 output buffer failures, 0 output buffers swapped out 0 carrier transitions
当插槽3中的出口线卡上没有拥塞时,捕获了exec slot <x> show controller tofab queue命令的此示例输出。
Router#execute-on slot 13 show controllers tofab queue ========= Line Card (Slot 13) ======= Carve information for ToFab buffers !--- Output omitted. ToFab Queues: Dest Slot 0 0 0 0 9690 1 0 0 0 9690 2 0 0 0 9690 3 11419 16812 0 9690 4 0 0 0 2423 5 0 0 0 9690 6 0 0 0 9690 7 0 0 0 262143 8 0 0 0 262143 9 0 0 0 606 10 0 0 0 262143 11 0 0 0 262143 12 0 0 0 262143 13 0 0 0 262143 14 0 0 0 262143 15 0 0 0 9690 Multicast 0 0 0 262143
当插槽3发生拥塞时,捕获了以下输出:
Router#execute-on slot 13 show controllers tofab queue ========= Line Card (Slot 13) ======= Carve information for ToFab buffers !--- Output omitted. ToFab Queues: Dest Slot 0 0 0 0 9690 1 0 0 0 9690 2 0 0 0 9690 3 123689 14003 1842 9690 4 0 0 0 2423 5 0 0 0 9690 6 0 0 0 9690 7 0 0 0 262143 8 0 0 0 262143 9 0 0 0 606 10 0 0 0 262143 11 0 0 0 262143 12 0 0 0 262143 13 0 0 0 262143 14 0 0 0 262143 15 0 0 0 9690 Multicast 0 0 0 262143
使用此命令可确定ToFab端使用的内存量。特别要注意“#Qelem”列中的数字。请注意:
当不使用内存时,这些值处于其最高值。
“#Qelem”列的值随着数据包的缓冲而减小。
当“#Qelem”列达到零时,所有雕刻的缓冲区都在使用中。在引擎2 LC上,小数据包可以从较大数据包借用缓冲区空间。
您还可以使用此命令确定虚拟输出队列中排队的数据包的数量。此处的示例显示如何检查插槽14上插槽4、端口1(POS 4/1)的这些队列的即时数据包数。 我们看到830个数据包在MDRR队列1上排队。
Router# execute-on slot 14 show controllers tofab queue 4 1 ========= Line Card (Slot 14) ======= ToFab Queue Slot 4 Int 1 DRR# Head Tail Length Average Weight Deficit 0 0 0 0 0.000 4608 0 1 203005 234676 830 781.093 41472 37248 2 0 0 0 0.000 9216 0 3 0 0 0 0.000 9216 0 4 0 0 0 0.000 9216 0 5 0 0 0 0.000 9216 0 6 0 0 0 0.000 9216 0 7 0 0 0 0.000 9216 0
使用此命令可查看每个线卡的ToFab丢包数。另外,请检查“无内存丢弃”计数器的增量。当ToFab端未配置CoS时,此计数器将递增。
Router#execute-on slot 13 show controllers tofab QM stat ========= Line Card (Slot 13) ======= 0 no mem drop, 0 soft drop, 0 bump count 0 rawq drops, 1956216536 global red drops, 6804252 global force drops 0 no memory (Ns), 0 no memory hwm (Ns) no free queue 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Q status errors 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
本案例研究展示如何为服务提供商环境的网络核心配置典型策略。它应用队列命令,并允许您使用MDRR/WRED进行活动队列管理。边缘路由器中的QoS策略通常使用流量标记、调节等,以使核心路由器能够根据IP优先级或DiffServ代码点(DSCP)值将流量分类。本案例研究使用Cisco IOS软件QoS功能来满足同一IP主干上严格的服务级别协议(SLA)和不同的语音、视频和数据服务服务级别。
在此方法中,服务提供商实施了三类流量。最重要的是LLQ或低延迟队列类。这是语音和视频课程。此类必须经历最小延迟和抖动,并且只要此类的带宽不超过链路带宽,就永远不会经历丢包或重新排序的数据包。此类在DiffServ架构中称为加速转发每跳行为(EF PHB)流量。Internet服务提供商(ISP)设计网络的方式是此类网络的平均链路带宽负载不超过30%。另外两类是企业级和尽力而为级。
在设计中,我们对路由器的配置方式是,企业级总能获得剩余带宽的90%,而尽力而为的级能获得10%。这两类流量对时间的敏感性较低,并且可能会出现流量丢失、延迟和抖动。在设计中,重点关注引擎2线卡:1xOC48 rev B、4xOC12 rev B和8xOC3线卡。
Rev B线卡最适合传输VoIP流量,因为修订了ASIC和硬件架构,这几乎不会造成延迟。使用修改的ASIC,线卡驱动程序将传输FIFO队列调整为卡上最大MTU的大约两倍。查找附加到部件号的“ — B”,例如OC48E/POS-SR-SC-B=。
注意:请勿使用tx-queue-limit接口命令将传输FIFO队列与可在引擎0线卡上调整的FrFab队列混淆。
表9列出了每个类的匹配条件。
表9 — 每个类的匹配条件类名称 | 匹配标准 |
---|---|
优先级队列 — 语音流量 | 优先级5 |
业务队列 | 优先级4 |
尽力而为队列 | 优先级0 |
OC48线卡可以在ToFab队列中排队大量数据包。因此,在ToFab队列上配置MDRR/WRED非常重要,特别是当出口接口是高速接口(如OC48)时。交换矩阵只能以3 Gbps(1500字节数据包)的理论最大速率将流量切换到接收线卡。 如果发送的总流量大于交换矩阵可以传输到其接收卡的流量,则许多数据包将在ToFab队列中排队。
Interface POS3/0 description OC48 egress interface ip address 10.10.105.53 255.255.255.252 no ip directed-broadcast ip router Isis encapsulation ppp mpls traffic-eng tunnels tag-switching ip no peer neighbor-route crc 32 clock source internal POS framing sdh POS scramble-atm POS threshold sf-ber 4 POS flag s1s0 2 TX-cos oc48 Isis metric 2 level-1 Isis metric 2 level-2 ip rsvp bandwidth 2400000 2400000 ! interface POS4/1 description OC12 egress interface ip address 10.10.105.121 255.255.255.252 no ip directed-broadcast ip router Isis encapsulation ppp mpls traffic-eng tunnels no peer neighbor-route crc 32 clock source internal POS framing sdh POS scramble-ATM POS threshold sf-ber 4 POS flag s1s0 2 TX-cos oc12 Isis metric 2 level-1 Isis metric 2 level-2 ip RSVP bandwidth 600000 60000 ! interface POS9/2 description OC3 egress interface ip address 10.10.105.57 255.255.255.252 no ip directed-broadcast ip router Isis crc 16 POS framing sdh POS scramble-ATM POS flag s1s0 2 TX-cos oc3 Isis metric 200 level-1 Isis metric 2 level-2 ! interface POS13/0 description agilent 3a for QOS tests - ingress interface. ip address 10.10.105.130 255.255.255.252 no ip directed-broadcast no ip route-cache cef no ip route-cache no ip mroute-cache no keepalive crc 32 POS threshold sf-ber 4 TX-cos oc48 ! interface POS14/0 description agilent 3b for QOS tests - ingress interface. ip address 10.10.105.138 255.255.255.252 no ip directed-broadcast no keepalive crc 32 POS threshold sf-ber 4 TX-cos oc48 ! interface POS15/0 description agilent 4A for QOS tests - ingress interface ip address 10.10.105.134 255.255.255.252 no ip directed-broadcast no ip mroute-cache no keepalive crc 32 POS threshold sf-ber 4 TX-CoS oc48 ! rx-cos-slot 3 StotTable rx-cos-slot 4 StotTable rx-cos-slot 9 StotTable rx-cos-slot 13 StotTable rx-cos-slot 14 StotTable rx-cos-slot 15 StotTable ! slot-table-cos StotTable destination-slot 0 oc48 destination-slot 1 oc48 destination-slot 2 oc48 destination-slot 3 oc48 destination-slot 4 oc12 destination-slot 5 oc48 destination-slot 6 oc48 destination-slot 9 oc3 destination-slot 15 oc48 ! cos-queue-groupoc3 precedence 0 random-detect-label 0 precedence 4 queue 1 precedence 4 random-detect-label 1 precedence 5 queue low-latency precedence 6 queue 1 precedence 6 random-detect-label 1 random-detect-label 0 94 606 1 random-detect-label 1 94 606 1 queue 0 1 queue 1 73 queue low-latency strict-priority !--- Respect the tight SLA requirements. !--- No packets drop/low delay and jitter for the priority queue. ! CoS-queue-groupoc12 precedence 0 random-detect-label 0 precedence 4 queue 1 precedence 4 random-detect-label 1 precedence 5 queue low-latency precedence 6 queue 1 precedence 6 random-detect-label 1 random-detect-label 0 375 2423 1 random-detect-label 1 375 2423 1 queue 0 1 queue 1 73 queue low-latency strict-priority ! CoS-queue-groupoc48 precedence 0 random-detect-label 0 precedence 4 queue 1 precedence 4 random-detect-label 1 precedence 5 queue low-latency precedence 6 queue 1 precedence 6 random-detect-label 1 random-detect-label 0 1498 9690 1 random-detect-label 1 1498 9690 1 queue 0 1 queue 1 73 queue low-latency strict-priority
预计您拥有的VOIP流量越多,在服务之前必须等待的业务流量就越多。但是,这不是问题,因为紧凑的SLA不需要丢包,优先级队列的延迟和抖动非常低。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
02-Dec-2013 |
初始版本 |