需要QoS的一个很好的例子是VoIP流量。VoIP流量需要在一定的时间内发送到目的地,否则就会过时。因此,QoS应该优先考虑VoIP流量,以确保它在一定的时间限制内交付。要实现这一点,可以在Cisco IOS中使用高于FTP或HTTP流量的优先级对VoIP进行排队,并确保在出现拥塞时,FTP或HTTP流量在VoIP流量之前被删除。Cisco IOS有几种机制可以在路由器上做到这一点。参考表12-1思科IOS中的QoS功能和特性示例。
表12-1 QoS功能及相应的Cisco ios启用特性
QoS功能 | 思科IOS-Enabling特性 |
流量分类 | 访问控制列表匹配 |
交通标线 | IP优先级位 IP DSCP1 MPLS EXP2场 |
拥塞管理 | LLQ3 CBWFQ4 |
拥塞避免 | 或者说是五 |
流量调节 | 塑造和维持治安 |
1-DSCP = DiffServ码点 2-EXP =实验 3-LLQ =低延迟排队 4- CBWFQ =基于类的加权公平排队 5- WRED =加权随机早期检测 |
您可以在IP优先字段(3位)或在DiffServ Codepoint字段(DSCP)的6位中设置IP包的优先级。最初,IP报头中只保留了服务字段类型(TOS)的3位用于QoS。IP报头中可用于QoS的比特数后来随着DiffServ QoS的引入而增加到6。
不同的IP包
指图12-1刷新你对IP报头看起来像什么内存。
IP报头字段
图12-2说明你的TOS字段是如何划分的。
定义优先位的IP报头的TOS字节
QoS的优先位的使用在世界各地的许多网络中得到了广泛的应用。但是,优先位的缺点是只有3个存在,这意味着您只能有8个级别的服务。因此,IETF决定为QoS提供更多的位。4个TOS位被弃用,除了3个优先位之外,其中3个被分配到不同的QoS。DiffServ以六位元结束,提供了足够的QoS水准。图12-3其中TOS字节的位被用于区分服务您的节目。
定义每个RFC 2474的DSCP的IP报头的TOS字节
两种类型的DiffServ模型内转发类的定义如下:加速转发(EF)和确保转发(AF)。EF是一种低损失,低延迟,低抖动,有保证的带宽,端至端服务通过DiffServ域。AF定义通过DiffServ域转发保证不同的服务。四类AF的定义,每个有三个丢弃优先级。AF类标注为AFij,与i为1到4的类和j为1至3的丢弃优先级。六位DSCP字段的前三位定义类,接下来的两位定义丢弃优先级,和最后一位被保留。较高的一类内的丢弃优先级,越有可能该数据包是在拥塞发生时被丢弃,相对于其它分组具有较低丢弃优先级。四班为交通存在,并丢弃优先级有三个层次。AF23,例如,表示2级和丢弃优先级3中。表12-2显示了建议的值的四个确保转发类。
四个AF类表12-2建议值
的名字 | DSCP(二进制) | DSCP(十进制) |
AF11 | 001010 | 10 |
AF12 | 001100 | 12 |
AF13 | 001110 | 14 |
AF21 | 010010 | 18 |
AF22 | 010100 | 20 |
AF23 | 010110 | 22 |
AF31 | 011010 | 26 |
AF32 | 011100 | 28 |
AF33 | 011110 | 三十 |
AF41 | 100010 | 34 |
AF42 | 100100 | 36 |
AF43 | 100110 | 38 |
表12-3您显示四个AF类,每一类有三个丢弃优先级。
表12-3四个AF类和三个Drop优先级
降低优先级 | 1级 | 2级 | 3级 | 4级 |
低 | 001010 | 010010 | 011010 | 100010 |
媒介 | 001100 | 010100 | 011100 | 100100 |
高 | 001110 | 010110 | 011110 | 100110 |
如果您使用的EF,推荐DiffServ字段是101110(十进制46)。默认类为0或二进制000000。在Cisco IOS,则可以在配置与模块化QoS命令行界面(MQC)的QoS时,发现所有这些值。例12-1显示了如何配置路由器的路由器上的类地图匹配一定DSCP。
在一类实施例地图匹配12-1 DSCP
路由器(config-cmap) #匹配IP DSCP?codepoint值< 0 - 63 >差异化服务af11匹配数据包与af11 dscp (001010) af12匹配数据包与af12 dscp (001100) af13匹配数据包与af13 dscp (001110) af21匹配数据包与af21 dscp (010010) af22匹配数据包与af22 dscp (010100) af23匹配数据包与af23 dscp (010110) af31匹配数据包与af31 dscp (011010) af32匹配数据包与af32 dscp (011100) af33匹配数据包与af33 dscp (011110) af41匹配数据包与af41 dscp (100010) af42匹配数据包AF42dscp (100100) af43 Match packets with AF43 dscp (100110) cs1 Match packets with CS1(precedence 1) dscp (001000) cs2 Match packets with CS2(precedence 2) dscp (010000) cs3 Match packets with CS3(precedence 3) dscp (011000) cs4 Match packets with CS4(precedence 4) dscp (100000) cs5 Match packets with CS5(precedence 5) dscp (101000) cs6 Match packets with CS6(precedence 6) dscp (110000) cs7 Match packets with CS7(precedence 7) dscp (111000) default Match packets with default dscp (000000) ef Match packets with EF dscp (101110)
只需配置该DSCP值,就可以匹配64个DSCP值(0-63)中的任何一个。您还可以匹配AF类、类选择器(CS)(如果您只想匹配DSCP的前三位)、默认类和EF类。
DiffServ的MPLS数据包
记住标签的语法,从第2章,“MPLS体系结构”?图12-4是一个复习。
MPLS标签的语法
正如您所看到的,有三个EXP,即实验性的位。它们被称为实验性的,但它们实际上仅用于QoS。您可以像使用IP报头中的三个优先位一样使用这些位。如果您将这三位用于QoS,您可以将标签交换路径(LSP)称为E-LSP,这表示标签交换路由器(LSR)将使用EXP位来调度数据包并决定丢弃优先级。但是,当您使用MPLS时,您有另一个选项来为标记的包实现QoS。LSP是两个路由器之间通过网络的信号路径。您可以使用封包顶部的标签来暗示该封包的部分QoS。但是,对于LSP的两个端点之间的每个流量流,每个类都需要一个标签。因此,信令协议必须能够对相同的LSP或前缀发出不同的标签信号。这样的LSP称为L-LSP,表示标签隐含地包含部分QoS信息。 With an L-LSP, the EXP bits still hold part of the QoS, but only the drop precedence, whereas the label indicates the class. With an E-LSP, the EXP bits hold both the class and the drop precedence information. Because Cisco IOS implements only E-LSPs, this chapter looks only at E-LSPs when describing how to implement QoS in MPLS networks.
当LSR转发一个带标签的包时,它只需要在其标签转发表(LFIB)中查找顶部标签就可以决定将包转发到哪里。QoS处理也是如此。LSR只需要查看顶部标签的EXP位就可以确定如何处理这个包。请记住,QoS构成了流量标记、拥塞管理、拥塞避免和流量调节,您可以使用低延迟排队(LLQ)、基于类的加权公平排队(CBWFQ)、加权随机早期检测(WRED)、监控和整形来实现IP包。您可以使用相同的特性来实现基于标记包的EXP位的QoS。例如,WRED被修改为查看EXP位,以确定标记的包在排队时的丢弃优先级。在Cisco IOS中配置MPLS QoS的首选方法是通过服务命令行接口(MQC)的模块化质量。MQC是在路由器上配置不同QoS构建块的一种简单、直接的方法。
默认在Cisco IOS MPLS QoS的行为
在Cisco IOS上的IP数据包强加一个或多个标签时的默认行为是优先值复制到所有实行标签的EXP位。这就是所谓的TOS反映,因为没有关于默认的QoS变化。但是,如果使用DSCP字段的六位中,只有DSCP的前三位被复制到标签的EXP位。这导致第一MPLS QoS规则。
MPLS QoS规则1:默认情况下,在Cisco IOS,优先位或在IP DSCP字段的前三位头在入口LSR复制到所有实行标签的EXP位。
转发带标签的包稍微复杂一点。你必须区分两种情况:交换标签,一方面可能强加一个或多个标签,另一方面处理一个或多个标签。在使用LSR上的传出标签交换传入标签的情况下,EXP位将从传入标签复制到传出标签。当交换一个标签,然后强加一个或多个标签时,情况也是如此。EXP位的值从传入标签复制到交换的传出标签,也复制到随后推到交换标签上的标签。然而,在处置模式下转发一个有标签的包,意味着一个标签被弹出,是完全不同的。当路由器转发一个标记好的包并发出一个pop时,如果包没有标记,EXP位的值不会被复制到新暴露的标签或IP报头的IP优先字段(或者可能是DSCP字段)。这意味着,默认情况下,在Cisco IOS中,新暴露的标签的EXP位或新暴露的IP报头的IP优先/DSCP字段保持不变,并规定包的新QoS。这就引出了第二个、第三个和第四个MPLS QoS规则。
MPLS QoS规则2:默认情况下,在Cisco IOS中,输入顶部标签的EXP位被复制到交换后的输出标签和推送到该标签上的任何标签。
MPLS QoS规则3:默认情况下,在Cisco IOS中,输入的top标签的EXP位是不在弹出传入标签时复制到新暴露的标签。
MPLS QoS规则4:默认情况下,在Cisco IOS中,输入的top标签的EXP位是不复制到优先级比特或DSCP比特当标签堆栈被去除,IP报头变得暴露。
此外,当您使用MQC更改标记包的QoS,只有顶部的标签,并可能推标签接收新的价值,为EXP位。在标签堆栈顶部的标签下方的标签不为EXP位获得新的价值。优先位或DSCP位都不会改变。这意味着,当手动更改对某个LSR一个标记数据包的服务质量,该分组改变其服务质量的网络中的后来值的某个时候。即,当标签被弹出,进入的顶标签的EXP比特的值不被复制到新暴露的标签,以下MPLS QoS规则3.这意味着,该数据包的旧QoS值现在是活动的一次。这实际上经常发生,因为倒数第二跳弹出(PHP)是在Cisco IOS的默认行为。它发生在默认情况下在许多MPLS网络,是值得留意。如果你想保持数据包的新的QoS值,则需要配置Cisco IOS命令,以确保服务质量在处置时抄了下来。你会读到更多关于本章后面英寸这导致第五MPLS QoS规则。
MPLS QoS规则5:当您通过配置改变EXP位值,EXP位在比顶部的标签,该标签交换,或强加标签和优先级位或DSCP位在IP等标签头值保持不变。
MPLS的QoS规则4和5导致了QoS隧道成为可用的事实。这意味着IP包的QoS值通过MPLS网络传输,没有变化。
看看图12-5。你可以看到一个标签交换路由器(LSR)有两个接口。左侧接口为入接口,右边是出接口。一个IP数据包或标记的包进入左侧接口和叶右侧接口上的路由器。本章使用贯穿于当一个数据包经过路由器清晰显示EXP位的行为,这种简单的绘图。在各图中,IP包是在明确的矩形和标签是对IP数据包的顶部的一个灰色的矩形。在IP包中,QoS信息被示出为的DSCP值。每个标签还显示了EXP位值。