郭 亮 ,王素彬 ,趙雋琪 ,陳 驊
(1.中國電信股份有限公司廣東研究院 廣州 510630;2.思博倫通信科技北京有限公司 北京 100191)
在路由器性能測試中,為了使被測設備處于一定的流量壓力下,測試人員需要構造測試環境保證所有端口都有收發雙向的數據轉發流量。在測試一些端口密度相對較大的產品時,通常有兩種方法實現此目的:全端口測試和蛇形測試。
如圖1所示,全端口測試是一種被測設備所有的端口都與測試儀表直接相連,由測試儀表發送所有端口之間的全網狀測試流量,以評估被測設備最大性能的測試方法。

圖1 全端口測試拓撲
如圖2所示,蛇形測試是指被測設備僅用兩個端口與測試儀直接相連,其余端口使用跳線在設備上進行環接,并配合一定的流量轉發策略,使測試流量從與儀表直連的一個端口輸入設備,從一個端口轉發出去后再由另一個端口輸入設備,如此反復多次后由另一個與儀表直連的端口輸出,從而實現所有參與的端口均有流量輸入和輸出。

圖2 蛇形測試拓撲
為實現蛇形測試,需要根據被測設備的情況設置流量轉發策略。如果是二層交換機,可以將被測設備端口設置為無標簽(untag)模式,每兩個一組劃分到一個單獨VLAN,VLAN之間通過外部跳線橋接的方式實現蛇形轉發。
如果是路由器,可以通過以下多種方式實現。
·通過配置策略路由,設定由連接測試儀的端口1進入的流量通過端口2轉發,端口2外部跳線連接端口3,由端口3進入的流量通過端口4轉發……直至最后連接測試儀的另一個端口;反向流亦然。
·將被測設備端口每兩個一組劃分到一個單獨的虛擬路由器,虛擬路由器之間通過外部跳線串聯并啟用靜態或動態路由實現蛇形轉發。
·將被測設備端口每兩個一組發送到一個單獨的2層或3層MPLS VPN,不同VPN之間通過外部跳線串接,從而實現蛇形轉發。
雖然從測試流量的負載上看,全端口測試和蛇形測試是一樣的,但深入分析發現,蛇形測試有很多缺陷,下面從幾個方面進行分析。
時延和抖動是數據通信設備性能測試中非常重要的測試內容之一。
現在交換機在有些應用場合對時延的要求非常高,典型的就是云計算的數據中心交換機。數據中心交換機是典型的高密度交換機,其重要應用領域是金融機構,如證券交易所、期貨交易所等。交換機的時延,可能直接影響競價成功與否、成交價格高低。特別是在國外金融市場有很多高頻交易(high frequency trading,HFT),通過金融建模和高性能計算機系統,進行高頻率的交易,通過大量交易積累來獲取高額利潤。這種交易,對于數據中心交換機的時延要求非常高。國外有過統計,時延1μs等于損失1億美元。所以很多數據中心交換機,如Arista、Cisco Nexus交換機,時延都可以達到400 ns以下。智能變電站內的工業交換機,也對時延有嚴格的要求。
抖動則對另外一些實時應用 (如視頻、語音、1588v2等)的質量有重大影響。這類業務中很大一部分是Internet應用,過大的抖動,給用戶體驗造成嚴重影響。一定范圍內的抖動,可以通過終端的設置,例如合理的緩沖區設置得到平滑。但是超過一定范圍的抖動,則會引起緩沖區的溢出(overrun)或者欠載(underrun),引起語音、視頻質量的劣化。
顯而易見,用全端口拓撲,可以測試交換機每一個報文經過出入物理端口和交換矩陣的每一條路徑上的時延、抖動,而使用蛇形拓撲測試的時延和抖動,則是從物理端口1進入物理端口48處的整條蛇形路徑的端到端時延和抖動。在現網中,以太網分組一般情況下都是從交換機的一個端口進,經過交換矩陣交換,從另外一個端口出,沒有經過蛇形路徑。所以使用蛇形拓撲測試對于時延和抖動測試無現實意義。
在上述例子中,簡單地看全端口拓撲和蛇形拓撲,似乎都對交換機施加了同樣的全負載壓力,但仔細分析,蛇形拓撲在有些情況下不能達到額定的負載。在全端口測試下,不管交換機是否丟失分組,測試儀表總是向被測交換機施加額定的負載。而蛇形測試下,如果有分組丟失,那么就達不到額定的負載。
比如在蛇形拓撲下,假設參與蛇形測試的端口總數為24,測試儀表向端口1發送 1 000幀/s,那么被測設備單方向的額定負載是24 000幀/s。如果在端口1→端口2的轉發中,丟了5個分組,那么端口2環回給端口3的流量就只有995幀/s了,即使在整個蛇形路徑的后面部分不再丟失分組,那么被測設備在這個方向上得到的額定負載也就是 1 000+995×23=23 885幀/s,和額定的負載差了115幀/s。如果分組丟失更多或者路徑上更多的部分分組丟失,那么施加到交換機上的負載和額定負載相差更多。
在構建測試流量的時候,根據不同的測試場景和需求通常有3種測試流量分布的方式,如圖3所示。

