加权公平队列(WFQ)针对慢速链路(如串行链路)实施,以便为每种类型的流量提供公平处理。为了完成其工作,WFQ根据关联的第3层和第4层信息(IP地址、TCP端口等)将流量分类为不同的流。 您无需定义访问列表即可使此功能正常运行。使用WFQ时,低带宽流量的有效优先级高于高带宽流量。高带宽流量按分配的权重比例共享传输介质。
WFQ具有以下限制:
如果流量显着增加,WFQ无法调整,因为它不可扩展。
WFQ在高速接口(如ATM)上不可用。
为了解决WFQ的局限性,我们开发了一个新功能,即基于类的加权公平队列(CBWFQ)。与WFQ不同,CBWFQ允许您定义流量类。定义类后,即可应用参数。这些参数包括带宽和队列限制。
使用CBWFQ时,为类指定的权重将成为与类标准匹配的每个数据包的权重。此权重来自于您分配到类的带宽。然后,WFQ将应用于这些类,而不是应用于流本身。类可以包括多个流。
以下是7200、3600和2600路由器上每VC CBWFQ可用性的摘要:
7200:使用PA-A3的Cisco IOS®版本12.0(5)T、12.0(5)XE、12.1(1)、12.1(1)T、12.1(1)E及更高版本。
7200,带NSE:Cisco IOS 12.1(7)E及更高版本。
7200,带NSE-1服务加速器:思科IOS版本12.2(4)B1。
带NM-1A-T3/E3模块的2600/3600在Cisco IOS版本12.1(5)T及更高版本上支持LLQ/CBWFQ。
带DS3/E3网络模块的2600/3600:思科IOS版本12.1(2)T。
注意:必须使用思科快速转发(CEF)交换功能,因为CBWFQ仅监控CEF交换的数据包。
本文档没有任何特定的要求。
本文档中的信息基于以下硬件版本:
Cisco 7200、3600 和 2600 系列路由器
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
本部分提供有关如何配置本文档所述功能的信息。
注:要查找有关本文档中使用的命令的其他信息,请使用命令查找工具 (仅注册客户)。
本文档使用以下网络设置:
1/130是在7200和路由器A之间在PVC两端分配的VPI/VCI值。
流量生成器连接到接口Fast-Ethernet 3/0。
7200运行Cisco IOS版本12.0(5)T。
路由器A用作接收器设备进行测试。
配置在7200上执行,但在2600/3600上类似。
以下是实施CBWFQ所需的7200配置:
7200 |
---|
class-map ixia match input-interface FastEthernet3/0 class-map loopbacks match access-group 102 ! policy-map mypol class ixia bandwidth 40000 queue-limit 40 class loopbacks bandwidth 10000 class class-default fair-queue ! interface ATM2/0.130 point-to-point ip address 14.0.0.2 255.0.0.0 no ip directed-broadcast pvc 1/130 service-policy output mypol vbr-nrt 100000 75000 broadcast encapsulation aal5mux ip ! access-list 102 permit ip host 10.0.0.1 host 11.0.0.1 |
以下是有关配置的一些注释:
类映射对流量进行分类并分配权重。分类参数和类映射在同一位置定义。在这种情况下,一个类应用于快速以太网3/0(流量生成器的流量)上的所有传入流量。 另一个类与环回(在7200和路由器A上定义)之间的流量相关。
定义分类参数后,可以使用策略映射将流量参数应用到这些分类流。在这种情况下,流量生成器的流被“分配”40 Mbps的带宽和40个数据包的队列深度。环回之间的流量分配了10 Mbps的带宽。
队列深度是在发生丢包之前可为特定类存储的数据包数。默认值为64(也是最大队列深度)。
为每个类定义流量参数后,使用以下命令在VC基础上应用CBWFQ:service-policy [input|output] policy-map-name。
与定义的类映射之一不匹配的流量将分配在策略映射中定义的默认类映射(类默认)。所有未分类流量将应用此默认类下定义的参数。在这种情况下,会配置正常加权公平队列。
对于此示例配置,CBWFQ应用于VC,但也可用于PVC捆绑。此外,CBWFQ可以与加权随机早期丢弃(WRED)关联,作为丢弃机制(当达到队列限制时)。
重要信息:
在执行本节中的配置任务之前,必须先创建用于区分虚电路上的流量的类,然后定义策略映射以包括这些类。您可以为路由器上定义的任意数量的类配置类策略 — 最多64个。但是,分配的VC带宽总量(策略映射中包含的所有类)不得超过VC可用带宽的75%。
由于CBWFQ提供最低带宽保证,因此您只能将CBWFQ应用于UBR和UBR+以外的服务类别的VC。
不能将每VC WFQ和CBWFQ应用于UBR和UBR+ VC,因为这两种服务类都是不保证最低带宽的尽力而为类。为VC启用CBWFQ时,所有配置为服务策略一部分的类都安装在公平队列系统中。
如果将服务策略应用到ATM VC,且该策略包含未启用并行快速转发(PXF)的功能,则数据包将被传送到下一个较低的交换路径。执行show pxf acc summ命令,并查找由于“输出功能”而导致的punts的递增值。
router#show pxf acc sum Pkts Dropped RP Processed Ignored Total 242 328395045 0 10 second averages: PXF complex busy: 28% PXF read pipeline full: 0% PXF Statistic: Packets RP -> PXF: switch ip: 0 switch raw: 556612940 qos fastsend: 0 qos enqueue: 0 Total: 556612940 Packets PXF -> RP: qos pkts: 0 fast pkts: 228217649 drops: total 242 " no route : 242 punts: total 328395045 " not IP : 597 " IP options : 676 " CEF no adjacency : 186770 " CEF receive : 265306 " output feature : 327916956
在运行Cisco IOS 12.1(5)E、12.1(5)T及更高版本的Cisco 7200路由器上,我们可以将映射类分组以形成更复杂的类映射。此外,我们可以将逻辑操作与类映射参数关联(以确定流量是否与类匹配)。
下面我们来了解一下以下类映射,以阐明此概念:
高级CBWFQ配置 |
---|
class-map match-all ixia description traffic from Ixia match input-interface FastEthernet1/0 class-map match-all ftp1 description ftp traffic initiated by the traffic generator match class-map ixia match class-map ftp2 class-map match-all ftp2 match access-group 103 class-map match-any test match access-group 102 match input-interface Ethernet0/0 ! access-list 103 permit tcp any any eq ftp ! access-list 102 permit ip host 10.1.1.1 any |
match-all和match-any之间的区别如下:
match-all:如果已验证所有相关条件,则流与类映射关联。
match-any表示:如果验证了任何关联条件(不一定是所有条件),则流与类映射关联。
我们可以在此看到,类映射可以包含针对其他已配置类映射的测试。在这种情况下,如果流与类映射ixia和类映射ftp2下定义的所有条件匹配,则流与ftp1关联。
本部分所提供的信息可用于确认您的配置是否正常工作。
命令输出解释程序工具(仅限注册用户)支持某些 show 命令,使用此工具可以查看对 show 命令输出的分析。
show policy-map interface atm x/y[.z] — 此命令允许您查看每个队列的统计信息,如丢弃。它可用于监控使用思科的模块化服务质量(QoS)命令行界面(CLI)(MQC)创建的服务策略的结果。 有关如何解释此命令输出的更多详细信息,请参阅了解show policy-map interface Output中的数据包计数器。
7200#show policy-map interface atm 2/0.130 ATM2/0.130: VC 1/130 - output : mypol Weighted Fair Queueing Class ixia Output Queue: Conversation 264 Bandwidth 40000 (kbps) Packets Matched 0 Max Threshold 40(packets) (discards/tail drops) 0/0 Class loopbacks Output Queue: Conversation 265 Bandwidth 10000 (kbps) Packets Matched 0 Max Threshold 64(packets) (discards/tail drops) 0/0 Class class-default Output Queue: Conversation 266 Bandwidth 0 (kbps) Packets Matched 0 Max Threshold 64 (packets) (discards/tail drops) 0/0
注:请参阅以下有关两种类型的丢弃的说明:
丢弃:此队列中的总丢弃数。
尾部丢弃:仅当另一个队列具有WFQ序列号“较低”的传入数据包且WFQ系统达到最大队列限制数据包数时,才会从此队列中丢弃。
show policy-map interface atm x/y[.z] vc [vcd | vpi/vci] — 此命令为特定VC提供更精细的粒度。
7200#show policy-map interface atm 2/0.130 vc 1/130 ATM2/0.130: VC 1/130 - output : mypol Weighted Fair Queueing Class ixia Output Queue: Conversation 264 Bandwidth 40000 (kbps) Packets Matched 0 Max Threshold 40(packets) (discards/tail drops) 0/0 Class loopbacks Output Queue: Conversation 265 Bandwidth 10000 (kbps) Packets Matched 0 Max Threshold 64(packets) (discards/tail drops) 0/0 Class class-default Output Queue: Conversation 266 Bandwidth 0 (kbps) Packets Matched 0 Max Threshold 64 (packets) (discards/tail drops) 0/0
您还可以使用其他命令(如show class-map或show policy-map class)获取有关映射类的更详细信息。
目前没有针对此配置的故障排除信息。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
12-Dec-2005 |
初始版本 |