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