Catalyst 6000上的QoS策略功能

发布时间:

Catalyst6000上的QoS策略功能
简介
网络中的服务质量(QoS)策略可以决定网络流量性能是否符合配置文件规定的要求(合同)是否将不符合要求的流量丢弃或者标记一个不同的差分服务代码DSCP值来执行约定的服务水平DSCP是对帧的QoS水平进行度量的标准)我们不能将策略和流量整形混为一谈。尽管策略和整形都需要确认流量是否按照配置文件(合同)规定运行,但是策略并不对流量采取缓存措施,因而发送时延不会受到影响。策略不对超出配置文件的数据包进行缓存处理,而是直接将这些流量丢弃或者将其标记为较低的QoS水平(DSCP降级标记)。与之相反,流量整形对超出档案标准的流量采取缓存处理,使得突发流量能够平缓,不过这会影响到时延和抖动。整形只能应用于输出流量接口,而策略则可同时应用于输入和输出接口。
在现有的Catalyst6000硬件上,策略只能应用于入局接口。Catalyst6000线路卡并不支持流量整形。要获得Cisco7600上线路卡光交换模块(OSM)以及FlexWan端口适配器上的流量整形支持信息,请参阅Cisco7600互联网路由器介绍
QoS策略参数
策略的设置通过定义策略器将它们应用于端口(基于端口的QoS或者VLAN(基VLANQoS)。每个策略器都为要求内和要求外的流量定义名称、类型、速率、突发速率以及采取的行动等。SupervisorEngineII上的策略还支持超额速率参数。有两种类型的策略器:微流(microflow)和集合(aggregate

Microflow微流策略器按数据流分别监控每个相应端口/VLAN上的流量。Aggregate集合策略器监控所有相应的端口/VLAN上的流量。
每种策略器都可应用于数个端口或者VLAN。数据流可以采用下述参数定义:源IP地址、目的IP地址、第4层协议(如UDP)、源端口号码以及目的端口号码等。与一套已定义参数相匹配的数据包都被视为属于相同的流(这里的流概念同Netflow交换技术中所采用的相同)。
例如,如果我们配置一个microflow微流策略器来将VLAN1VLAN3上的TFTP流量限制在1Mbps内,它就只允许VLAN1VLAN3上每条数据流的速率为1Mbps。换言之,如果在VLAN1上有3条数据流,而在VLAN3上有4条数据流,则这样每一条数据流允许的速率都是1Mbps如果我们配置一个aggregate集合策略器,它就会将VLAN1(全部数据流)和VLAN3(全部数据流)的总体TFTP流量速率限制为1Mbps

如果同时应用集合和微流策略器,QoS就会总是执行策略器所制定的最严重的行为。例如,如果一个策略器要求丢弃数据包,而另外一个策略器则指示数据包降级,那么数据包将会被丢弃。
默认状态下,微流策略器仅对被路由的(第3层)流量起作用。如果要对桥接的(第2层)流量也起作用,则需要启用桥接微流策略。在SupervisorEngineII上,即使针对于第3层的微流策略,也需要启动桥接微流策略。
策略是感知协议的,因此QoS访问控制表(ACL)或者带MAC地址ACL的策略映射永远不能对IP流量进行策略。所有的流量都被划分为3种类型:IPIPX其它
Catalyst6000中的策略可以根据“漏桶”概念来实施:与入局流量数据包对应的令牌都被置入一个桶中(每个令牌代表1位,从而大数据包比小数据包对应更多的令牌)在正常时间间隔内,一定数量的令牌数将从桶中取出并被发送。果桶中没有更多空间容纳输入的数据包,则数据包被视为超出配置文件范围而被丢弃或者根据配置的策略操作实行降级处理。

值得注意的是,从图中可以看到,流量在桶中并不会缓冲。实际流量根本不通过桶,桶只能用来决定数据包在配置文件内inprofile还是在配置文件外outofprofile)。
计算参数
多种参数控制令牌桶的行为:

速率定义在每个时间间隔内将有多少令牌取出。这样就能够有效地设置策略速率。低于速率的所有流量都被视为是符合配置要求的。
时间间隔定义令牌隔多长时间从桶内取出一次。间隔固定在0.00025秒,从而令牌每秒钟将从桶中取出4000次。时间间隔不能更改。

突发速率定义在任何一个时段内桶能够容纳的最大令牌数。为了维持规定的流量速率,突发速率的大小不应该低于速率与时间间隔的乘积。另外一种考虑就是最大尺寸的数据包也必须能够置入桶内。
因而您可以用以下公式来确定突发速率参数:
突发速率=(速率bps*0.00025(秒/时间间隔)(最大数据包大小(位)取两者中较大的值。
例如,我们可以计算需要在以太网上维持1Mbps速率所需的最小突发速率值。速率定义为1Mbps,而最大的以太网数据包为1518字节,这样公式变为:突发速率=1,000,000bps*0.000251518字节*8/字节)25012144两者中较大的值为12144,我们可将其折算为13Kbps注:CiscoIOS中,策略速率以bps定义,CatalystOS中的Kbps不同。此外,突发速率在CiscoIOS中以字节来定义,同CatalystOS中的千位(kilobits)不同。注:由于受硬件策略粒度的影响,实际速率和突发速率都应该折算为最接近的支持值。确认突发速率值不低于最大的数据包尺寸,否则所有大于最大突发速率尺寸的数据包都将被丢弃。
例如,如果用户想在CiscoIOS®中将突发速率设置为1518,则它将会被折算为1000字节,从而所有大于1000字节的帧都将被丢弃。解决方案是将突发速率配置为2000
在定义突发速率时,您需要考虑到这样的事实,那就是一些协议(如TCP)会针对丢包而采用流控制机制。例如,TCP将把每个要丢失的数据包的窗口缩小一半,相应地,当对某个速率进行策略时,有效的链路使用率就会低于配置的速率。可以增加突发速率从而实现更高的利用率。对这些流量来说,比较简单易行的方式就是将突发速率的大小增加一倍(在我们的例子中可以从13Kbits增加到26Kbits),监控性能,然后根据需要进行调整。
出于同样的原因,我们不推荐采用面向连接的流量来标定策略器的操作,因为它的性能通常比策略器所允许的要低。
策略操作
正如我们在简介中所提到的,策略器可以对超出配置规定的数据包采取两种措施:

丢弃数据包(在配置中采用drop参数)
将数据包降级为一个较低的DSCP(在配置中采用policed-dscp参数)

为了降级标记数据包,policedDSCPmap必须修改。默认的策略DSCP设置是将数据包重新标注到相同的DSCP上(此时不会发生降级)。
注:如果“超出配置文件规定”的数据包降级标定到某个DSCP,而该DSCP所映射的输出队列同初始的DSCP不同,此时可能有一些数据包会不按顺序发送。基于这种原因,如果订购的数据包很重要,则推荐将“超过配置文件规定”的数据包降级到这样的DSCP上:即与“符合配置文件规定”的数据包有相同输出队列DSCP
SupervisorEngineII上可以支持超额速率,有两种触发器可用:

当流量超出正常速率当流量超过超额速率
应用超额速率的一个例子是,将超出正常速率的数据包降级,而将超过超额速率的数据包丢弃。
Catalyst6000所支持的策略特性
当前的策略特性卡(PFC),转发引擎PFC1PFC2只支持入局(输入接口)策略。
Catalyst6000最多可支持63个微流策略器和1023个集合策略器。
采用SupervisorEngineIa,从CatalystOS5.31)版和CiscoIOS12.0(7版开始支持策略。注:SupervisorEngineIa制定策略时需要PFC子卡。采用SupervisorEngineII,从CatalystOS6.11)版和CiscoIOS12.1(5cEX版开始支持入局策略。SupervisorEngineII支持超额速率策略参数。在带分布式转发卡(DFC)的配置中,只支持基于端口的策略。此外,集合策略器也只能够以每个转发引擎(而非每个系统)为单位来对流量计数。DFCPFC都是转发引擎。如果线路卡上没有DFC,则可以采用PFC作为转发引擎。
CatalystOS上配置和监控策略功能
策略配置包括三个主要的步骤:
1.定义一个策略器:正常流量速率、超额速率(如果适用)、突发速率以及策略操作2.创建一个QoSACL来选择受策略的流量,并在此ACL上连接一个策略器3.QoSACL应用于必要的端口或者VLAN
下面考查以下例子:我们希望在端口2/8上对所有进入UDP端口的流量进行策略:

Catalyst6000
setqosenable!---激活QoS
setqospoliceraggregateudp_1mbpsrate1000burst13drop!---定义管理器;关于比率和字符组计算,请参阅计算参数setqosaclipudp_qos_portdscp0aggregateudp_1mbpsudpanyanyeq111
!---创建QoSACL以便选择流量,并将管理器连接到QoSACLcommitqosaclall!---编译QoSACL
setqosaclmapudp_qos_port2/8!---QoSACL映射到交换机端口
下一个例子基本相同,区别在于策略器连在VLAN上,端口2/8属于VLAN20注:端口QoS要更改为“基于VLAN”的模式,需要采用setportqos命令。策略器将评估配置给基于VLANQoSVLAN中所有端口的流量。
Catalyst6000
setqosenable!---激活QoS
setqospoliceraggregateudp_1mbpsrate1000burst13drop!---定义管理器;关于比率和字符组计算,请参阅计算参数setqosaclipudp_qos_vlandscp0aggregateudp_1mbpsudpanyanyeq111
!---创建QoSACL以便选择流量,并将管理器连接到QoSACLcommitqosaclall!---编译QoSACLL
setportqos2/8vlan-based!---为基于VLANQoS配置端口setqosaclmapudp_qos_vlan20
!---QoSACL映射到VLAN20

下一步,不是用DSCP32来丢弃超过配置文件限制的数据包,而是将其降级到0级的DSCP上(尽力而为级):
Catalyst6000
setqosenable!---激活QoS

setqospoliceraggregateudp_1mbpsrate1000burst13policed-dscp!---定义管理器;关于比率和字符组计算,请参阅计算参数
setqosaclipudp_qos_mdtrust-ipprecaggregateudp_1mbpsudpanyanyeq111dscp-field32
!---创建QoSACL以便选择流量,并将管理器连接到QoSACLcommitqosaclall!---编译QoSACL
setqospoliced-dscp-map32:0
!---修改控制的DSCP映射以便将DSCP32降至DSCP0setportqos2/8vlan-based!---为基于VLANQoS配置端口setqosaclmapudp_qos_md20!---QoSACL映射到VLAN20
采用shqosmapsruntimepoliced-dscp-map来查看当前策略的DSCP图。采用shqospolicerruntime来确认策略器的参数,并查看策略器连接到哪个QoSACL上。
注:采用supervisorEngineIIa,不可能对单个集合策略器进行策略统计。要查看每个系统的策略统计,可以使用下述命令:
Cat6k>(enableshqosstatisticsl3statsPacketsdroppedduetopolicing:1222086IPpacketswithToSchanged:27424IPpacketswithCoSchanged:3220Non-IPpacketswithCoSchanged:0
要检查微流策略统计,可以使用下述命令:Cat6k>(enableshmlsentryqosshort
Destination-IPSource-IPPortDstPrtSrcPrtUptimeAge
---------------------------------------------------------------
IPbridgedentries:239.77.77.77
192.168.10.200
UDP6363

00:22:0200:00:00
Stat-Pkts:165360Stat-Bytes:7606560Excd-Pkts:492240Stat-Bkts:1660239.3.3.300:00:00
Stat-Pkts:42372Stat-Bytes:1949112Excd-Pkts:126128

192.168.11.200
UDP
888
777
00:05:38

Stat-Bkts:1628
OnlyoutoftheprofileMLSentriesaredisplayedCat6k>(enable
在使用SupervisorEngineII时,采用shqosstatisticsaggregate-policer命令可以在策略器上逐个查看集合策略统计信息。
例如,有一个流量生成器同端口2/8相连,将17MbpsUDP流量发送到目的端111。我们希望策略器丢弃16/17的流量,从而只有1Mbps可以通过:Cat6k>(enableshqosstatisticsaggregate-policerudp_1mbpsQoSaggregate-policerstatistics:
AggregatepolicerAllowedpacketPacketsexceedPacketsexceedcountnormalrateexcessrate
----------------------------------------------------------------udp_1mbps58243997321089732108
Cat6k>(enableshqosstatisticsaggregate-policerudp_1mbpsQoSaggregate-policerstatistics:
AggregatepolicerAllowedpacketPacketsexceedPacketsexceedcount

normalrate582504
excessrate
9733198
----------------------------------------------------------------udp_1mbps
9733198
注意,在命令之间,允许通过的数据包增加到65,而超额数据包为1090,这意味着策略器丢弃了1090个数据包,而只有65个数据包通过。由于65/(1090+65=0.056或者说大约为1/17,因此策略器运行正常。[page]
配置和监控CiscoIOS中的策略功能
1.CiscoIOS中配置策略涉及下述步骤:2.定义一个策略器
3.创建一个ACL来选择策略的流量
4.定义等级映射、采用ACL和(或)DSCP/IP优先级来选择流量5.采用等级来定义业务策略,并将策略器应用于每个等级6.将业务策略应用于端口或者VLAN
我们下面考察和前面相同的例子,不过用的是CiscoIOS。例如,有一个流量生成器同端口2/8相连,将17MbpsUDP流量发送到目的端口111
Catalyst6000
mlsqos

!---激活QoS
mlsqosaggregate-policerudp_1mbps10000002000conform-actiontransmitexceed-actiondrop
!---定义管理器;关于比率和字符组计算,请参阅计算参数!---注意,由于硬件精度,字符组为2000而不是1518access-list111permitudpanyanyeq111!---定义ACL以便选择流量class-mapmatch-alludp_qosmatchaccess-group111!---定义要控制的流量级别。policy-mapudp_policyclassudp_qos
policeaggregateudp_1mbps
!---定义QoS策略,使管理器适用于流量级别。interfaceGigabitEthernet2/8switchport
service-policyinputudp_policy!---QoS策略应用于接口
CiscoIOS中有两种类型的集合策略器:named(指定的)和perinterface(按接口的)。named集合策略器将对应用该策略器的所有接口上的流量整体实施策略。上面的例子就是使用这个类型。而perinterface策略器同named略器不同,将对应用该策略器的每个接口分别进行策略。perinterface策略器在策略映射配置中定义。下面就是应用perinterface策略器的例子:
Catalyst6000
mlsqos!---激活QoS
access-list111permitudpanyanyeq111!---定义ACL以便选择流量class-mapmatch-alludp_qosmatchaccess-group111!---定义要控制的流量级别。policy-mapudp_policyclassudp_qos
!---定义QoS策略,使管理器适用于流量级别。police100000020002000conform-actiontransmitexceed-actiondrop
!---创建每接口管理器,并将其应用到流量级别。interfaceGigabitEthernet2/8switchport

service-policyinputudp_policy
!---QoS策略应用于接口

微流策略器在策略映射配置中定义,per-interface策略器相同。在下面的例子中,每个来自主机192.168.2.2的进入VLAN2的数据流都将通过策略限制到100Kbps。来自192.168.2.2的全部流量控制在500KbpsVLAN2包括接口fa4/11fa4/12
Catalyst6000
mlsqos!---激活QoS
access-list1permit192.168.2.2
!---定义访问列表,以便选择主机192.168.2.2的流量。class-mapmatch-allhost_2_2matchaccess-group1!---定义要控制的流量级别。policy-maphostclasshost_2_2!---定义QoS策略
policeflow1000002000conform-actiontransmitexceed-actiondrop
!---定义微流管理器;关于比率和字符组计算,请参阅计算参

police50000020002000conform-actiontransmitexceed-actiondrop
!---定义聚合管理器,以便限制从主机到500Kbps聚合的流量interfacefa4/11mlsqosvlan-basedinterfacefa4/12mlsqosvlan-based
!---为基于VLANQoS配置VLAN2的接口。interfacevlan2
service-policyinputhost!---QoS策略应用到VLAN2
要对策略功能进行监控,可以使用下述命令:
bratan#shmlsqosQoSisenabledglobally
MicroflowpolicingisenabledgloballyQoSglobalcounters:

Totalpackets:10779IPshortcutpackets:0
Packetsdroppedbypolicing:2110223IPpacketswithTOSchangedbypolicing:0IPpacketswithCOSchangedbypolicing:0Non-IPpacketswithCOSchangedbypolicing:0bratan#shmlsqosipgigabitEthernet2/8[In]Policymapisudp_policy[Out]Default.
QoSSummary[IP]:(*-sharedaggregates,Mod-switchmoduleIntModDirClass-mapDSCPAgIdTrustFlIdAgForward-PkAgPoliced-Pk--------------------------------------------------------------------Gi2/81Inudp_qos01*No
bratan#shmlsqosipgigabitEthernet2/8[In]Policymapisudp_policy[Out]Default.
QoSSummary[IP]:(*-sharedaggregates,Mod-switchmoduleIntModDirClass-mapDSCPAgIdTrustFlIdAgForward-PkAgPoliced-Pk-------------------------------------------------------------------Gi2/81Inudp_qos01*No
01277552134670
注意,允许的数据包已经增加到304,超额数据包为5068意味着策略器丢弃了5068个数据包,有304个得以通过。如果输入速率为17Mbps,则策略器将让该流量的1/17通过。对比丢弃的和转发的数据包,我们可以得到下述式子:
304/(304+50680.057或者约为1/17。由于硬件策略粒度的因素,可能还会有一些微小差别。
01274512129602
要进行微流策略统计,可采用shmlsipdetail命令:
Orion#shmlsipdetail
IPDestinationIPSourceProtocolL4PortsVlanXtagL3-protocol--------------+---------------+--------+-------------+----+----+-----------+
192.168.3.33192.168.2.2udp555/55501ip192.168.3.3192.168.2.2udp63/6301ip
[IN/OUT]PortsEncapsulationRW-VlanRW-MACSourceRW-MACDestinationBytes
--------------+-------------+-------+--------------+-----------------+------------+
Fa4/11-----ARPA30030.7137.10000000.3333.3333314548Fa4/11-----ARPA30030.7137.10000000.2222.2222314824
PacketsAgeLastSeenQoSPoliceCountThresholdLeak
------------+-----+---------+-----------+------------+---------+-----

------+
68383618:50:090x8034619762*2^53*2^068443618:50:090x8034669562*2^53*2^0
DropBucketUse-TblUse-Enable----+-------+-------+----------+YES1968NONOYES1937NONO
(策略计数区显示每个流被策略的数据包数量。)


Catalyst 6000上的QoS策略功能

相关推荐