葉 丹,楊 鵬
(北京天地互連信息技術(shù)有限公司 北京100028)
國際互聯(lián)網(wǎng)編號分配機構(gòu)IANA(Internet Assigned Numbers Authority)于2011年2月3日用盡所有IPv4地址池,亞太地區(qū)APNIC(Asia Pacific Network Information Centre)也已經(jīng)在2011年4月19日將IPv4地址分配完畢。IPv4網(wǎng)絡(luò)還同時面臨著帶寬管理困難、網(wǎng)絡(luò)監(jiān)控困難、服務(wù)質(zhì)量沒有保證、網(wǎng)絡(luò)安全保護(hù)能力有限、商業(yè)模式不清晰等問題,IPv6成為下一代互聯(lián)網(wǎng)的趨勢和必然。
許多國家和地區(qū)已經(jīng)在積極地進(jìn)行IPv6部署工作。美國方面提倡NGI計劃,已建成試驗網(wǎng)VBNS和Internet2,并要求國防部、政府網(wǎng)絡(luò)和ICP(internet content provider,互聯(lián)網(wǎng)內(nèi)容提供商)于2008年6月前支持IPv6。澳大利亞在2009年7月發(fā)布了《澳大利亞政府實現(xiàn)IPv6策略》。歐洲方面,歐盟委員會已經(jīng)在歐盟行政系統(tǒng)下成立了IPv6工作小組,為歐洲地區(qū)勾勒整體的IPv6發(fā)展藍(lán)圖。亞洲方面,日本制定了“e-Japan”的戰(zhàn)略并于2001-2005年開始全日本的商用化服務(wù)。韓國和印度也已經(jīng)制定IPv6演進(jìn)和發(fā)展計劃。我國在國家政策、商業(yè)創(chuàng)新、安全管控的驅(qū)動下也開始對IPv6進(jìn)行部署。2011年12月23日,時任國務(wù)院總理溫家寶主持召開國務(wù)院常務(wù)會議,研究部署以加快發(fā)展我國下一代互聯(lián)網(wǎng)產(chǎn)業(yè)。
IPv6的部署和發(fā)展需要測試來保證其正常有序進(jìn)行。通過IPv6測試可以發(fā)現(xiàn)IPv6發(fā)展中的問題,并提出指導(dǎo)性建議,進(jìn)而幫助和指導(dǎo)IPv6演進(jìn)和發(fā)展戰(zhàn)略的制定。IPv6測試是對IPv6發(fā)展的把關(guān)以及質(zhì)量的保證。
自動化測試大幅度提高了效率,是測試發(fā)展的趨勢。自動化測試較早出現(xiàn)于專業(yè)做設(shè)備和軟件的廠商?,F(xiàn)在自動化部門是各大設(shè)備廠商不可或缺的重要部分。測試的自動化程度也越來越高。
例如某著名的設(shè)備生產(chǎn)商,在2008年開始推廣自動化測試,2009年成立獨立的自動化部門,2010年自動化測試逐漸走向成熟,開始要求各產(chǎn)品線嚴(yán)格執(zhí)行自動化測試。它早期的自動化測試工具有AT1(此為代號,非實際名稱),AT1發(fā)展之初主要用于功能性測試,之后迅速加入了性能測試和壓力測試。2011年,該廠商的自動化測試已經(jīng)較為成熟,這時新一代自動化測試工具AT2(此為代號,非實際名稱)開始全面使用。AT2比之前的第一代自動化測試工具更加智能,增加了更多的功能,操作更簡捷。
再如思博倫,其為測試服務(wù)廠商的代表,推出的測試平臺TestCenter是專業(yè)的、大家比較熟悉的自動化測試工具。TestCenter致力于一致性、功能性和性能測試。
IPv6的發(fā)展引入了IPv6測試的需求,自動化測試又是測試發(fā)展的趨勢。IPv6自動化測試平臺是市場的產(chǎn)物。2004年,IPv6自動化測試平臺——AIOT6出現(xiàn)并得以發(fā)展。
AIOT6主要用于IPv6互通性測試,是一種可以自動執(zhí)行IPv6互通性測試的工具。AIOT6可以實現(xiàn)自動化命令執(zhí)行和自動化配置,可以自動完成ping6、ifconfig等命令的發(fā)放以及對測試環(huán)境中各個節(jié)點的自動配置。它簡化了測試人員的工作,為IPv6互通性測試提供了極大便利。
AIOT6可以應(yīng)用在互通性測試服務(wù),測試認(rèn)證以及測試大會等測試活動。
AIOT6由3個部分組成,分別是6Manager、6Agent和6Command。這3個部分合作實現(xiàn)IPv6互通性的自動化測試。
6Manager是測試管理器,用于控制測試的執(zhí)行順序和進(jìn)度。它可以對用戶、6Agent和6Command進(jìn)行操作。6Agent是6Manager的網(wǎng)絡(luò)通信代理,運行在6Manager操作的每一個節(jié)點。6Command是命令執(zhí)行器,運行在6Manager操作的每一個節(jié)點,可以在設(shè)備上執(zhí)行在6Manager上操作的命令。
AIOT6支持多個操作平臺,如下列舉了幾種對IPv6支持較好的操作系統(tǒng):FreeBSD、NetBSD、OpenBSD、Fedora。
IPv6自動化測試可以分為一致性測試和互通性測試。AIOT6主要用于IPv6互通性的自動化測試。通俗來說,互通性測試是驗證被測設(shè)備與不同廠商設(shè)備之間互連互通能力的一種測試。
AIOT6提供統(tǒng)一的測試拓?fù)?。這個測試拓?fù)鋷缀踹m用于所有IPv6互通性測試場景。AIOT6的測試拓?fù)淙鐖D1所示。
這個統(tǒng)一的測試拓?fù)涫且粋€物理拓?fù)?,需要連接至少6個節(jié)點:DUT、6Manager、Monitor、Reference-1、Reference-2和Target。連接至少6個節(jié)點是為了構(gòu)造一個支持多場景的物理拓?fù)洌@個物理拓?fù)淇梢灾С謳缀跛械腎Pv6互通性測試場景。
圖1中,DUT為被測設(shè)備,每個測試場景的邏輯拓?fù)涠紩@個設(shè)備。6Manager為測試管理器,用于遠(yuǎn)程控制連接的各個節(jié)點。Monitor用于數(shù)據(jù)分組監(jiān)控,在測試中抓取數(shù)據(jù)分組作為測試輸出的一部分。Reference-1和Reference-2表示兩個參考節(jié)點,是為了組網(wǎng),讓物理拓?fù)淇梢詰?yīng)用于更豐富的測試場景。Target*表示4個來自不同廠商的用于互通性測試的設(shè)備,這里一般用2個不同操作平臺的主機加上2個不同系統(tǒng)的路由器。這為一個最基本的配置,Target可以包含更多不同廠商、不同類型的設(shè)備。一般來說,一次測試只需要連接一個Target,如果其他3個Target設(shè)備網(wǎng)絡(luò)接口處于“Down”狀態(tài),那可以將所有Target設(shè)備連接到這個統(tǒng)一測試拓?fù)渖稀?個Target節(jié)點都連接到物理拓?fù)涞暮锰幨亲寽y試自動化程度更高,IPv6互通性測試中,更換與之互通的設(shè)備,也不需要手動去改變物理拓?fù)涞倪B接。帶有標(biāo)識(X)的設(shè)備運行了6Agent和6Command程序,包括Target*、Reference-1、Reference-2和Monitor。
下面給出一個具體的測試場景來說明AIOT6的測試原理和自動化實現(xiàn),以最簡單的ICMPv6 Echo的互通性測試為例。
ICMPv6 Echo互通性測試的邏輯拓?fù)淙鐖D2所示。
圖2中,被測設(shè)備DUT是一個路由器,Target是與之互通的設(shè)備,它是一個主機。這是IPv6互通性測試中最簡單的一個測試場景。
簡單來說,AIOT6實現(xiàn)自動化的原理就是將測試場景的邏輯拓?fù)溆成涞綔y試環(huán)境的物理拓?fù)渖?,自動化測試腳本將需要發(fā)放的命令進(jìn)行封裝,包括配置命令、發(fā)送echo request等。由6Manager對測試執(zhí)行順序和進(jìn)度進(jìn)行監(jiān)控,Monitor對測試執(zhí)行中的數(shù)據(jù)分組進(jìn)行抓取和監(jiān)控,抓取的數(shù)據(jù)分組作為測試結(jié)果文件的一部分。
圖1 AIOT6統(tǒng)一測試拓?fù)?/p>
圖2 ICMPv6 Echo互通性測試邏輯拓?fù)?/p>
測試流程可以概括如下。
(1)在AIOT6客戶端有root權(quán)限的前提下,運行6Agent和6Command的程序(AIOT6客戶端是指運行了6Agent和6Command程序的設(shè)備,比如統(tǒng)一測試拓?fù)渖系腡arget*、Reference-1、Reference-2和Monitor)。
(2)在6Manager上將自動化測試腳本放在合適的目錄下。
(3)在6Manager上編輯配置文件。
(4)在6Manager上生成測試場景。
(5)觸發(fā)測試執(zhí)行。
(6)測試過程中將測試結(jié)果文件有序輸出到特定目錄下。
(7)初始化測試環(huán)境。
AIOT6很大程度上提高了測試的效率,簡化了測試人員的工作。使用自動化測試,命令的發(fā)放幾乎可以在瞬間就完成,為測試節(jié)約了很多時間。測試人員從之前僅僅一組測試就需要反復(fù)敲打上百條測試命令,到現(xiàn)在只需一條簡單的觸發(fā)測試執(zhí)行的命令,從之前需要反復(fù)手動連接和更換測試環(huán)境到現(xiàn)在只需對測試管理器進(jìn)行簡單的操作,可見IPv6自動化測試平臺是一款非常實用的工具。
相比其他自動化測試工具,AIOT6在互通性測試上起步非常早,將近10年的成長和發(fā)展讓它不斷成熟和專業(yè)化。另外,AIOT6的擴展性也非常好,如有需要,可以支持更加豐富的測試場景,開發(fā)更多自動化腳本。AIOT6這款工具更加適合用于提供測試服務(wù)。
圖3 AIOT6與手動測試效率對比
AIOT6主要的應(yīng)用是IPv6互通性測試。這款工具是專門為IPv6互通性測試設(shè)計的,適用于幾乎所有IPv6互通性測試場景,是一款有針對性的、專業(yè)的自動化測試工具。
目前市面上用于互通性測試的自動化測試工具是非常少的。自動化測試更多的出自設(shè)備廠商或軟件廠商,主要用于對自己的產(chǎn)品進(jìn)行測試和調(diào)試。IPv6發(fā)展的早期,許多設(shè)備廠商對協(xié)議的理解會有些許不同,互通性測試是非常必要的。一些實驗室可以提供IPv6的互通性測試服務(wù),這時AIOT6就是一款必要且實用的自動化測試工具。
隨著IPv6越來越受到重視,許多單位和組織采購產(chǎn)品都要求支持IPv6,所以設(shè)備需要通過IPv6進(jìn)行認(rèn)證?;ネㄐ詼y試常常出現(xiàn)在IPv6認(rèn)證中。AIOT6這款自動化工具也非常適用于頒發(fā)IPv6認(rèn)證的政府機構(gòu)、國際組織、實驗室等。
其實可以這么認(rèn)為,只要有互通性測試規(guī)范,AIOT6自動化測試平臺就有用武之地。AIOT6也具有非常好的擴展性。它也適用于大中型規(guī)模的IPv6測試大會和活動。2012年11月在北京郵電大學(xué)科技大廈舉辦的IPv6過渡技術(shù)國際測試大會就是一個適合使用AIOT6的典型例子。
AIOT6使互通性測試的配置和命令執(zhí)行可以實現(xiàn)自動化。統(tǒng)一的測試拓?fù)涮峁┝艘粋€穩(wěn)定的測試環(huán)境,每一個測試場景都可以映射到統(tǒng)一的測試拓?fù)?。測試輸出方面,AIOT6可以自動生成測試場景文件,并將測試結(jié)果有序并且完整地輸出。這簡化了測試人員的工作,為IPv6互通性測試提供了很大的便利。
在測試效率方面,筆者做了一項粗略的統(tǒng)計,記錄了20次互通性測試的數(shù)據(jù),選出2位測試人員,這2個測試人員同時熟悉手動測試和自動化測試,每個測試人員進(jìn)行10組互通性測試。其中5組由測試人員手動完成,另外5組由AIOT6自動化實現(xiàn)。 這10組測試均執(zhí)行同一套測試用例(每組38個測試?yán)?。記錄下完成一組測試的總體時間,包括搭建環(huán)境、執(zhí)行測試和整理測試輸出信息等。圖3是AIOT6與手動測試效率對比。
其中,手動測試1和自動化測試1是由第一個測試人員執(zhí)行的,手動測試2和自動動化測試2則是由測試人員2完成的。試驗結(jié)果表明,AIOT6自動化測試能更加高效地完成測試任務(wù),為測試工作節(jié)約了時間,也為測試人員減輕了工作量。
在準(zhǔn)確性方面,筆者對之前的20組測試結(jié)果的輸出進(jìn)行檢查,包括抓取的數(shù)據(jù)分組、測試拓?fù)洹y試結(jié)果等文件,將每組測試結(jié)果中出現(xiàn)的錯誤進(jìn)行統(tǒng)計(假設(shè)測試執(zhí)行中一切設(shè)備正常運行,這里的錯誤指的是測試結(jié)果記錄錯誤、抓取數(shù)據(jù)分組不完整等),統(tǒng)計測試數(shù)據(jù)見表1。
根據(jù)以上的統(tǒng)計數(shù)據(jù)發(fā)現(xiàn),無論是手動操作還是自動化操作,準(zhǔn)確率都是非常高的。使用AIOT6進(jìn)行自動化測試,可以避免一些手動測試中出現(xiàn)的操作失誤,比如抓取數(shù)據(jù)分組時間太晚、輸入命令有誤、結(jié)果記錄錯誤等。AIOT6自動化測試的準(zhǔn)確性非常令人滿意。
表1 AIOT6與手動測試錯誤統(tǒng)計
1 ETSI TS 102 237-1.Telecommunications and Internet Protocol Harmonization Over Networks(TIPHON)Release 4;Interoperability Test Methods and Approaches;Part 1:Generic Approach to Interoperability Testing,2003
2 CIO Council.Planning Guide/Roadmap Toward IPv6 Adoption within the US Government Version 2.0,July 2012
3 IPv6 Forum.IPv6 Ready Phase1/2 Test Interoperability Specification Core Protocols Revision 4.0.4,March 2010
4 CCSA.IPv6過渡技術(shù)與實施方案,2013