關(guān)鍵業(yè)務服務保證技術(shù)QoS理論和實踐
什么是QoS
QoS(Quality of Service,服務質(zhì)量)是指管理數(shù)據(jù)流量以減少網(wǎng)絡上的數(shù)據(jù)包丟失、延遲和抖動的服務保證技術(shù)。QoS通過為網(wǎng)絡上特定類型的數(shù)據(jù)設置差異的優(yōu)先級來控制和管理網(wǎng)絡資源。如果沒有QoS,網(wǎng)絡數(shù)據(jù)可能變得雜亂無章,在網(wǎng)絡帶寬阻塞情況下,數(shù)據(jù)的完整性和安全性有可能受到損壞,甚至會出現(xiàn)網(wǎng)絡完全中斷情況。QoS技術(shù)本身不會給網(wǎng)絡增加帶寬,而是在網(wǎng)絡中有限的帶寬資源下,如何平衡地在網(wǎng)絡中為各種業(yè)務分配帶寬,針對各種業(yè)務流量的業(yè)務價值需求,為其提供服務質(zhì)量保證。換句話說,網(wǎng)絡在一定時間內(nèi)只能傳輸這么多信息。因此,QoS 工具以某種方式對數(shù)據(jù)包進行優(yōu)先級排序,以確保在固定時間內(nèi)使用帶寬來提供可能的最佳服務。
QoS好處
QoS 它保證企業(yè)網(wǎng)絡中運行的應用程序的可用性,通過部署QoS來滿足關(guān)鍵業(yè)務、實時語音、視頻等敏感應用的流量要求,使網(wǎng)絡提供安全、高效的數(shù)據(jù)傳輸,并防止因數(shù)據(jù)包丟失、延遲、抖動而導致的質(zhì)量下降。通過部署QoS讓網(wǎng)絡現(xiàn)有帶寬資源得到有效合理利用,而不是一味的投入成本去升級網(wǎng)絡基礎設施來擴展網(wǎng)絡帶寬。具體的好處包括:關(guān)鍵業(yè)務應用程序可以得到它所需要的資源、網(wǎng)絡管理員可以更好地管理網(wǎng)絡中的流量、企業(yè)消除升級基礎設施的需要來降低成本、用戶的體驗得到改善。
QoS通常運用場景
企業(yè)的廣域網(wǎng)通過租用運營商專線連接總部與各地分支機構(gòu),并配備冗余線路來提高網(wǎng)絡可用性,由于運營商專線普遍采用帶寬計價模式,所以廣域網(wǎng)日常運營成本高昂。同時根據(jù)業(yè)務管理需要,企業(yè)一般會對廣域網(wǎng)承載的流量進行管理和劃分,一般會劃分為語音、視頻、生產(chǎn)、辦公、測試、大數(shù)據(jù)傳輸?shù)榷鄠€類似類型。由于廣域網(wǎng)不同流量的業(yè)務價值不同,網(wǎng)絡管控的要求不同,流量特點各異,對延時和帶寬要求也各不相同;如何能夠在廣域網(wǎng)線路上合理的規(guī)劃和分配線路資源,這時就需要使用QoS進行針對性的業(yè)務保障和管控。
QoS度量參數(shù)
企業(yè)可以通過使用多個參數(shù)來定量測量,為關(guān)鍵業(yè)務提供服務保證,使其達到預期的服務水平,參數(shù)包括如下:
?丟包率:這是數(shù)據(jù)包在網(wǎng)絡傳輸過程中丟失報文的百分比,當網(wǎng)絡鏈路發(fā)生擁塞并且路由器和交換機開始丟棄數(shù)據(jù)包時,就產(chǎn)生了丟包率。當隊列或等待發(fā)送的數(shù)據(jù)包溢出時,數(shù)據(jù)包被丟棄。數(shù)據(jù)包如果在實時通信(例如語音或視頻通話)期間丟失,語音可能會出現(xiàn)不清晰、不連貫,視頻可能會出現(xiàn)卡頓、失幀等。
?抖動:這是網(wǎng)絡擁塞、定時漂移和路由更改的結(jié)果。過多的抖動會降低語音和視頻通信的質(zhì)量。
?延遲:這是數(shù)據(jù)包從源到目的地所需的時間,延遲應盡可能的小,如果IP語音呼叫有大量延遲,用戶可能會感覺到回聲和重疊音頻情況。
?帶寬:這是網(wǎng)絡通信鏈路在給定時間內(nèi)將最大量的數(shù)據(jù)從一個點傳輸?shù)搅硪粋€點的能力。QoS 通過管理帶寬和為具有更嚴格性能要求的高優(yōu)先級應用程序提供比其他應用程序更多的資源來優(yōu)化網(wǎng)絡性能。
?平均意見得分 ( MOS ): 這是使用五分制對語音質(zhì)量進行評級的指標,五分表示最高質(zhì)量。
QoS三種服務模型
網(wǎng)絡應用都是端到端的通信,兩個主機進行通信,中間可能要跨越多個物理網(wǎng)絡,經(jīng)過多個路由器,要實現(xiàn)端到端的QoS,就必須從全局考慮。QoS的服務模型就是研究采用什么模式實現(xiàn)全局的服務質(zhì)量保證。
?盡力而為服務模型(Best-Effort):最簡單的QoS服務模型,網(wǎng)絡中所有數(shù)據(jù)包都是相同的優(yōu)先級,網(wǎng)絡盡最大努力來發(fā)送報文,但并不保證數(shù)據(jù)包的交付;當網(wǎng)絡中未配置 QoS 策略或基礎設施不支持 QoS 時,業(yè)務流量將在 Best Effort中傳輸。
?綜合服務 (IntServ):IntServ模型是指應用程序在發(fā)送報文前,需要通過信令(signaling)向網(wǎng)絡描述它的流量參數(shù),申請?zhí)囟ǖ腝oS服務。IntServ模式是在網(wǎng)絡上的特定路徑保留帶寬。應用程序向網(wǎng)絡請求資源預留,網(wǎng)絡設備監(jiān)控數(shù)據(jù)包流以確保網(wǎng)絡資源可以交付數(shù)據(jù)包。實施 IntServ 需要支持 IntServ 的路由器,并使用資源預留協(xié)議 ( RSVP ) 進行網(wǎng)絡資源預留。但IntServ可擴展性有限,對網(wǎng)絡資源消耗大。
?差異化服務 ( DiffServ ):DiffServ模型的是將網(wǎng)絡中的流量分成多個類,每個類享受不同的處理,尤其是網(wǎng)絡出現(xiàn)擁塞時不同的類會享受不同的優(yōu)先處理,從而得到不同的丟棄率、時延以及時延抖動。例如,可以為語音流量分配比其他類型流量更高的優(yōu)先級,使用差分服務代碼點 (DSCP) 為數(shù)據(jù)包分配優(yōu)先級以進行分類。與Intserv模型相比,DiffServ模型不需要信令。在DiffServ模型中,應用程序發(fā)出報文前,不需要預先向網(wǎng)絡提出資源申請,而是通過設置IP報文頭部的QoS參數(shù)信息,來告知網(wǎng)絡節(jié)點它的QoS需求。網(wǎng)絡不需要為每個流維護狀態(tài),而是根據(jù)每個報文流指定的QoS參數(shù)信息來提供服務,對報文的服務等級劃分,有差別地進行流量控制和轉(zhuǎn)發(fā),提供端到端的QoS保證。
QoS機制
某些 QoS 機制可以管理數(shù)據(jù)流量質(zhì)量并維護 SLA 中指定的 QoS 要求。QoS 機制屬于特定類別,具體取決于它們在管理網(wǎng)絡中所扮演的角色。
?分類和標記:區(qū)分應用程序并將數(shù)據(jù)包分類為不同的流量類型,將每個數(shù)據(jù)包指示為網(wǎng)絡類別的成員,識別流量并對其進行標記,以確保其他網(wǎng)絡設備可以識別并確定其優(yōu)先級。分類和標記在路由器、交換機和接入點等網(wǎng)絡設備上實現(xiàn),一般在網(wǎng)絡設備入方向配置。
?擁塞管理:使用數(shù)據(jù)包分類和標記來確定將數(shù)據(jù)包放入哪個隊列,擁塞管理工具包括優(yōu)先級隊列、先進先出和低延遲隊列。
?擁塞避免:監(jiān)控網(wǎng)絡流量的擁塞情況,并在發(fā)生擁塞時丟棄低優(yōu)先級的數(shù)據(jù)包。擁塞避免包括加權(quán)隨機檢測(WRED)和隨機早期檢測(RED),其中WRED為丟棄低優(yōu)先級數(shù)據(jù)流以保護高優(yōu)先級數(shù)據(jù)免受網(wǎng)絡擁塞的影響。
?流量整形:與擁塞避免類似,區(qū)別于將超額流量排入緩沖區(qū)而不是完全丟棄它們。流量整形一般優(yōu)先考慮實時應用程序而不是相對于時間敏感度較低的應用程序,例如電子郵件和消息傳遞。流量整形工具包括緩沖區(qū)、通用流量整形和幀中繼流量整形。
QoS部署位置及方向
針對限速策略,應該盡可能的部署在流量始發(fā)地最近的入方向。針對保障策略,QoS應部署在流量出接口的出方向。對于雙向流量,需要在出方向線路的兩端設備分別部署QoS;對于單向數(shù)據(jù)傳輸流量,可僅在數(shù)據(jù)傳輸出口方向部署QoS。
流量分類基本原則
QoS分為保障類和限制類。對關(guān)鍵、重要業(yè)務流量,對時延敏感的重要流量,應使用保障類隊列,即在鏈路流量擁塞時,保障隊列中的流量可在一定限度內(nèi)優(yōu)先轉(zhuǎn)發(fā)。流量大重要性高的業(yè)務應對其進行滿足業(yè)務需求帶寬保證加限制。流量大且重要性低的業(yè)務流量應對其進行限制,以避免其對非保障隊列里的其他流量造成影響。
常見QoS類型
?優(yōu)先級隊列(PQ)會先服務高優(yōu)先級的隊列,高優(yōu)先級子隊列里沒有數(shù)據(jù)后,再服務中等優(yōu)先級子隊列,依次類推。如果PQ正在服務中等優(yōu)先級子隊列,但是高優(yōu)先級里又來了數(shù)據(jù)包,則PQ會中斷中等優(yōu)先級子隊列的服務,轉(zhuǎn)而服務高優(yōu)先級子隊列。每一個子隊列都有一個最大隊列深度,如果達到了最大隊列深度,則進行尾丟棄。PQ的最大缺點是低優(yōu)先級隊列會被“餓死”,因為只有高優(yōu)先級隊列里有數(shù)據(jù),PQ就不會服務低優(yōu)先級隊列。因此在流量簡單且優(yōu)先級明確的情況下,可以謹慎使用此種方式;在復雜流量線路上應盡量避免使用PQ,若需要使用PQ可以結(jié)合限速來保證其他隊列流量的傳輸。
?基于類的加權(quán)公平隊列(CBWFQ)通常使用ACL定義數(shù)據(jù)流類別,并將注入寬帶和隊列限制等參數(shù)應用于這些類別。CBWFQ是網(wǎng)絡中的一種隊列配置方案,其允許通信基于標準分類。CBWFQ能夠給不同的類保障一定的帶寬,對傳統(tǒng)的WFQ(加權(quán)公平隊列)作了擴展支持用戶自己定義流量的分類,隊列的個數(shù)和類別是一一對應,給每個class保留帶寬。CBWFQ使用較為靈活,可以由管理員對流量進行靈活分類。
?低延遲隊列(LLQ)為基于類別的加權(quán)公平排隊(CBWFQ)提供絕對優(yōu)先排隊功能,減少了語音會話的抖動。LLQ相當于CBWFQ加上一個嚴格優(yōu)先級隊列,該隊列優(yōu)先級高于其他所有隊列,非常適合時延敏感性應用。LLQ的嚴格優(yōu)先級隊列是一個有最小保證帶寬的優(yōu)先級隊列,出現(xiàn)擁塞時,該隊列的數(shù)據(jù)量不能超過所允許的帶寬,否則會被丟棄。LLQ最大優(yōu)勢是可以為時延和抖動敏感型應用的流量提供一個或多個有帶寬保證的嚴格優(yōu)先級隊列,LLQ并不局限于特定平臺或傳輸介質(zhì)。在有語音、視頻傳輸?shù)逆溌飞?,可以考慮使用此種隊列。
?流量限制,需要進行速度限制的流量,大多在Best-effort隊列中,當然也可新建隊列,并對整個隊列進行速度限制。對于不重要且流量大的數(shù)據(jù)流,需要進行限制處理,即使鏈路空閑,該部分流量也會被限制。該部分流量可降低其優(yōu)先級,或提高其丟棄優(yōu)先級。
QoS部署注意事項
?PQ隊列存在“餓死”的可能性,應謹慎選擇或配合流量限制使用,由于PQ隊列優(yōu)先級最高,配置PQ隊列后,其他隊列都需要給它讓路,這樣容易造成其他隊列被“餓死”,在配置時因充分考慮或選擇配合流量限制進行使用。
?網(wǎng)絡協(xié)議流量(一般默認高優(yōu)先級隊列)、監(jiān)控流量應予以保障,否則可能會因網(wǎng)絡協(xié)議流量擁塞造成鄰居中斷,或監(jiān)控流量擁塞造成監(jiān)控失效或誤報。
?部署QoS時應根據(jù)需求從全局視角去規(guī)劃帶寬,并選擇合適的模型,保障QoS設計的帶寬小于實際使用帶寬;針對復雜且關(guān)鍵的網(wǎng)絡節(jié)點部署QoS,建議能在測試環(huán)境中通過打流測試,驗證策略的可用性。
?部署QoS應考慮鏈路中斷造成的流量切換。例如鏈路A上部署的QoS,也應部署在其備份鏈路上??紤]到實際流量情況,在備份鏈路部署的QoS可以不同于主鏈路的QoS,但保障關(guān)鍵、重要業(yè)務的總原則不應改變。
?網(wǎng)絡管理員應定期對QoS策略進行重檢,應定期與應用管理員梳理所有應用系統(tǒng)的行為,并按照梳理結(jié)果對QoS策略進行調(diào)整或增減。
?在網(wǎng)絡設備上提前部署限速策略并制定操作工具箱,當網(wǎng)絡中突然出現(xiàn)大流量數(shù)據(jù)傳輸時,可以通過工具箱快速將其放入限制策略中,來避免網(wǎng)絡告警。
QoS的配置實例
?華為路由器
l 入向限制策略 //流定義 acl name AAA //流分類,匹配定義流 traffic classifier AAA AAA //流行為,限制多少帶寬 traffic behavior AAA xxxxx kbps //流行為,限制多少帶寬 traffic policy AAA AAA behavior AAA //鏈路入接口調(diào)用 interface x/x/x AAA inbound l 出向QOS保障策略 //流定義 acl name AAA advance //流分類,匹配定義流,允許匹配多個ACL流 traffic classifier AAA AAA //流行為,標記DSCP traffic behavior AAA af42 //流策略關(guān)聯(lián) traffic policy IN-QUEUE classifier AAA behavior AAA //流量入接口調(diào)用流策略標記DSCP值 interface IN-QUEUE //流量出接口配置流量調(diào)度策略 interface x/x/x port shaping af4 wfq weight 20 l HQoS分層調(diào)度策略 //流定義 acl name AAA //流分類,匹配定義流,允許匹配多個ACL流 traffic classifier AAA AAA //流行為,標記DSCP traffic behavior AAA ef //流策略關(guān)聯(lián) traffic policy IN-QUEUE classifier AAA behavior AAA //流隊列調(diào)度方式 flow-queue BBB queue af4 wfq weight 30 //配置實際鏈路帶寬和隊列調(diào)度綁定 qos-profile CCC xxxx BBB //流量入接口調(diào)用流策略,將流標記DSCP值 interface x/x/x traffic-policy IN-QUEUEinbound //如果涉及流量到入接口分類完成后穿過其他鏈路再到出接口調(diào)度情況下需要在穿過的接口配置簡單流分類 interface x/x/x //流量出接口配置流量調(diào)度策略,匹配qos-profil的調(diào)度策略 interface x/x/x CCC outbound xxx |
?思科路由器
l CBWFQ和限速 //定義一個匹配acl-1 acl-2的類 class-map match-all class-1 acl-1 class-map match-all class-2 match access-group name acl-2 //定義一個匹配http協(xié)議的類 class-map match-all class-3 match protocol http //定義一個策略,調(diào)用class-1/2/3,保障和限速,限速超出丟棄 policy-map CBWFQ class class-1 bandwidth classclass-2 bandwidth 1000 class class-3 police cir 1500000 //在接口出方向policy策略 interface x/x service-policy output CBWFQ |
?Juniper
l CBWFQ //為1號板卡1號模塊設置每端口最大隊列數(shù)為8個 set chassis fpc 1 pic 1 //配置不同地址組 set groups group-1 firewall family inet filter <*> term <*> from source-address x.x.x.x/x set groups group-2 x.x.x.x/x //將不同轉(zhuǎn)發(fā)類別映射至不同隊列 set class-of-service forwarding-classes class class-1 queue-num 1 set class-of-service forwarding-classes class class-2 queue-num 2 //設置不同地址組的丟棄優(yōu)先級及轉(zhuǎn)發(fā)類別 set firewall family inet filter filter-1 term-1 group-1 set firewall family inet filter filter-1 term-1 set firewall family inet filter filter-1 term-1 then forwarding-class set firewall family inet filter filter-1 term term-1 set firewall family inet filter filter-1 term-2 apply-groups group-2 set firewall family inet filter filter-1 term-2 set firewall family inet filter filter-1 term-2 class-2 set firewall family inet filter filter-1 term-2 //在x/x/x子接口出方向應用filter-1 set interfaces unit x filter-1 //建立兩個調(diào)度模板,分別設置保障帶寬和隊列優(yōu)先級 set class-of-service schedulers scheduler-1 transmit-rate 2m set class-of-service schedulers scheduler-1 set class-of-service schedulers scheduler-2 transmit-rate 3m set class-of-service schedulers scheduler-2 //建立轉(zhuǎn)發(fā)類別與調(diào)度模板的映射 set class-of-service scheduler-maps map-1 forwarding-class class-1 scheduler-1 set class-of-service scheduler-maps map-1 class-2 scheduler-2 //在服務等級中設置接口的調(diào)度映射 set class-of-service interfaces x/x/x x map-1 //在服務等級中設置接口流量整形速率 set class-of-service interfaces x/x/x x 20m |