QoS在Cisco 2600系列路由器的应用

2009-03-10 09:50陈品华卢周成
科技经济市场 2009年1期

陈品华 卢周成

摘要:本文介绍中小企业如何利用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).