郭 亮 ,王素彬 ,趙雋琪 ,陳 驊
(1.中國(guó)電信股份有限公司廣東研究院 廣州 510630;2.思博倫通信科技北京有限公司 北京 100191)
在路由器性能測(cè)試中,為了使被測(cè)設(shè)備處于一定的流量壓力下,測(cè)試人員需要構(gòu)造測(cè)試環(huán)境保證所有端口都有收發(fā)雙向的數(shù)據(jù)轉(zhuǎn)發(fā)流量。在測(cè)試一些端口密度相對(duì)較大的產(chǎn)品時(shí),通常有兩種方法實(shí)現(xiàn)此目的:全端口測(cè)試和蛇形測(cè)試。
如圖1所示,全端口測(cè)試是一種被測(cè)設(shè)備所有的端口都與測(cè)試儀表直接相連,由測(cè)試儀表發(fā)送所有端口之間的全網(wǎng)狀測(cè)試流量,以評(píng)估被測(cè)設(shè)備最大性能的測(cè)試方法。
圖1 全端口測(cè)試拓?fù)?/p>
如圖2所示,蛇形測(cè)試是指被測(cè)設(shè)備僅用兩個(gè)端口與測(cè)試儀直接相連,其余端口使用跳線在設(shè)備上進(jìn)行環(huán)接,并配合一定的流量轉(zhuǎn)發(fā)策略,使測(cè)試流量從與儀表直連的一個(gè)端口輸入設(shè)備,從一個(gè)端口轉(zhuǎn)發(fā)出去后再由另一個(gè)端口輸入設(shè)備,如此反復(fù)多次后由另一個(gè)與儀表直連的端口輸出,從而實(shí)現(xiàn)所有參與的端口均有流量輸入和輸出。
圖2 蛇形測(cè)試拓?fù)?/p>
為實(shí)現(xiàn)蛇形測(cè)試,需要根據(jù)被測(cè)設(shè)備的情況設(shè)置流量轉(zhuǎn)發(fā)策略。如果是二層交換機(jī),可以將被測(cè)設(shè)備端口設(shè)置為無標(biāo)簽(untag)模式,每?jī)蓚€(gè)一組劃分到一個(gè)單獨(dú)VLAN,VLAN之間通過外部跳線橋接的方式實(shí)現(xiàn)蛇形轉(zhuǎn)發(fā)。
如果是路由器,可以通過以下多種方式實(shí)現(xiàn)。
·通過配置策略路由,設(shè)定由連接測(cè)試儀的端口1進(jìn)入的流量通過端口2轉(zhuǎn)發(fā),端口2外部跳線連接端口3,由端口3進(jìn)入的流量通過端口4轉(zhuǎn)發(fā)……直至最后連接測(cè)試儀的另一個(gè)端口;反向流亦然。
·將被測(cè)設(shè)備端口每?jī)蓚€(gè)一組劃分到一個(gè)單獨(dú)的虛擬路由器,虛擬路由器之間通過外部跳線串聯(lián)并啟用靜態(tài)或動(dòng)態(tài)路由實(shí)現(xiàn)蛇形轉(zhuǎn)發(fā)。
·將被測(cè)設(shè)備端口每?jī)蓚€(gè)一組發(fā)送到一個(gè)單獨(dú)的2層或3層MPLS VPN,不同VPN之間通過外部跳線串接,從而實(shí)現(xiàn)蛇形轉(zhuǎn)發(fā)。
雖然從測(cè)試流量的負(fù)載上看,全端口測(cè)試和蛇形測(cè)試是一樣的,但深入分析發(fā)現(xiàn),蛇形測(cè)試有很多缺陷,下面從幾個(gè)方面進(jìn)行分析。
時(shí)延和抖動(dòng)是數(shù)據(jù)通信設(shè)備性能測(cè)試中非常重要的測(cè)試內(nèi)容之一。
現(xiàn)在交換機(jī)在有些應(yīng)用場(chǎng)合對(duì)時(shí)延的要求非常高,典型的就是云計(jì)算的數(shù)據(jù)中心交換機(jī)。數(shù)據(jù)中心交換機(jī)是典型的高密度交換機(jī),其重要應(yīng)用領(lǐng)域是金融機(jī)構(gòu),如證券交易所、期貨交易所等。交換機(jī)的時(shí)延,可能直接影響競(jìng)價(jià)成功與否、成交價(jià)格高低。特別是在國(guó)外金融市場(chǎng)有很多高頻交易(high frequency trading,HFT),通過金融建模和高性能計(jì)算機(jī)系統(tǒng),進(jìn)行高頻率的交易,通過大量交易積累來獲取高額利潤(rùn)。這種交易,對(duì)于數(shù)據(jù)中心交換機(jī)的時(shí)延要求非常高。國(guó)外有過統(tǒng)計(jì),時(shí)延1μs等于損失1億美元。所以很多數(shù)據(jù)中心交換機(jī),如Arista、Cisco Nexus交換機(jī),時(shí)延都可以達(dá)到400 ns以下。智能變電站內(nèi)的工業(yè)交換機(jī),也對(duì)時(shí)延有嚴(yán)格的要求。
抖動(dòng)則對(duì)另外一些實(shí)時(shí)應(yīng)用 (如視頻、語音、1588v2等)的質(zhì)量有重大影響。這類業(yè)務(wù)中很大一部分是Internet應(yīng)用,過大的抖動(dòng),給用戶體驗(yàn)造成嚴(yán)重影響。一定范圍內(nèi)的抖動(dòng),可以通過終端的設(shè)置,例如合理的緩沖區(qū)設(shè)置得到平滑。但是超過一定范圍的抖動(dòng),則會(huì)引起緩沖區(qū)的溢出(overrun)或者欠載(underrun),引起語音、視頻質(zhì)量的劣化。
顯而易見,用全端口拓?fù)?,可以測(cè)試交換機(jī)每一個(gè)報(bào)文經(jīng)過出入物理端口和交換矩陣的每一條路徑上的時(shí)延、抖動(dòng),而使用蛇形拓?fù)錅y(cè)試的時(shí)延和抖動(dòng),則是從物理端口1進(jìn)入物理端口48處的整條蛇形路徑的端到端時(shí)延和抖動(dòng)。在現(xiàn)網(wǎng)中,以太網(wǎng)分組一般情況下都是從交換機(jī)的一個(gè)端口進(jìn),經(jīng)過交換矩陣交換,從另外一個(gè)端口出,沒有經(jīng)過蛇形路徑。所以使用蛇形拓?fù)錅y(cè)試對(duì)于時(shí)延和抖動(dòng)測(cè)試無現(xiàn)實(shí)意義。
在上述例子中,簡(jiǎn)單地看全端口拓?fù)浜蜕咝瓮負(fù)?,似乎都?duì)交換機(jī)施加了同樣的全負(fù)載壓力,但仔細(xì)分析,蛇形拓?fù)湓谟行┣闆r下不能達(dá)到額定的負(fù)載。在全端口測(cè)試下,不管交換機(jī)是否丟失分組,測(cè)試儀表總是向被測(cè)交換機(jī)施加額定的負(fù)載。而蛇形測(cè)試下,如果有分組丟失,那么就達(dá)不到額定的負(fù)載。
比如在蛇形拓?fù)湎?,假設(shè)參與蛇形測(cè)試的端口總數(shù)為24,測(cè)試儀表向端口1發(fā)送 1 000幀/s,那么被測(cè)設(shè)備單方向的額定負(fù)載是24 000幀/s。如果在端口1→端口2的轉(zhuǎn)發(fā)中,丟了5個(gè)分組,那么端口2環(huán)回給端口3的流量就只有995幀/s了,即使在整個(gè)蛇形路徑的后面部分不再丟失分組,那么被測(cè)設(shè)備在這個(gè)方向上得到的額定負(fù)載也就是 1 000+995×23=23 885幀/s,和額定的負(fù)載差了115幀/s。如果分組丟失更多或者路徑上更多的部分分組丟失,那么施加到交換機(jī)上的負(fù)載和額定負(fù)載相差更多。
在構(gòu)建測(cè)試流量的時(shí)候,根據(jù)不同的測(cè)試場(chǎng)景和需求通常有3種測(cè)試流量分布的方式,如圖3所示。
圖3 流量分布模式
·fully meshed模式,指流量從每一個(gè)端口發(fā)往所有其他的端口。
·backbone模式,指流量從部分端口發(fā)往另一部分端口,既可以是單向的,也可以是雙向的。
·pair模式,指流量在一對(duì)或多對(duì)端口之間轉(zhuǎn)發(fā),既可以是單向的,也可以是雙向的。
在全端口測(cè)試時(shí),測(cè)試人員可以根據(jù)需要選擇任意一種或者多種方式的組合來構(gòu)建流量,以達(dá)到不同的測(cè)試效果;而在蛇形測(cè)試時(shí),所有參與測(cè)試的端口只可能構(gòu)建pair模式的流量。
而不同模式下對(duì)被測(cè)設(shè)備的壓力也是不同的。圖4、圖5形象地說明了這一情況。
圖4 pair模式下被測(cè)設(shè)備的壓力情況
圖5 fully meshed模式下被測(cè)設(shè)備的壓力情況
在pair模式下,測(cè)試流量可能只對(duì)端口下的轉(zhuǎn)發(fā)處理芯片構(gòu)成壓力,而在fully meshed模式下,則是對(duì)交換引擎/交換矩陣/背板構(gòu)成壓力。
在全端口測(cè)試中,由于所有端口同時(shí)發(fā)起流量,并且都是相互獨(dú)立的,在出端口短期內(nèi)有很大機(jī)率會(huì)形成小突發(fā)(burst)。在現(xiàn)網(wǎng)中,這稱為microburst,在現(xiàn)網(wǎng)非常常見,需要交換機(jī)具備一定的突發(fā)處理能力。很多廠商的交換機(jī),如Cisco、Arista、Juniper等都在公開測(cè)試中宣稱他們的設(shè)備具有處理microburst的能力。
圖6為microburst形成機(jī)制示意。
圖6 microburst形成機(jī)制
在蛇形測(cè)試中,每個(gè)端口的流量模型是由第一個(gè)端口決定的。如果每對(duì)端口之間都能不丟失分組地轉(zhuǎn)發(fā),那么流量基本上是從端口1復(fù)制到端口3,到端口5……是順序轉(zhuǎn)發(fā),不會(huì)出現(xiàn)如圖6所示的microburst,無法解壓緩沖區(qū)。在這種情況下,蛇形拓?fù)浜苡锌赡塬@得比全端口測(cè)試法更好的測(cè)試結(jié)果,但這種更好的測(cè)試結(jié)果對(duì)于評(píng)估設(shè)備的真實(shí)工作能力毫無益處。
交換機(jī)上有很多地址表,比如二層交換機(jī)有MAC地址表,三層交換機(jī)有MAC地址表、FIB表等。以MAC地址表為例,學(xué)習(xí)和查找是基于散列算法,以MAC和VLAN為索引進(jìn)行散列,得到散列索引值,再進(jìn)行地址表學(xué)習(xí)和查找。這就存在散列沖突,處理散列沖突對(duì)于地址學(xué)習(xí)和交換機(jī)的性能很重要。
看一下全端口拓?fù)浜蜕咄負(fù)涞牟煌闆r。在全端口下,一般測(cè)試用的每個(gè)端口的測(cè)試流量的MAC地址是不同的,端口VLAN則根據(jù)測(cè)試配置決定。在蛇形拓?fù)湎旅總€(gè)端口的測(cè)試流量的MAC地址是完全相同,都是端口1和端口48發(fā)送的測(cè)試幀的地址,而端口1、端口3、端口5等的VLAN是各不相同。兩種情況下,通過
全網(wǎng)狀拓?fù)浜蜕咝瓮負(fù)湓诓捎枚嗟刂废聹y(cè)試結(jié)果、在采用單一地址測(cè)試端口密度較低的低端設(shè)備時(shí),差別微乎其微。但測(cè)試流量所用地址越多,被測(cè)設(shè)備端口密度越高,通過散列算法填表和查表的差異就越明顯。
一般情況下,全端口拓?fù)涞牡刂贩植急容^符合現(xiàn)網(wǎng)的情況,而蛇形拓?fù)溥@種不同端口下學(xué)習(xí)到相同MAC地址的情況在現(xiàn)網(wǎng)中很少見,而且會(huì)認(rèn)為是生成樹出現(xiàn)循環(huán)的征兆。相比蛇形拓?fù)?,全端口拓?fù)涞臏y(cè)試結(jié)果更有實(shí)際意義。
對(duì)于3層交換設(shè)備來說,F(xiàn)IB表依據(jù)最長(zhǎng)匹配原則,采用搜索樹算法、全端口拓?fù)?,每個(gè)測(cè)試端口和被測(cè)交換機(jī)/路由器先建立路由鄰接關(guān)系,然后通告大量路由給被測(cè)交換機(jī)/路由器,最后在這些通告的路由子網(wǎng)之間建立測(cè)試流量測(cè)試性能,這完全是現(xiàn)網(wǎng)場(chǎng)景下的性能評(píng)估,對(duì)搜索樹的覆蓋率很高。而采用蛇形拓?fù)?,只能進(jìn)行純數(shù)據(jù)層面的測(cè)試,無法再建立協(xié)議平面,如果采用L2 VPN實(shí)現(xiàn)蛇形,那么完全沒有路由,采用L3 VPN,最多只能在每個(gè)端口VRF路由表中設(shè)置若干條靜態(tài)路由,以保證連通性,所以通常是端口1和端口48單一地址之間的簡(jiǎn)單流量,和現(xiàn)網(wǎng)相去甚遠(yuǎn)。由此可知,全端口拓?fù)浜蜕咝瓮負(fù)洳顒e還是比較大的。
由于上述幾方面原因,流量模型的不同,對(duì)設(shè)備施加的壓力不同,設(shè)備的能耗、散熱都不一樣。一般來說,當(dāng)設(shè)備壓力大、CPU負(fù)載高時(shí),能耗大、散熱量高,引起問題的可能性較大。從這個(gè)角度說,全端口比蛇形拓?fù)涓锌赡軠y(cè)試出問題。
另外,全端口拓?fù)涓菀走M(jìn)行問題定位,現(xiàn)在的測(cè)試儀表一般都有基于每一條流的大量實(shí)時(shí)統(tǒng)計(jì),很容易分析出是哪個(gè)端口到哪個(gè)端口的流量發(fā)生問題。蛇形拓?fù)錅y(cè)試出問題,定位很難,不方便很快確定問題出現(xiàn)在哪一段,測(cè)試者看到的只是端到端的問題,一般要做二次測(cè)試來定位。
對(duì)于連通性測(cè)試或者某些功能測(cè)試,蛇形拓?fù)涫且环N性價(jià)比非常高,而且也非常有效的測(cè)試方案,用兩個(gè)端口就可以達(dá)到測(cè)試目的,儀表利用率很高。但是對(duì)于路由器性能測(cè)試,不管是從評(píng)測(cè)機(jī)構(gòu)和企業(yè)設(shè)備選型或評(píng)測(cè)鑒定角度,還是從設(shè)備廠商日常研發(fā)測(cè)試角度,都建議采用全端口拓?fù)溥M(jìn)行測(cè)試。
1 RFC 2544.Benchmarking Methodology for Network Interconnect Devices,1999