陳品華 盧周成
摘要:本文介紹中小企業如何利用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)?!奥龁ⅰ币竺繉CP會話中接收一方在確認封包(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).