圖3 流量分布模式
·fully meshed模式,指流量從每一個端口發往所有其他的端口。
·backbone模式,指流量從部分端口發往另一部分端口,既可以是單向的,也可以是雙向的。
·pair模式,指流量在一對或多對端口之間轉發,既可以是單向的,也可以是雙向的。
在全端口測試時,測試人員可以根據需要選擇任意一種或者多種方式的組合來構建流量,以達到不同的測試效果;而在蛇形測試時,所有參與測試的端口只可能構建pair模式的流量。
而不同模式下對被測設備的壓力也是不同的。圖4、圖5形象地說明了這一情況。

圖4 pair模式下被測設備的壓力情況

圖5 fully meshed模式下被測設備的壓力情況
在pair模式下,測試流量可能只對端口下的轉發處理芯片構成壓力,而在fully meshed模式下,則是對交換引擎/交換矩陣/背板構成壓力。
在全端口測試中,由于所有端口同時發起流量,并且都是相互獨立的,在出端口短期內有很大機率會形成小突發(burst)。在現網中,這稱為microburst,在現網非常常見,需要交換機具備一定的突發處理能力。很多廠商的交換機,如Cisco、Arista、Juniper等都在公開測試中宣稱他們的設備具有處理microburst的能力。
圖6為microburst形成機制示意。

圖6 microburst形成機制
在蛇形測試中,每個端口的流量模型是由第一個端口決定的。如果每對端口之間都能不丟失分組地轉發,那么流量基本上是從端口1復制到端口3,到端口5……是順序轉發,不會出現如圖6所示的microburst,無法解壓緩沖區。在這種情況下,蛇形拓撲很有可能獲得比全端口測試法更好的測試結果,但這種更好的測試結果對于評估設備的真實工作能力毫無益處。
交換機上有很多地址表,比如二層交換機有MAC地址表,三層交換機有MAC地址表、FIB表等。以MAC地址表為例,學習和查找是基于散列算法,以MAC和VLAN為索引進行散列,得到散列索引值,再進行地址表學習和查找。這就存在散列沖突,處理散列沖突對于地址學習和交換機的性能很重要。
看一下全端口拓撲和蛇拓撲的不同情況。在全端口下,一般測試用的每個端口的測試流量的MAC地址是不同的,端口VLAN則根據測試配置決定。在蛇形拓撲下每個端口的測試流量的MAC地址是完全相同,都是端口1和端口48發送的測試幀的地址,而端口1、端口3、端口5等的VLAN是各不相同。兩種情況下,通過
全網狀拓撲和蛇形拓撲在采用多地址下測試結果、在采用單一地址測試端口密度較低的低端設備時,差別微乎其微。但測試流量所用地址越多,被測設備端口密度越高,通過散列算法填表和查表的差異就越明顯。
一般情況下,全端口拓撲的地址分布比較符合現網的情況,而蛇形拓撲這種不同端口下學習到相同MAC地址的情況在現網中很少見,而且會認為是生成樹出現循環的征兆。相比蛇形拓撲,全端口拓撲的測試結果更有實際意義。
對于3層交換設備來說,FIB表依據最長匹配原則,采用搜索樹算法、全端口拓撲,每個測試端口和被測交換機/路由器先建立路由鄰接關系,然后通告大量路由給被測交換機/路由器,最后在這些通告的路由子網之間建立測試流量測試性能,這完全是現網場景下的性能評估,對搜索樹的覆蓋率很高。而采用蛇形拓撲,只能進行純數據層面的測試,無法再建立協議平面,如果采用L2 VPN實現蛇形,那么完全沒有路由,采用L3 VPN,最多只能在每個端口VRF路由表中設置若干條靜態路由,以保證連通性,所以通常是端口1和端口48單一地址之間的簡單流量,和現網相去甚遠。由此可知,全端口拓撲和蛇形拓撲差別還是比較大的。
由于上述幾方面原因,流量模型的不同,對設備施加的壓力不同,設備的能耗、散熱都不一樣。一般來說,當設備壓力大、CPU負載高時,能耗大、散熱量高,引起問題的可能性較大。從這個角度說,全端口比蛇形拓撲更有可能測試出問題。
另外,全端口拓撲更容易進行問題定位,現在的測試儀表一般都有基于每一條流的大量實時統計,很容易分析出是哪個端口到哪個端口的流量發生問題。蛇形拓撲測試出問題,定位很難,不方便很快確定問題出現在哪一段,測試者看到的只是端到端的問題,一般要做二次測試來定位。
對于連通性測試或者某些功能測試,蛇形拓撲是一種性價比非常高,而且也非常有效的測試方案,用兩個端口就可以達到測試目的,儀表利用率很高。但是對于路由器性能測試,不管是從評測機構和企業設備選型或評測鑒定角度,還是從設備廠商日常研發測試角度,都建議采用全端口拓撲進行測試。
1 RFC 2544.Benchmarking Methodology for Network Interconnect Devices,1999