為什么需要NQA?NQA到底為何物?一文告訴你!
網(wǎng)絡(luò)質(zhì)量分析NQA(Network Quality Analysis)是一種實(shí)時(shí)的網(wǎng)絡(luò)性能探測(cè)和統(tǒng)計(jì)技術(shù),可以對(duì)響應(yīng)時(shí)間、網(wǎng)絡(luò)抖動(dòng)、丟包率等網(wǎng)絡(luò)指標(biāo)進(jìn)行統(tǒng)計(jì)。NQA能夠?qū)崟r(shí)監(jiān)視網(wǎng)絡(luò)服務(wù)質(zhì)量,在網(wǎng)絡(luò)發(fā)生故障時(shí)進(jìn)行有效的故障診斷和定位。
1. 為什么需要NQA
隨著運(yùn)營(yíng)商增值業(yè)務(wù)的開(kāi)展,用戶(hù)和運(yùn)營(yíng)商對(duì)QoS(Quality of Service)的相關(guān)要求越來(lái)越高,特別是在傳統(tǒng)的IP網(wǎng)絡(luò)承載語(yǔ)音和視頻業(yè)務(wù)后,運(yùn)營(yíng)商與客戶(hù)之間簽訂SLA(Service Level Agreement)成為普遍現(xiàn)象。
為了讓用戶(hù)看到承諾的帶寬是否達(dá)到需求,運(yùn)營(yíng)商需要提供相關(guān)的時(shí)延、抖動(dòng)、丟包率等相關(guān)的統(tǒng)計(jì)參數(shù),以及時(shí)了解網(wǎng)絡(luò)的性能狀況。傳統(tǒng)的網(wǎng)絡(luò)性能分析方法(如Ping、Tracert等)已經(jīng)不能滿(mǎn)足用戶(hù)對(duì)業(yè)務(wù)多樣性和監(jiān)測(cè)實(shí)時(shí)性的要求。
NQA可以實(shí)現(xiàn)對(duì)網(wǎng)絡(luò)運(yùn)行狀況的準(zhǔn)確測(cè)試,輸出統(tǒng)計(jì)信息。NQA可以監(jiān)測(cè)網(wǎng)絡(luò)上運(yùn)行的多種協(xié)議的性能,使運(yùn)營(yíng)商能夠?qū)崟r(shí)采集到各種網(wǎng)絡(luò)運(yùn)行指標(biāo),例如:HTTP的總時(shí)延、TCP連接時(shí)延、DNS解析時(shí)延、文件傳輸速率、FTP連接時(shí)延、DNS解析錯(cuò)誤率等。通過(guò)對(duì)這些指標(biāo)進(jìn)行控制,運(yùn)營(yíng)商可以為用戶(hù)提供不同等級(jí)的網(wǎng)絡(luò)服務(wù)。同時(shí),NQA也是網(wǎng)絡(luò)故障診斷和定位的有效工具。
2. NQA工作原理
NQA客戶(hù)端和服務(wù)器 NQA測(cè)試中,把測(cè)試兩端稱(chēng)為客戶(hù)端和服務(wù)器端(或者稱(chēng)為源端和目的端),NQA的測(cè)試是由客戶(hù)端(源端)發(fā)起。客戶(hù)端根據(jù)測(cè)試?yán)臏y(cè)試類(lèi)型,構(gòu)造符合相應(yīng)協(xié)議的報(bào)文并打上時(shí)間戳,再發(fā)送至服務(wù)器端。
NQA服務(wù)器負(fù)責(zé)處理NQA客戶(hù)端發(fā)來(lái)的測(cè)試報(bào)文,通過(guò)偵聽(tīng)指定IP地址和端口號(hào)的報(bào)文對(duì)客戶(hù)端發(fā)起的測(cè)試進(jìn)行響應(yīng)??蛻?hù)端根據(jù)發(fā)送和接收?qǐng)?bào)文來(lái)計(jì)算各項(xiàng)性能指標(biāo),如連通性、時(shí)延、丟包率等。
3.NQA測(cè)試?yán)幚頇C(jī)制
ICMP測(cè)試
ICMP測(cè)試是通過(guò)發(fā)送ICMP報(bào)文來(lái)判斷目的地的可達(dá)性、計(jì)算網(wǎng)絡(luò)響應(yīng)時(shí)間及丟包率。
源端向目的端發(fā)送構(gòu)造的ICMP Echo Request報(bào)文。目的端收到報(bào)文后,直接回應(yīng)ICMP Echo Reply報(bào)文給源端。
源端收到報(bào)文后,通過(guò)計(jì)算源端接收時(shí)間和源端發(fā)送時(shí)間之差,計(jì)算出源端到目的端的通信時(shí)間,從而清晰的反映出網(wǎng)絡(luò)性能及網(wǎng)絡(luò)暢通情況。
Trace測(cè)試
Trace測(cè)試用于檢測(cè)源端到目的端的轉(zhuǎn)發(fā)路徑,并沿該路徑記錄源設(shè)備到中間各個(gè)設(shè)備的時(shí)延等信息。
Trace測(cè)試的過(guò)程如下:
客戶(hù)端向目的端發(fā)送構(gòu)造的UDP報(bào)文,報(bào)文中的TTL為1。第一跳收到該報(bào)文后,判斷TTL后丟棄該報(bào)文,返回一份ICMP超時(shí)報(bào)文。客戶(hù)端收到該ICMP超時(shí)報(bào)文后,記錄下第一跳設(shè)備的IP地址,并重新構(gòu)造一份UDP報(bào)文,報(bào)文中的TTL為2。第二跳收到該報(bào)文后,判斷TTL后丟棄該報(bào)文,返回一份ICMP超時(shí)報(bào)文。以此類(lèi)推,最終報(bào)文到達(dá)最后一跳設(shè)備,返回一份ICMP端口不可達(dá)報(bào)文給客戶(hù)端??蛻?hù)端收到每跳返回的ICMP報(bào)文后,統(tǒng)計(jì)并打印出從客戶(hù)端到目的端的轉(zhuǎn)發(fā)路徑和該路徑上各設(shè)備的信息,從而清晰的反映出網(wǎng)絡(luò)狀況。
TCP測(cè)試
TCP測(cè)試用于檢測(cè)客戶(hù)端與TCP Server之間經(jīng)過(guò)三次握手建立TCP連接的速度。
客戶(hù)端通過(guò)接收TCP SYN ACK報(bào)文和發(fā)送TCP SYN報(bào)文、ACK報(bào)文的時(shí)間的差,計(jì)算出與TCP Server之間三次握手建立TCP連接的時(shí)間,從而清晰地反映出網(wǎng)絡(luò)中TCP協(xié)議的性能狀況。
UDP測(cè)試
網(wǎng)絡(luò)中的很多業(yè)務(wù)都是由UDP協(xié)議來(lái)承載的,一旦業(yè)務(wù)質(zhì)量下降后,沒(méi)有辦法檢測(cè)是業(yè)務(wù)本身的問(wèn)題,還是UDP承載的性能問(wèn)題。NQA的UDP測(cè)試可以用于檢測(cè)UDP承載的性能問(wèn)題。
源端向目的端發(fā)送構(gòu)造的UDP報(bào)文,目的端回應(yīng)報(bào)文給源端。源端收到數(shù)據(jù)包后通過(guò)計(jì)算源端接收?qǐng)?bào)文的時(shí)間和源端發(fā)送報(bào)文的時(shí)間的差,計(jì)算出源端與目的端之間通信的時(shí)間。從而清晰的反映出網(wǎng)絡(luò)UDP協(xié)議的性能狀況。
DNS測(cè)試
DNS測(cè)試以UDP報(bào)文為承載,通過(guò)模擬DNS Client向指定的DNS服務(wù)器發(fā)送域名解析請(qǐng)求,根據(jù)域名解析是否成功及域名解析需要的時(shí)間,來(lái)判斷DNS服務(wù)器是否可用,及域名解析速度。
FTP測(cè)試
FTP測(cè)試以TCP報(bào)文為承載,用于檢測(cè)是否可以與指定的FTP服務(wù)器建立連接,以及從FTP服務(wù)器下載指定文件或向FTP服務(wù)器上載指定文件的速度。
HTTP測(cè)試
HTTP測(cè)試主要是測(cè)試客戶(hù)端是否可以與指定的HTTP服務(wù)器建立連接,從而判斷該設(shè)備是否提供了HTTP服務(wù)以及建立連接的時(shí)間。
SNMP測(cè)試
SNMP測(cè)試主要用于檢測(cè)主機(jī)與SNMP Agent之間SNMP協(xié)議的連通性以及通信速度,以UDP報(bào)文為承載。
源端向SNMP Agent發(fā)送構(gòu)造的請(qǐng)求報(bào)文,SNMP Agent回應(yīng)報(bào)文給源端。源端收到數(shù)據(jù)包后通過(guò)計(jì)算源端接收?qǐng)?bào)文的時(shí)間和源端發(fā)送報(bào)文的時(shí)間的差,計(jì)算出源端與SNMP Agent之間通信的時(shí)間。從而清晰的反映出網(wǎng)絡(luò)SNMP協(xié)議的性能狀況。
LSP Ping測(cè)試
LSP Ping測(cè)試用于檢測(cè)兩種類(lèi)型(LDP, TE)的LSP路徑是否可達(dá)。
源端首先構(gòu)造MPLS Echo Request報(bào)文,在IP頭填入127.0.0.0/8網(wǎng)段的地址作為IP的目的地,根據(jù)配置對(duì)端LSR ID查找相應(yīng)的LSP,按指定的LSP進(jìn)行MPLS域內(nèi)的轉(zhuǎn)發(fā)。目的端偵聽(tīng)3503端口發(fā)送MPLS Echo Reply響應(yīng)報(bào)文。
源端通過(guò)接收到的響應(yīng)報(bào)文,統(tǒng)計(jì)出測(cè)試結(jié)果,通過(guò)計(jì)算源端接收時(shí)間和源端發(fā)送時(shí)間之差,計(jì)算出源端到目的端的通信時(shí)間,從而清晰地反應(yīng)出MPLS網(wǎng)絡(luò)鏈路暢通情況。
LSP Trace測(cè)試
LSP Trace測(cè)試用于檢測(cè)兩種類(lèi)型(LDP,TE)的LSP轉(zhuǎn)發(fā)路徑,并沿該路徑收集各設(shè)備的有關(guān)的統(tǒng)計(jì)信息。
源端首先構(gòu)造UDP的MPLS Echo Request報(bào)文,在IP頭填入127.0.0.0/8網(wǎng)段的地址作為IP的目的地,查找相應(yīng)的LSP。MPLS Echo Request報(bào)文應(yīng)該包含有Downstream MapPing TLV(用來(lái)攜帶LSP在當(dāng)前節(jié)點(diǎn)的下游信息,主要包括下一跳地址、出標(biāo)簽等)。
第一次發(fā)送的MPLS Echo Request報(bào)文的TTL為1。報(bào)文按指定的LSP進(jìn)行MPLS域內(nèi)的轉(zhuǎn)發(fā),TTL超時(shí)返回MPLS Echo Reply消息。源端繼續(xù)以TTL遞增的方式發(fā)送MPLS Echo Request報(bào)文,如此重復(fù),直到整條LSP上的所有LSR都應(yīng)答后,LSP Trace測(cè)試過(guò)程完成。
源端收到每跳LSR的應(yīng)答消息后,統(tǒng)計(jì)出從源端到目的端的LSP轉(zhuǎn)發(fā)路徑和該路徑上各設(shè)備的有關(guān)信息。從而清晰的反映出從源端到目的端的LSP轉(zhuǎn)發(fā)路徑。
PWE3 Ping測(cè)試
PWE3(Pseudo-Wire Emulation Edge to Edge) Ping測(cè)試?yán)糜跈z測(cè)基于MPLS轉(zhuǎn)發(fā)的PW路徑是否可達(dá)。
源端發(fā)送MPLS Echo Request報(bào)文并經(jīng)過(guò)PW轉(zhuǎn)發(fā)。報(bào)文到達(dá)遠(yuǎn)端PE后,返回MPLS Echo Reply報(bào)文。源端通過(guò)接收到的響應(yīng)報(bào)文,統(tǒng)計(jì)出測(cè)試結(jié)果,通過(guò)計(jì)算源端接收時(shí)間和源端發(fā)送時(shí)間之差,計(jì)算出源端到目的端的通信時(shí)間,從而清晰的反應(yīng)出此條PW通路暢通情況。
PWE3 Trace測(cè)試
PWE3 Trace測(cè)試用于檢測(cè)基于MPLS的PW轉(zhuǎn)發(fā)路徑,并沿該路徑收集各設(shè)備的有關(guān)的統(tǒng)計(jì)信息。
PWE3 Trace是源端通過(guò)連續(xù)發(fā)送TTL值從1到某個(gè)值的MPLS Echo Request報(bào)文,這樣路徑上的每個(gè)節(jié)點(diǎn)在TTL超時(shí)后,都返回一個(gè)MPLS Echo Reply報(bào)文。源端就可以收集PW上每個(gè)節(jié)點(diǎn)的信息,從而清晰的反映出從源端到目的端的PW轉(zhuǎn)發(fā)路徑,以及該路徑上各設(shè)備的有關(guān)的統(tǒng)計(jì)信息。
4. NQA典型應(yīng)用
靜態(tài)路由與NQA聯(lián)動(dòng)
靜態(tài)路由本身并沒(méi)有檢測(cè)機(jī)制,如果非本機(jī)直連鏈路發(fā)生了故障,靜態(tài)路由不會(huì)自動(dòng)從IP路由表中自動(dòng)刪除,需要管理員介入,這就無(wú)法保證及時(shí)進(jìn)行鏈路切換,可能造成較長(zhǎng)時(shí)間的業(yè)務(wù)中斷。
基于以上原因,需要有一種有效的方案來(lái)檢測(cè)靜態(tài)路由所在的鏈路。對(duì)于靜態(tài)路由而言,現(xiàn)有的靜態(tài)路由與BFD聯(lián)動(dòng)特性,由于受到互通設(shè)備兩端都必須支持BFD的限制,在某些應(yīng)用場(chǎng)景無(wú)法實(shí)施。而靜態(tài)路由與NQA聯(lián)動(dòng)則只要求互通設(shè)備的其中一端支持NQA即可。
靜態(tài)路由與NQA聯(lián)動(dòng)組網(wǎng)
利用NQA測(cè)試?yán)齺?lái)檢測(cè)靜態(tài)路由所在鏈路的狀態(tài),根據(jù)NQA的檢測(cè)結(jié)果,決定靜態(tài)路由是否活躍,達(dá)到避免通信的中斷或服務(wù)質(zhì)量降低的目的。
以上圖為例,RouterA至RouterD有主、備兩條鏈路,RouterA作為NQA客戶(hù)端來(lái)檢測(cè)至RouterD的鏈路狀態(tài):
- 如果NQA測(cè)試?yán)龣z測(cè)到主鏈路故障,RouterA將這條靜態(tài)路由設(shè)置為“非激活”狀態(tài);
- 如果NQA測(cè)試?yán)龣z測(cè)到主鏈路恢復(fù)正常,RouterA將這條靜態(tài)路由設(shè)置為“激活”狀態(tài)。