路由器測試的型別和方法[轉]
隨著資訊產業的飛速發展,計算機網路技術得到廣泛應用,計算機網路已成為現代工作生活中必不可少的一部分。路由器作為計算機網的核心裝置,相應地在網路上存在廣泛的應用。高階路由器現已由企業級裝置成為公眾網上重要的電信級裝置。隨著網際網路絡的逐步普及以及它在生活中重要性的增加,路由器的效能、功能、安全性、可靠性等指標變得越來越重要。所以對路由器的測試有其重要性與必要性。路由器測試規範主要有下面通訊行業標準來規範:YD/T1156-2001《路由器測試規範-高階路由器》;YD/T1098-2001《路由器測試規範-低端路由器》。以上標準分別參照下面標準制定:YD/T1097-2001《路由器裝置技術規範-高階路由器》;YD/T1096-2001《路由器裝置技術規範-低端路由器》。
本文的測試介紹主要依據上述路由器測試規範。但是由於以上測試規範只作裝置入網測試標準,是一種入門測試,所以我們重點介紹在上述規範基礎上補充的一些其他測試內容。
一、測試的目的和內容
路由器是透過轉發資料包來實現網路互連的裝置,可以支援多種協議(例如TCP/IP,SPX/IPX,AppleTalk),可以在多個層次上轉發資料包(例如資料鏈路層、網路層、應用層)。
路由器需要連線兩個或多個邏輯埠,至少擁有一個物理埠。路由器根據收到的資料包中網路層地址以及路由器內部維護的路由表決定輸出埠以及下一條路由器地址或主機地址,並且重寫鏈路層資料包頭。路由表必須動態維護來反映當前的網路拓撲。路由器通常透過與其他路由器交換路由資訊來完成動態維護路由表。
(一)路由器分類
當前路由器分類方法各異。各種分類方法有一定的關聯,但是並不完全一致。通常可以按照路由器能力分類、結構分類、網路中位置分類、功能分類和效能分類等方法。在路由器標準制定中主要按照能力分類,按能力分為高階路由器和低端路由器。背板交換能力大於20Gbit/s,吞吐量大於20Mbit/s的路由器稱為高階路由器。交換能力在上述資料以下的路由器成為低端路由器。與此對應,路由器測試規範分為高階路由器測試規範和低端路由器測試規範。
(二)測試目的及內容
透過測試路由器,可以瞭解到哪些路由器能提供最好的效能、路由器在不同負載下的行為、模型化網路使用路由器的設計引數、路由器能否處理突發流量、路由器的效能限制、路由器能否提供不同服務質量、路由器不同體系結構對功能和效能的影響、路由器的功能特性和效能指標、路由器的使用是否影響網路安全、路由器協議實現的一致性以及路由器可靠性和路由器產品的優勢和劣勢等內容。
低端路由器裝置測試主要包括:常規測試,即電氣安全性測試;環境測試,包括高低溫、溼度測試和高低溫儲存測試;物理介面測試,測試低端路由器可能擁有介面的電氣和物理測性;協議一致性測試,測試協議實現的一致性;效能測試,測試路由器的主要效能;管理測試,主要測試路由器對無大項網管功能的支援。
高階路由器測試主要包括:介面測試,高階路由器可能擁有的介面測試;ATM協議測試,測試ATM協議要求;PPP協議測試,測試PPP協議的一致性;IP協議測試,測試IP協議一致性;路由協議測試,測試路由協議一致性;網管功能測試,驗證測試閘道器功能;效能和QoS測試,測試路由器效能和QoS能力驗證;網路同步測試,測試裝置同步定時能力;可靠性測試,驗證裝置可靠性;供電測試,測試整機功耗等內容;環境測試,包括高低溫、溼度測試和高低溫儲存測試。
上述兩個測試規範由於起草單位以及起草時間不同,組織安排有所不同。除上述測試外,建議在測試中考慮下面所列測試專案。
(1)功能測試:主要來驗證產品是否具備了設計的每一項功能。(2)穩定性和可靠性測試:一般採取加重負載的辦法來評估和分析裝置在長時間、高負載的情況下的執行能力。(3)互操作性測試:不同的網路產品之間必須能夠互操作。互操作性測試考察一個網路產品是否能在一個由不同廠家的多種網路產品互連的網路環境中很好地工作,如驗證路由器與Cisco產品的互操作,交換機與Cisco、3Com、Lucent、Intel等的互操作等。
二、測試方法
路由器測試方法通常分為本地測試法、分佈測試法、遠端測試法和協同測試法。由於篇幅限制,本文不介紹其他測試法的特點以及適用範圍,只列出路由器測試中最常用到的遠端測試法。遠端測試法如圖1所示:
其中,控制觀察點(PCO):通常由兩個先入先出(FIFO)佇列組成,其功能類似於一對輸入輸出埠,向佇列一端傳送命令,從同一佇列的另一端接收應答訊號;被測實體(IUT):Item Under Test;下測試器(LT):透過位於被測試實體下層的PCO與被測試層互動的測試系統稱為下層測試系統。
三、測試分類
綜合上文中的測試內容,路由器測試一般可以分成以下幾類:功能測試、效能測試、穩定性可靠性測試、一致性測試、互操作性測試以及網管測試。
(一)功能測試
路由器功能通常可以劃分為如下方面。
(1)介面功能:該功能用作將路由器連線到網路。可以分為區域網介面及廣域網介面兩種。區域網介面主要包括乙太網、令牌環、令牌匯流排、FDDI等網路介面。廣域網介面主要包括E1/T1、E3/T3、DS3、通用序列口(可轉換成X.21DTE/DCE、V.35DTE/DCE、RS232DTE/DCE、RS449DTE/DCE、EIA530DTE)等網路介面。(2)通訊協議功能:該功能負責處理通訊協議,可以包括TCP/IP、PPP、X.25、幀中繼等協議。(3)資料包轉發功能:該功能主要負責按照路由表內容在各埠(包括邏輯埠)間轉發資料包並且改寫鏈路層資料包頭資訊。(4)路由資訊維護功能:該功能負責執行路由協議,維護路由表。路由協議可包括RIP、OSPF、BGP等協議。(5)管理控制功能:路由器管理控制功能包括五個功能,SNMP代理功能,Telnet伺服器功能,本地管理、遠端監控和RMON功能。透過多種不同的途徑對路由器進行控制管理,並且允許紀錄日誌。(6)安全功能:用於完成資料包過濾,地址轉換,訪問控制,資料加密,防火牆,地址分配等功能。
路由器對上述功能並非必要完全實現。但是由於路由器作為網路裝置,存在最小功能集,對最小功能集所規定的功能,路由器必須支援。因為絕大多數功能測試可以由介面測試、效能測試、協議一致性測試和網管測試所函蓋,所以路由器功能測試一般可以只對其他測試無法涵蓋的功能作驗證性測試。路由器功能測試一般採用遠端測試法。
(二)效能測試
路由器是IP網路的核心裝置,其效能的好壞直接影響IP網網路規模、網路穩定性以及網路可擴充套件性。由於IETF沒有對路由器效能測試作專門規定,一般來說只能按照RFC2544( Benchmarking Methodology for Network Interconnect Devices)作測試。但路由器區別於一般簡單的網路互連裝置,在效能測試時還應該加上路由器特有的效能測試。例如路由表容量、路由協議收斂時間等指標。
路由器效能測試應當包括下列指標。
(1)吞吐量:測試路由器包轉發的能力。通常指路由器在不丟包條件下每秒轉發包的極限,一般可以採用二分法查詢該極限點。(2)時延:測試路由器在吞吐量範圍內從收到包到轉發出該包的時間間隔。時延測試應當重複20次然後取其平均值。(3)丟包率:測試路由器在不同負荷下丟棄包占收到包的比例。不同負荷通常指從吞吐量測試到線速(線路上傳輸包的最高速率),步長一般使用線速的10%。(4)背靠背幀數:測試路由器在接收到以最小包間隔傳輸時不丟包條件下所能處理的最大包數。該測試實際考驗路由器快取能力,如果路由器具備線速能力(吞吐量=介面媒體線速),則該測試沒有意義。(5)系統恢復時間:測試路由器在過載後恢復正常工作的時間。測試方法可以採用向路由器埠傳送吞吐量110%和線速間的較小值,持續60秒後將速率下降到50%的時刻到最後一個丟包的時間間隔。如果路由器具備線速能力,則該測試沒有意義。(6)系統復位:測試路由器從軟體復位或關電重啟到正常工作的時間間隔。正常工作指能以吞吐量轉發資料。
在測試上述RFC2544中規定的指標時應當考慮下列因素。
幀格式:建議按照RFC2544所規定的幀格式測試;幀長:從最小幀長到MTU順序遞增,例如在乙太網上採用64, 128, 256, 512, 1024, 1280, 1518位元組;認證接收幀:排除收到的非測試幀,例如控制幀、路由更新幀等;廣播幀:驗證廣播幀對路由器效能的影響,上述測試後在測試幀中夾雜1%廣播幀再測試;管理幀:驗證管理幀對路由器效能的影響,上述測試後在測試幀中夾雜每秒一個管理幀再測試;路由更新:路由更新即下一跳埠改變對效能的影響;過濾器:在設定過濾器條件下對路由器效能的影響,建議設定25個過濾條件測試;協議地址:測試路由器收到隨機處於256個網路中的地址時對效能的影響;雙向流量:測試路由器埠雙向收發資料對效能的影響;多埠測試:考慮流量全連線分佈或非全連線分佈對效能的影響;多協議測試:考慮路由器同時處理多種協議對效能的影響;混合包長:除測試所建議的遞增包長外,檢查混合包長對路由器效能的影響,RFC2544除要求包含所有測試包長外沒有對混合包長中各包長所佔比例作規定。筆者建議按照實際網路中各包長的分佈測試,例如在沒有特殊應用要求時乙太網介面上可採用60位元組包50%,128位元組包10%,256位元組包15%,512位元組包10%,1500位元組包15%。
除上述RFC2544建議的測試項外還建議測試如下內容。
①路由震盪:路由震盪對路由器轉發能力的影響。路由震盪程度即每秒更新路由的數量可以依據網路條件而定。路由更新協議可採用BGP。②路由表容量:測試路由表大小。骨幹網路由器通常執行BGP,路由表包含全球路由。一般來說要求超過10萬條路由,建議透過採用BGP輸入匯出路由計數來測試。③時鐘同步:在包含相應埠例如POS口的路由器上測試內鍾精度以及同步能力。④協議收斂時間:測試路由變化通知到全網所用時間。該指標雖然與路由器單機效能有關,但是一般只能在網路上測試,而且會因配置改變而變化。可以在網路配置完成後透過檢查該指標來衡量全網效能。測試時間應當根據具體專案以及測試目標而定。一般認為測試時間應當介於60秒到300秒之間。另外一般可以根據使用者要求和測試目標作設定選擇。路由器效能測試一般可採用遠端測試法。
(三)一致性測試
路由器一致性測試通常採用“黑箱”方法,被測試裝置IUT叫做“黑箱”。測試系統透過控制觀察點PCO與被測試裝置介面,其測試原理如圖2所示。
不同的測試事件是透過不同的PCO來控制和觀察的,按照其應答是否遵守規範,即定時關係和資料匹配限制,測試的結果可分為透過、失敗、無結果3種。路由器是一種複雜的網路互連裝置,需要在各個通訊層上實現多種協議。例如相應的介面的物理層和鏈路層協議、IP/ICMP等網際網路層協議、TCP/UDP等傳輸層協議、Telnet/SNMP等應用層協議以及RIP/OSPF/BGP等路由協議。
協議一致性測試應當包含路由器所實現的所有協議。由於該測試內容繁多測試複雜,在測試中可以選擇重要的協議以及所關心的內容測試。由於骨幹網上路有器可能影響全球路由,所以在路由器測試中應特別重視路由協議一致性測試例如OSPF和BGP協議。由於一致性測試只能選擇有限測試例測試,一般無法涵蓋協議所有內容。所以即使透過測試也無法保證裝置完全實現協議所有內容,所以最好的辦法是在現實環境中試執行。路由器一致性測試一般採用分散式測試法或遠端測試法。
(四)互操作測試
由於通訊協議、路由協議非常複雜且擁有眾多選項,實現同一協議的路由器並不能保證互通互操作。並且因為一致性測試能力有限,即使透過協議一致性測試也未必能保證完全實現協議。所以有必要對裝置進行互操作測試。
互操作測試實際上是將一致性測試中所用的儀表替換成需要與之互通互操作的裝置,選擇一些重要且典型的互連方式配置,觀察兩裝置是否能按照預期正常工作。
(五)穩定性、可靠性測試
由於大多數路由器需要每天24小時,每週7天連續工作,作為Internet核心裝置的骨幹路由器的穩定性和可靠性尤其重要。所以使用者需要了解露由器的穩定性和可靠性。
路由器的穩定性和可靠性很難測試。一般可以透過兩種途徑的到:(1)廠家透過關鍵部件的可靠性以及備份程度計算系統可靠性;(2)使用者或廠家透過大量相同產品使用中的故障率統計產品穩定性和可靠性。當然,使用者也可以透過在一定時間內對試執行結果的要求來在一定程度上保證路由器的可靠性與穩定性。
(六)網管測試
網管測試一般測試網管軟體對網路以及網路上裝置的管理能力。由於路由器是IP網的核心裝置,所以必須測試路由器對網管的支援度。
如果路由器附帶網管軟體,可以透過使用所附帶的網管軟體來檢查網管軟體所實現的配置管理、安全管理、效能管理、計帳管理、故障管理、拓撲管理和檢視管理等功能。如果路由器不附帶網管軟體,則應當測試路由器對SNMP協議實現的一致性以及對MIB實現的程度。由於路由器需要實現的MIB非常多,每個MIB都包含大量內容,很難對MIB實現完全測試。一般可以透過抽測重要的MIB項來檢查路由器對MIB的實現情況。
另外,由於路由器裝置非常複雜,可能採用的介面和協議多種多樣,所以對路由器測試所採用的儀表以及儀表的配置必須根據測試內容以及路由器實際配置來決定。一般來說路由器測試所使用的儀表可分為效能測試儀表、協議測試儀表以及其他種類儀表。
(1)效能測試儀表主要測試IP包轉發能力。最典型的有NetCom公司的SmartBit、安捷倫公司的Router Tester等。效能測試儀表有時也要求一些協議模擬能力,例如對BGP、OSPF的模擬。(2)協議測試儀表主要測試路由器對協議實現的一致性。主要有路由協議一致性測試儀表例如安捷倫公司的Router Tester等。其他協議例如TCP/IP、ATM、ISDN、SNMP等眾多路由器實現的協議一致性測試所用儀表可使用各種專用或通用儀表。(3)其他儀表主要包括一些通用儀表,如示波器、萬用表、率耗器、光功率計等。還有在測試儀表的選擇中還應當考慮儀表的精度以及誤差範圍。綜上所述路由器的測試是一項複雜但是非常重要的工作,對路有器的測試只有在研究測試方法的基礎上結合具體測試情況,制定正確測試方案,選擇合適的測試儀表,認真測試才能達到測試目的。
博思通科技期待與您的合作
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26709915/viewspace-1057663/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 測試NUMBER型別的效能型別
- 資料型別和運算子測試題資料型別
- 介面測試和效能測試的區別
- 介面測試和功能測試的區別
- java基本型別和包裝型別的“==”和equals()方法Java型別
- 測試物件和測試級別物件
- js型別測試學習JS型別
- 安全測試和滲透測試的區別
- 測試方案和測試計劃的區別
- 遊戲測試和軟體測試的區別遊戲
- Scala 泛型型別和方法泛型型別
- 軟體驗收測試 常見測試報告的型別測試報告型別
- 軟體測試轉型之路
- 測試Java中的long,int基本型別Java型別
- expdp測試包含有lob型別的物件型別物件
- C++中的向上型別轉換和向下型別轉換C++型別
- 軟體測試開發:常見測試型別概念型別
- 主流資料庫欄位型別轉.Net型別的方法資料庫型別
- C++ const void * 型別轉換簡單測試C++型別
- mysql bigint型別和datetime型別的轉換MySql型別
- 我的測試之旅:(13)轉型——敏捷教練敏捷
- 敏捷開發中的7種測試型別敏捷型別
- 測試使用字串型別要注意的地方字串型別
- javascript資料型別檢測方法JavaScript資料型別
- 軟體測試的策略和方法
- 網路安全滲透測試的型別!滲透測試入門教程型別
- Android Testing學習01 介紹 測試測什麼 測試的型別Android型別
- C#變數型別(1):引用型別和值型別 (轉)變數型別
- RAW資料型別可以建立索引,但是不走索引測試(轉)資料型別索引
- String型別的屬性和方法型別
- 4大軟體測試策略的特點和區別(單元測試、整合測試、確認測試和系統測試)
- 【NUMBER】有關Oracle NUMBER型別定義中precision和scale的測試和總結Oracle型別
- JS中其他資料型別轉為number資料型別的方法JS資料型別
- JNI資料型別和方法資料型別
- trait 和型別的方法同名的例子AI型別
- 軟體測試報告模板的型別有哪些?測試報告型別
- 金融行業的軟體測試型別細分行業型別
- JS專題之資料型別和型別檢測JS資料型別