陈品华 卢周成
摘要:本文介绍中小企业如何利用Cisco 2600系列路由器实现QoS(Quality of Service,服务质量),解释具体实现中的一些关键技术,并给出了一个配置实例。
关键词:网络阻塞; QoS; 服务模型; WRED; CBWFQ;CAR
1QoS与网络阻塞
目前,视频会议、办公室自动化、数据库、ERP、CRM等关键业务应用与日俱增。与此同时,这些花费IT预算一大部分的信息流应用却要与其它相对无关紧要的应用如电子邮件和网上浏览等争夺有限的广域网资源,网络阻塞已经成为我们日常都要面对的非常头痛问题。网络阻塞主要由以下几个原因引起:
1.1局域网与广域网接合部吞吐容量的巨大落差。
今天局域网所普遍采用的局域以太网技术有100兆、千兆等,而广域网采用DDN、帧中继、ISDN、MPLS或卫星等传输技术,传输管道带宽通常在10兆以下。在局域网与广域网接合部上吞吐量的如此巨大差异,通信瓶颈自然形成。
1.2信息源发送数据的随机性。
另一个令阻塞产生的主因就是信息发送的时间也不受控制。信息源,无论是服务器或客户机,在收到对方信息发送请求后就会向网络发送对方所需的数据。信息源在这时是不会关心或顾及网络是否有资源去处理正在被发送的数据量,而是先发了再说。
1.3 TCP的慢启。
为了使每一项传输任务能尽早完成,TCP协议具有一种与生俱来的流量控制特性叫“慢启”(Slow Start)。“慢启”要求每对TCP会话中接收一方在确认封包(Acknowledgement Packet)中向发送方广播一个比上次交易(Transaction)更大尺寸的窗口(Window),使发送方在下一轮的发送中不需等待确认便发送更大量的信息。这种机制的原意是要提高传输效率好让任务尽早完成。但是,在带宽供求失衡时,这种机制让发送一方不顾后果地向对方发送越来越大量的数据直至数据被堵塞或干脆丢弃为止,又从头再来。当网络中每一对TCP会话都以同样的贪婪方式作传输时,将给网络瓶颈带来极大的压力,会有很多信息包会被路由器无情地扔掉,引起数据包的大量重发。
1.4信息包在路由器上漫长的等待和迷失。
路由器是数据转发枢纽,当从局域网转发向广域网的信息流总量超过广域网传输管道容量时,路由器只能让来不及转发的信息包排队。当路由器里队列过长,路由器上不同的信息包丢弃机制就会起动,大量的信息包就会被抛弃,导致严重的TCP重发。
综上所述,在今天的多业务企业网中,需要一种行之有效的QoS技术以解决网络阻塞问题,尽量保障企业关键应用的畅通无阻,控制广域网资源的巨大开销。
2QoS与Cisco 2600系列路由器
QoS含义很简单,就是在有限的广域资源的前提下,为应用提供优质服务质量,让关键应用以最低的响应时延通过网络而不受时间、用户数变化和网络突发事件因素的影响。通俗地讲,在带宽还不充裕的情况下可以缓解一下各种服务流量占用的矛盾,如果带宽足够的话,QoS是没有任何使用价值的。[2]
Cisco 2600模块化路由器系列是Cisco公司低端路由器的经典产品,以其通用性、集成性和强大功能在众多企业中得以广泛应用。
Cisco 2600模块化路由器系列的IOS软件支持关键的QoS功能,包括加权随机早期检测(WRED)、CBWFQ队列技术、承诺访问速率(CAR)等。
因此,对于众多拥有Cisco2600系列路由器的中小企业来说,可以直接在Cisco路由器上实施QoS,以保证关键业务的基本QoS需求。
3几个关键技术
3.1服务模型
QoS的服务模型的概念就是采用通过什么模式全局实现服务质量保证,一共分成三种[3]。
(1)Best-Effort service尽力而为服务模型
(2)Integrated service 综合服务模型 简称IntServ
(3)Differentiated service区分服务模型 简称 DiffServ
3.1.1 Best-Effort服务模型
Best-Effort 是一个单一的服务模型,也是最简单的服务模型。应用程序可以在任何时候发出任意数量的报文,而且不需要事先获得批准,也不需要通知网络。对 Best-Effort 服务,网络尽最大的可能性来发送报文,但对时延、可靠性等性能不提供任何保证。Best-Effort 服务是现在 Internet 的缺省服务模型,它适用于绝大多数网络应用,如 FTP、E-Mail 等。其实 best-effort 并非是什么QoS,而是互联网的简单数据传输方式,有什么传什么,阻塞也就阻塞了,丢弃也就丢弃了。
3.1.2 IntServ服务模型
IntServ是一个集成服务模型,这种服务模型在发送报文前,需要向网络申请特定的服务。应用程序首先通知网络自己的流量参数和需要的特定服务质量请求,包括带宽、时延等。应用程序一般在收到网络的确认信息,即确认网络已经为这个应用程序的报文预留了资源后,才开始发送报文,同时应用程序发出的报文应该控制在流量参数描述的范围以内。
IntServ 有着严重的缺陷,所以这种模型在1994年推出之后就没有获得任何规模的商业应用。
3.1.3 DiffServ服务模型
DiffServ 是一个多服务模型,它可以满足不同的 QoS 需求,在实际中得到广泛应用。与 IntServ 不同,它不需要使用 RSVP,即应用程序在发出报文前不需要通知路由器为其预留资源,对DiffServ 服务模型,网络不需要为每个流维护状态,它根据每个报文指定的 QoS 来提供特定的服务,可以用不同的方法来指定报文的 QoS,如IP报文的优先级位(IP Precedence)、DSCP(Differentiated Services Code Point,区分服务代码点)、报文的源地址和目的地址等,网络通过这些信息来进行报文的分类、流量整形、流量监管和队列调度。
3.2分类与标记
通常于网络边界处对报文进行分类时,同时标记IP先级和 DSCP。这样,在网络的内部就可以简单地使用IP优先级或 DSCP作为分类的标准,而队列技术如CBWFQ就可以使用这个优先级来对报文进行不同的处理。
利用NBAR(基于网络的应用程序识别)可以对使用动态分配TCP/UDP端口号的应用程序和HTTP流量等进行分类。
标记在Frame中和packet中本身就存在,Frame中存在 CoS(服务类别)字段,packet中则使用DSCP(区分服务代码点)。
对于CoS,IEEE802.3Q的Frame中有三个bit定义服务级别,一共有6个服务级别可以使用;对于DSCP,定义了0~63一共64个优先级可以使用。
分类是没有范围限制的,也就是说我们可以对数据进行灵活的分类,比如说把某一个源IP到目的IP的流量优先级进行更改DSCP的操作。
CoS 和 DSCP 彼此匹配时的对应关系如下表。
3.3 CBWFQ队列技术
QoS的策略主要通过队列技术体现出来,队列技术的原理就是使报文在路由器中按一定的策略暂时缓存到队列中,然后再按一定的调度策略把报文从队列中并取出在接口上发送出去。
CBWFQ(Class Based Weighted Fair Queuing,基于类的加权公平队列),首先根据IP优先级、DSCP或者输入接口的IP数据流等规则来对报文进行分类,让不同类别的报文进入不同的队列,对于不匹配任何类别的报文将被送入系统定义的缺省类。
3.4 WRED
RED(Random Early Detection,随机早期检测)可以用来作为一种在网络的带宽瓶颈处防止拥塞问题的回避机制。WRED(Weighted Random Early Detection,加权随机早期检测)是RED的Cisco实现,通过IP优先权级别决定的加权计算机与RED算法结合起来。
WRED功能提供一个统计工具来确保有效的链路利用率,当输出的缓冲区到达警戒线时,分组将被随机选择以决定是否丢包。在最小阈值下,没有数据包被丢弃;在阈值之上,所有数据包被丢弃。当缓冲区在两个阈值之间,丢弃的速率是平均队列长度的一个函数。平均队列长度是整个运行时间里的平均值。因为数据被丢弃的随机性,所有流中的数据包在不同的时间被丢弃,这样防止了经常伴随尾部丢弃一起出现的“全局同步”现象。
3.5承诺访问速率CAR
流量策略(Traffic Policing)的典型作用是限制进入某一网络的某一连接的流量与突发(当然,限制发出也是可以的),在报文满足一定的条件时,如某个连接的报文流量过大,监管就可以对该报文采取不同的处理动作例如丢弃报文或重新设置报文的优先级等, 通常的做法是使用CAR(CommittedAccessRate,承诺访问速率)来限制某类报文的流量例如限制HTTP报文不能占用超过50%的网络带宽。
CAR利用令牌桶(Token Bucket, TB)进行流量控制。首先根据预先设置的匹配规则来对报文进行分类,如果是没有规定流量特性的报文就直接继续发送,并不需要经过令牌桶的处理;如果是需要进行流量控制的报文,则会进入令牌桶中进行处理,如果令牌桶中有足够的令牌可以用来发送报文,则允许报文通过,报文可以被继续发送下去;如果令牌桶中的令牌不满足报文的发送条件则报文被丢弃,这样就可以对某类报文的流量进行控制。
4QoS配置实例
在class-map中High_PRI类采用NBAR匹配实时性较高的应用,如:realaudio、streamwork、telnet、Http等。Low_PRI类采用NBAR匹配实时性不强的应用,如:ftp、pop3、smtp等。
在policy-map中针对不同的class,分别采用CBWFQ、WRED策略。在S 0/0串口上采用Input CAR策略。对进入S 0/0串口的流量进行整形。
Current configuration : 3568 bytes
!
!
version 12.2
service timestamps debug datetime
service timestamps log datetime
service password-encryption
!
hostname xxxxxx
!
enable secret a $1$uxsPt#/Uyt
!
clock timezone China 8
ip subnet-zero
no ip source-route
ip cef
!
!
ip name-server x.x.x.x
!
no ip bootp server
!
class-map match-any High_PRI //分类,定义匹配列表
match protocol http //NBAR匹配http协议
match protocol realaudio
match protocol streamwork
match protocol telnet
class-map match-any Low_PRI
match protocol ftp
match protocol imap
match protocol pop3
match protocol smtp
!
policy-map QoS_policy_map //定义QoS策略
class High_PRI
bandwidth percent 50//定义保留的带宽
random-detect//启用WRED
random-detect exponential-weighting-constant 4
police cir 2000000 bc 10000 be 10000//使用令牌桶算法进行限速
conform-action transmit
exceed-action transmit
class Low_PRI
bandwidth percent 25
random-detect
random-detect exponential-weighting-constant 4
police cir 2000000 bc 2000 be 2000
conform-action transmit
exceed-action drop
!
!interface FastEthernet0/0
ip address 192.168.0.1 255.255.255.0
ip address 192.168.1.1 255.255.255.0 secondary
ip verify unicast reverse-path
ip nat inside
ip route-cache same-interface
ip route-cache policy
ip policy route-map QoS
duplex auto
speed auto
no cdp enable
!
interface Serial0/0
bandwidth 2048
ip address x.x.x.x 255.255.255.252
ip verify unicast reverse-path
no ip proxy-arp
ip nat outside
rate-limit input 2000000 20000 20000 conform-action transmit exceed-action drop
ip route-cache policy
service-policy output QoS_policy_map //在接口上执行
no cdp enable
!
ip nat inside source list 10 interface Serial0/0 overload
ip classless
ip route 0.0.0.0 0.0.0.0 x.x.x.x
ip route 192.168.0.0 255.255.255.0 192.168.1.1
ip route 192.168.1.0 255.255.255.0 192.168.0.1
no ip http server
no ip pim bidir-enable
!
line con 0
exec-timeout 0 0
line aux 0
line vty 0 4
password 7 ddiEkdi974DIExiekVIE
login
!
end
5结束语
随着网络上的应用类型日益增多,为了保障主要应用的良好运作,必然要在网络上进行流量控制。在企业网广泛使用的Cisco路由器上实现QoS,其特点是成本低、实施方便,这对中小型企业来说,是一种很好的选择。当然,如果有足够的预算,可以选择专用的网络流量控制产品(如Packeteer PacketShaper?),这类产品功能强大,但是价格十分昂贵。
参考文献:
[1](美)David Hucaby等著,张辉译. Cisco现场手册:路由器配置.北京:人民邮电出版社, 2002.
[2]Mike Flannagan and Richard Froom, Cisco Catalyst QoS: Quality of Service in Campus Networks, by Cisco Press, 2003.
[3]弗拉纳根编著.Cisco Catalyst Qos—园区网中的服务质量.北京:人民邮电出版社,2004.
[4]希尔编著.Cisco完全手册,北京:电子工业出版社,2006.
[5]高纪明,谢铁兵,侯自强.宽带QoS路由器体系结构关键问题分析[J].计算机工程与应用,2003.
[6]赵佳玉,鲍慧.IP网络的QoS实现技术[J].电力系统通信,2004(12).
[7]王西锋,张晓孪.IP网络实现QOS的技术研究[J].电脑学习,2006(01).
[8]王勇智,刘利强.下一代因特网QoS路由机制的研究[J].计算机技术与发展,2006(04).
[9]杨兆春.浅谈路由器qos技术[J]科技信息,2006(12).