淺談MPLS測(cè)試方法——概述
1 概述
MPLS作為一種轉(zhuǎn)發(fā)技術(shù)已經(jīng)發(fā)展了很多年,起初以提高轉(zhuǎn)發(fā)效率而提出的這種技術(shù)經(jīng)過多年發(fā)展因其本身良好的擴(kuò)展性,為其賦予了新的生機(jī)。隨著基于MPLS技術(shù)的VPN應(yīng)用、TE和QoS等各種應(yīng)用不斷在各大網(wǎng)絡(luò)上部署,MPLS逐漸成為網(wǎng)絡(luò)世界中新熱點(diǎn)的同時(shí),也逐漸成為網(wǎng)絡(luò)設(shè)備的賣點(diǎn)之一。
雖然MPLS轉(zhuǎn)發(fā)技術(shù)位于二、三層之間,但是其實(shí)現(xiàn)需要路由協(xié)議、LDP等標(biāo)簽分配協(xié)議等上層協(xié)議作為支撐,并且為了實(shí)現(xiàn)基于MPLS的各種應(yīng)用,還對(duì)很多上層協(xié)議進(jìn)行了擴(kuò)展??梢哉f,MPLS模塊涵蓋了眾多相關(guān)協(xié)議,是一個(gè)非常復(fù)雜的知識(shí)體系。這也為作為測(cè)試人員的我們提出了很高的要求。
說到測(cè)試方法,其實(shí)對(duì)于任何一個(gè)模塊,任何一個(gè)協(xié)議沒有一個(gè)固定的、一成不變的測(cè)試方法。不同的測(cè)試人員,測(cè)試手段不同、關(guān)注點(diǎn)不同、思維方式不同都能形成一套自己特有的測(cè)試方法,并且隨著測(cè)試不斷進(jìn)行,對(duì)協(xié)議、對(duì)整個(gè)模塊的理解和對(duì)其應(yīng)用的理解也在不斷深入,測(cè)試方法也隨之不斷豐富、完善。測(cè)試方法不斷豐富的同時(shí),測(cè)試也會(huì)變得不斷深入。
本文是平時(shí)測(cè)試中使用的一些方法和遇到的一些問題粗略總結(jié),算是拋磚引玉,希望不斷補(bǔ)充完善,共同豐富我們這個(gè)測(cè)試方法,共同提高測(cè)試水平!
需要特別指出的是,一個(gè)基于MPLS的重要應(yīng)用:TE(Traffic Engineering)由于其具有相對(duì)獨(dú)立的知識(shí)體現(xiàn)和自身復(fù)雜性,將有專門文章介紹它的測(cè)試方法,本文將不對(duì)其進(jìn)行討論。
2 MPLS基礎(chǔ)協(xié)議測(cè)試方法描述
MPLS基礎(chǔ)協(xié)議是指支撐MPLS VPN等各種應(yīng)用的協(xié)議,包括:LDP、MBGP和各種路由協(xié)議多實(shí)例等。確?;A(chǔ)協(xié)議功能完備是其他MPLS應(yīng)用功能正常的保證。因此,這里首先總結(jié)一些對(duì)MPLS基本協(xié)議測(cè)試的方法。
說到協(xié)議測(cè)試,不外乎包括基本功能測(cè)試、協(xié)議一致性測(cè)試、互通測(cè)試和性能測(cè)試等幾個(gè)方面。協(xié)議測(cè)試方法也包括通用測(cè)試方法和根據(jù)不同協(xié)議而特有的測(cè)試方法,通用測(cè)試方法包括:命令行配置刪除、邊界值和非法值設(shè)置、接口板連接線熱插拔等,這些方法相信大家都已經(jīng)掌握,本文也就不再將其羅列到各個(gè)部分測(cè)試方法描述中。這里主要討論的是我們?cè)跍y(cè)試相關(guān)協(xié)議時(shí)需要關(guān)注、容易出現(xiàn)問題的方面,和在測(cè)試這些協(xié)議特性時(shí)通常使用的一些測(cè)試手段。
2.1 LDP測(cè)試方法
LDP(Label Distribute Protocol)是實(shí)現(xiàn)通用標(biāo)簽分配協(xié)議,可服務(wù)于所有MPLS應(yīng)用。由于LDP協(xié)議本身非常復(fù)雜,定義了不同的標(biāo)簽分配模式、標(biāo)簽控制模式和標(biāo)簽保持模式,設(shè)備可被配置在多種模式下工作。同時(shí),LDP還支持Loop-Detect等特性,使其測(cè)試組網(wǎng)、測(cè)試手段都非常復(fù)雜,下面我們從LDP協(xié)議幾個(gè)主要功能部分討論對(duì)它的測(cè)試。
2.1.1 基本功能測(cè)試
2.1.1.1 鄰居建立
LDP通過TCP建立鄰居關(guān)系,并在鄰居間直接傳遞標(biāo)簽映射消息。協(xié)議規(guī)定,在兩個(gè)LSR設(shè)備直接只允許存在一個(gè)LDP會(huì)話關(guān)系(LDP Session),這也是測(cè)試會(huì)話功能的重點(diǎn)。主要測(cè)試方法包括:在兩臺(tái)LSR直接創(chuàng)建多個(gè)多種類型直連接口,并在物理接口上封裝各種類型的鏈路協(xié)議,包括:以太網(wǎng)、ATM、FR子接口,PPP、MP、MFR等,同時(shí)可以指定建立LDP會(huì)話使用的IP地址,包括各種物理接口IP地址、子接口和虛接口IP地址,地址借用接口IP地址,地址協(xié)商接口IP地址等,驗(yàn)證此時(shí)LDP會(huì)話是否正確建立,LDP會(huì)話是否唯一。
設(shè)備支持在同一個(gè)接口上配置多個(gè)IP地址,同樣LDP支持利用這些子IP(Sub IP)建立會(huì)話關(guān)系。子IP又分為配置在主接口、子接口和各種虛接口上等不同組合。將接口和各種類型IP地址結(jié)合是測(cè)試LDP常常使用的方法。在測(cè)試LDP鄰居時(shí),我們不但需要驗(yàn)證相鄰設(shè)備之間建立LDP會(huì)話,還要測(cè)試任意兩臺(tái)設(shè)備之間創(chuàng)建Remote方式LDP會(huì)話。
LDP協(xié)議通過TCP建立鄰居間會(huì)話關(guān)系,同時(shí)也提供基于TCP MD5認(rèn)證機(jī)制。與測(cè)試其它協(xié)議認(rèn)證類似,在配置LDP認(rèn)證后,關(guān)注是否會(huì)影響LDP會(huì)話建立,以及各種協(xié)議報(bào)文傳遞,TCP、LDP各種狀態(tài)顯示是否正確。特別需要注意的是,對(duì)于攜帶MD5認(rèn)證信息的TCP鄰居,在顯示其狀態(tài)時(shí)會(huì)有一個(gè)星號(hào)“*”進(jìn)行標(biāo)識(shí),這也是確認(rèn)認(rèn)證是否成功的方法之一。
反復(fù)Up/Down接口、子接口、虛接口狀態(tài),插拔物理連接線,熱插拔接口板,修改接口IP地址等操作是否會(huì)影響LDP會(huì)話狀態(tài)。記得曾經(jīng)出過這樣一個(gè)網(wǎng)上問題:由于連接兩臺(tái)設(shè)備之間的光電轉(zhuǎn)換器質(zhì)量不好,引起LSR接口反復(fù)Up/Down,LDP會(huì)話反復(fù)建立,一定時(shí)間后LDP會(huì)話無法建立,重啟設(shè)備后恢復(fù)正常。在實(shí)驗(yàn)室復(fù)現(xiàn)這個(gè)問題時(shí)還出現(xiàn)了由于不斷插拔物理連接線引起設(shè)備宕機(jī)的嚴(yán)重問題。
LDP會(huì)話建立另一個(gè)方面就是LDP能力和參數(shù)協(xié)商。在修改接口參數(shù)、LDP工作狀態(tài)參數(shù)后,LDP會(huì)話參數(shù)能否正確建立,協(xié)商后的參數(shù)和能力是否正確。
2.1.1.2 標(biāo)簽分配
LDP是廣泛使用的標(biāo)簽分配協(xié)議,主要功能是為不同F(xiàn)EC(路由)自動(dòng)分配標(biāo)簽,所以標(biāo)簽分配是否正確是衡量協(xié)議是否正確工作的基本標(biāo)準(zhǔn)。LDP協(xié)議會(huì)為本地直連路由、動(dòng)態(tài)路由分配標(biāo)簽,將標(biāo)簽和路由綁定關(guān)系封裝在MAP消息中傳遞給上游LSR,從而在MPLS域中產(chǎn)生對(duì)應(yīng)該路由的LSP。前面提到,由于標(biāo)簽分配模式、標(biāo)簽控制模式和標(biāo)簽保持模式的不同組合,LDP可能工作在多種模式下。而最常用的是DU+自由標(biāo)簽保持+獨(dú)立標(biāo)簽控制模式,這也是MPLS應(yīng)用的主要方式。
LSP是LSR依據(jù)路由逐跳創(chuàng)建的,LSP出接口應(yīng)與路由出接口保持一致,并且在V5版本上還支持為等價(jià)路由創(chuàng)建多條不同接口LSP。對(duì)LSP的測(cè)試包括LSP與路由同步,在路由或其下一跳發(fā)生變化時(shí),LSP能否同步變化,切換時(shí)間不應(yīng)過長(zhǎng)。LSP完整建立包括在MPLS域內(nèi)對(duì)所有路由都應(yīng)建立對(duì)應(yīng)的LSP(除缺省路由和聚合路由外)。LSP建立完成后,可以查看LSR上MPLS LSP、ILM、FTN(V5版本對(duì)應(yīng)FIB)和NHLFE等表項(xiàng),各個(gè)表項(xiàng)建立、相互關(guān)系應(yīng)該一致正確。特別是在路由常常發(fā)生變化的網(wǎng)絡(luò)中,設(shè)備曾經(jīng)出現(xiàn)過LSP已經(jīng)刪除,標(biāo)簽已經(jīng)釋放,但是底層ILM和NHLFE表項(xiàng)未刪除導(dǎo)致轉(zhuǎn)發(fā)不通的問題。
由于設(shè)備支持全局標(biāo)簽空間,LSR為每一條路由分配一個(gè)標(biāo)簽,不同標(biāo)簽對(duì)應(yīng)不同的FEC。因此,對(duì)于不應(yīng)出現(xiàn)LSR為不同F(xiàn)EC分配相同標(biāo)簽的情況,保證在LSR上標(biāo)簽與FEC對(duì)應(yīng)的全局唯一性。同樣,在FEC對(duì)應(yīng)路由消失后,LSR應(yīng)及時(shí)釋放為其分配的標(biāo)簽資源,并通過LDP消息通知上游鄰居。被釋放的標(biāo)簽?zāi)軌虮辉俅畏峙浣o其他FEC。特別是在大量路由出現(xiàn)路由振蕩時(shí),應(yīng)特別檢查是否會(huì)出現(xiàn)標(biāo)簽未被釋放和不能重新分配的標(biāo)簽泄漏現(xiàn)象。
LDP另一個(gè)常常會(huì)出現(xiàn)問題的地方就是同一路由在多條備份鏈路上反復(fù)切換、等價(jià)路由某些出接口反復(fù)振蕩時(shí),LDP不能正確與路由變化保持同步,某些表項(xiàng)反復(fù)建立導(dǎo)致某些已經(jīng)過期的表項(xiàng)無法及時(shí)刪除,ILM、FTN與NHLFE對(duì)應(yīng)不一致引起MPLS轉(zhuǎn)發(fā)不通。
測(cè)試LSP時(shí)一個(gè)重要測(cè)試工具就是LSP ping命令。普通的ping命令只能檢測(cè)路由可達(dá)性,對(duì)判斷LSP逐跳是否建立完整無能為力。這時(shí),我們可以使用LSP ping命令,為找到存在問題的LSP提供了一個(gè)很好的手段。
2.1.1.3 環(huán)路檢測(cè)
為了防止因?yàn)槁酚蓪用娈a(chǎn)生環(huán)路引起MPLS轉(zhuǎn)發(fā)環(huán)路,LDP可以在MAP消息中攜帶環(huán)路檢測(cè)信息,包括Hop-Count屬性和Path-Vector屬性。設(shè)備上通過設(shè)置允許建立LSP經(jīng)過的最大跳數(shù)來防止環(huán)路產(chǎn)生。在實(shí)驗(yàn)室中由于路由產(chǎn)生環(huán)路比較困難,因此測(cè)試中通常通過設(shè)置較小的LDP跳數(shù)達(dá)到檢測(cè)環(huán)路目的。配置了環(huán)路檢查的路由器與沒有配置環(huán)路檢查路由器之間LDP鄰居關(guān)系建立、對(duì)沒有攜帶環(huán)路檢查的LDP MAP消息處理和沒有環(huán)路檢查屬性的MAP消息處理。對(duì)即將達(dá)到和已經(jīng)達(dá)到甚至超過規(guī)定跳數(shù)的LDP消息處理等。
2.1.2 協(xié)議一致性測(cè)試
目前,很多廠商的測(cè)試設(shè)備都提供了對(duì)各種基礎(chǔ)協(xié)議進(jìn)行一致性測(cè)試的測(cè)試套,包括Angilent公司的RouterTester、Sprient公司的AX4000和IXIA公司的IxANVL。這些測(cè)試套都是儀器廠商嚴(yán)格依據(jù)標(biāo)準(zhǔn)RFC開發(fā)的自動(dòng)化腳本,幾乎覆蓋了對(duì)應(yīng)RFC中定義的每一個(gè)功能點(diǎn)。利用這些協(xié)議一致性測(cè)試套,能夠非常準(zhǔn)確地測(cè)試設(shè)備是否按照標(biāo)準(zhǔn)協(xié)議實(shí)現(xiàn),能幫助我們發(fā)現(xiàn)很多互通測(cè)試和遍歷測(cè)試中無法發(fā)現(xiàn)的深層協(xié)議問題。對(duì)于MPLS部分,主要測(cè)試儀都有LDP協(xié)議測(cè)試套,協(xié)議一致性測(cè)試也早已在平臺(tái)產(chǎn)品測(cè)試部得到廣泛使用。
同時(shí),部分廠商儀器還提供對(duì)BGP、MBGP、L2VPN和VPLS等其他MPLS應(yīng)用模塊的協(xié)議一致性測(cè)試套,具體支持模塊的詳細(xì)信息請(qǐng)參見原儀器集中組相關(guān)文檔。