思博倫通信
思博倫技術(shù)專欄
您的測試是否適應(yīng)真實的世界
——為什么真實的測試需要的是仿真,而不僅僅是對4~7層的模擬
思博倫通信
編者按:在缺少真正的安全和性能測試時,我們看到的往往是終端用戶的不滿、產(chǎn)品開發(fā)或服務(wù)交付中的延誤、收入損失,以及其它財務(wù)方面的賠償,例如巨額的罰金等。真實且恰當(dāng)?shù)臏y試可以幫助您在網(wǎng)絡(luò)和運營中避免這些類型的重大風(fēng)險,更重要的是,可以避免您的聲譽遭受日益嚴(yán)重的損害。思博倫通信的《您的測試是否適應(yīng)真實的世界》一文對為什么真實的測試需要的是仿真,而不僅僅是對4~7層的模擬進行了詳細(xì)的分析和研究。為了樹立對系統(tǒng)的信心,需要使用真實的測試場景對其進行連續(xù)的測試和監(jiān)視,這就需要使用仿真而不是使用模擬的場景,因為后者只能做到形似,而無法復(fù)制出真實的現(xiàn)實環(huán)境。
如今的世界,永遠(yuǎn)在線,永遠(yuǎn)聯(lián)網(wǎng),我們也都期待能享有安全、無縫且無拘無束的在線體驗。在許多情況下,必須遵守一致性要求和服務(wù)水平協(xié)議,才能滿足和/或超越這些期待。然而,在缺少真正的安全和性能測試時,我們看到的往往是終端用戶的不滿、產(chǎn)品開發(fā)或服務(wù)交付中的延誤、收入損失,以及其它財務(wù)方面的賠償,例如巨額的罰金等。真實且恰當(dāng)?shù)臏y試可以幫助您在網(wǎng)絡(luò)和運營中避免這些類型的重大風(fēng)險,更重要的是,可以避免您的聲譽遭受日益嚴(yán)重的損害。
利用可支持最高水平真實性的測試設(shè)備,您將能夠確保通過真實的測試來充分實現(xiàn)預(yù)期的性能、可用性和擴展能力水平。正因如此,要想在測試中實現(xiàn)應(yīng)有的真實性,最關(guān)鍵的就是選擇能夠仿真的測試解決方案,而不僅僅是具備模擬的能力。
在反映真實世界的測試中,最重要的是仿真出整個網(wǎng)絡(luò),而不僅僅是單個交換機和路由器。這一過程中包含與服務(wù)質(zhì)量(QoS)相關(guān)的各種控制變量,例如時延和包丟失等。4~7層的真實網(wǎng)絡(luò)測試還要涉及到對TCP/IP棧和IPSec等安全協(xié)議的各種行為的仿真。這類測試還包括與體驗質(zhì)量(QoE)相關(guān)的各種控制變量,例如響應(yīng)時間和視頻質(zhì)量等。
紙面上看起來,測試解決方案常常十分相似。要確保找到正確的測試解決方案,您可以在做出最后的選擇之前考慮對它們進行一次實戰(zhàn)或深度試用。通過這種前瞻且連續(xù)的方法,可以讓您的聯(lián)網(wǎng)產(chǎn)品和服務(wù)經(jīng)受攻擊的考驗并得到強化,也只有這樣您才能為意外情況做好計劃,并確保您的測試確實適合您所在環(huán)境的獨特要求。
測試設(shè)備應(yīng)當(dāng)能夠?qū)崿F(xiàn)完整TCP/IP棧上的流量生成,包括4~7層,以及第2層在內(nèi)。由于各機構(gòu)都在網(wǎng)絡(luò)的建設(shè)和防護方面投入了巨大的資源,因此要想維持整個運營和基礎(chǔ)設(shè)施的完整性和連續(xù)性,性能和安全測試就具有至關(guān)重要的意義。
為確保有能力應(yīng)對持續(xù)增加的流量負(fù)載,有些客戶可能會超量采購并/或超量供應(yīng)硬件和軟件,希望以此來確保運營的安全穩(wěn)妥。如果能夠在正確的測試解決方案中進行恰當(dāng)?shù)耐顿Y,就可以避免超量供應(yīng)所帶來的過度支出。
要想真正地測試有狀態(tài)應(yīng)用感知安全設(shè)備,真實性必不可少。有效的測試還需要另外一個重要的組成部分:適合的測試解決方案。這一過程中的挑戰(zhàn)在于,要選擇可實現(xiàn)最高水平測試真實性的測試解決方案,而這也是產(chǎn)生有意義測試結(jié)果所不可或缺的。
目前,市面上有多種不同的類型測試解決方案,包括免費軟件、自研解決方案以及商用解決方案選項。在網(wǎng)絡(luò)測試這個紛繁復(fù)雜的世界中,每種類型的解決方案都有其位置。但如果需要的是讓人充滿信心的結(jié)果,測試必須根植于特有的測試需求和環(huán)境。測試應(yīng)生成真實的有狀態(tài)終端用戶流量,否則那種避重就輕且流于表面的測試(缺少適當(dāng)?shù)谋粶y負(fù)載)或許只會創(chuàng)造出一種虛假的安全感。
●驗證網(wǎng)絡(luò)設(shè)備,發(fā)現(xiàn)性能極限。
●通過概念驗證(PoC)對網(wǎng)絡(luò)設(shè)計和升級執(zhí)行盡職審查。
●根據(jù)要求的變化,規(guī)劃出擴展和增長的空間,為網(wǎng)絡(luò)資源的恰當(dāng)供應(yīng)提供支持。
●確認(rèn)自己所測試的是網(wǎng)絡(luò)所具備的真實行為。
●執(zhí)行生產(chǎn)前和生產(chǎn)過程中的測試,對現(xiàn)實系統(tǒng)的行為建立信心。
●了解生產(chǎn)流量的模式,以及如何對其進行測試。
●確保安全解決方案能夠在負(fù)載下經(jīng)受住考驗。
測試仿真和測試模擬通常是兩個可以互換使用的概念。然而,兩者并不是一回事。測試仿真指的是模仿、復(fù)制或重現(xiàn)具體的場景,從而重新創(chuàng)造出某個時間點的快照。而測試模擬是一種對網(wǎng)絡(luò)場景的編造,其目標(biāo)是與某個場景相似,且如果不仔細(xì)評價的話只要說得過去或經(jīng)得起推敲即可。盡管兩者之間存在一種微妙的相似性,但要想確保真實的測試,兩者的區(qū)別至關(guān)重要。
要想更好地理解兩者的異同,可參考如下的例子:
●測試仿真:該解決方案的仿真能力可以生成合法且真實的負(fù)載。利用這種方式,可以對目標(biāo)系統(tǒng)的額外特性和能力加以測試。仿真還可以驅(qū)動一些間接行為,例如向目標(biāo)系統(tǒng)的CPU發(fā)出更高的需求。這是一層非常重要的真實性,尤其是在運行性能或擴展能力測試時。
●測試模擬:該測試解決方案的模擬能力可以生成多種TCP/IP流量,但無法提供有意義的負(fù)載。這樣不僅無法讓目標(biāo)系統(tǒng)處理負(fù)載,還無法針對那些對應(yīng)的特性和能力施加考驗,因為只有真實的負(fù)載才能做到這一點。在考慮4~7層更加詳細(xì)的真實測試場景時,仿真的優(yōu)點會變得愈發(fā)明顯。
正如以上例子所示,測試仿真比模擬更有價值。與此同時,由于以下幾個原因,仿真的重要性也在不斷提高:
——設(shè)備更加智能化。從防火墻、負(fù)載均衡器,到交換機和路由器的各類網(wǎng)絡(luò)設(shè)備都具備了越來越復(fù)雜的邏輯和狀態(tài)管理。仿真是生成多種不同設(shè)備狀態(tài),并對相關(guān)邏輯進行考驗的唯一辦法。
——OSI模型中的真實負(fù)載需求。例如,為了測試支持深層包檢查(DPI)的設(shè)備,必須在OSI模型的所有層使用真實的負(fù)載。恰當(dāng)?shù)姆抡孢€必須確保在測試系統(tǒng)與被測系統(tǒng)(SUT)之間交換正確的流量序列。
——設(shè)備正承擔(dān)著多種角色。隨著設(shè)備功能的增多,設(shè)備上的某項活動對同一設(shè)備上其它活動產(chǎn)生影響的可能性也變得更大。例如,通常運行虛擬交換機的服務(wù)器也在運行其它應(yīng)用。這樣就會形成多種應(yīng)用對CPU等共享資源的競爭。仿真可以實現(xiàn)對這些間接影響的測試,例如虛擬交換機產(chǎn)生更大的CPU消費等。
——停機、服務(wù)中斷和故障帶來的成本正在不斷提高。生產(chǎn)網(wǎng)絡(luò)中存在的單個問題可能會造成多個類別中的成本增加,包括對業(yè)務(wù)的干擾、丟失的收入、終端用戶生產(chǎn)力、IT生產(chǎn)力以及探測和恢復(fù)的相關(guān)成本等。然而,如果無法實現(xiàn)真實的仿真測試,實驗室中“似乎能用”的東西可能會在現(xiàn)實世界中遭遇慘敗。
在考慮4~7層更加詳細(xì)的真實測試場景時,仿真的優(yōu)點會變得愈發(fā)明顯。
目前,4~7層出現(xiàn)了越來越多的復(fù)雜精密的高性能安全和應(yīng)用感知設(shè)備。這一因素與其它因素結(jié)合在一起,對測試設(shè)備的網(wǎng)絡(luò)仿真能力的復(fù)雜性提出了更高的要求。如果4~7層設(shè)備沒有經(jīng)過適當(dāng)?shù)臏y試,它們將會在生產(chǎn)網(wǎng)絡(luò)中面臨更高的故障風(fēng)險。這些設(shè)備出現(xiàn)的故障可能讓網(wǎng)絡(luò)在威脅面前大門洞開,而無法抵御其本應(yīng)對抗的各種威脅。
真實的流量對于DPI和內(nèi)容感知設(shè)備也具有至關(guān)重要的意義。在這方面的要求涉及到了多種應(yīng)用協(xié)議和流量。盡管HTTP是一種常用的協(xié)議,但必須意識到,強健的4~7層測試解決方案所應(yīng)支持的遠(yuǎn)不止HTTP。例如,此類解決方案也應(yīng)支持SSL和IPSec流量,因為有了它們才能更好地反映出現(xiàn)實世界的真實情況。
由于最重要的網(wǎng)絡(luò)流量往往都是經(jīng)過加密的,要實現(xiàn)恰當(dāng)?shù)木W(wǎng)絡(luò)仿真,就要求測試設(shè)備能夠生成加密的數(shù)據(jù)交換。此外,SSL和IPSec的終結(jié)設(shè)備傳統(tǒng)上都只具備較低的性能,因為它們的運行都是CPU密集型的。如果您的業(yè)務(wù)要用到安全通信,就應(yīng)當(dāng)以盡可能接近設(shè)備實際使用的方式對其進行測試。
不同的機構(gòu)擁有不同類型的應(yīng)用,包括各類定制應(yīng)用在內(nèi)。因此,測試解決方案必須提供一系列的機制,能夠驅(qū)動與這些應(yīng)用相關(guān)的所有不同流量,當(dāng)然也包括定制應(yīng)用。有些測試解決方案的能力范圍僅限于簡單的流量捕捉和回放,而不具備驅(qū)動有狀態(tài)應(yīng)用交換的能力。為了恰當(dāng)?shù)胤抡娉龆ㄖ茟?yīng)用流量,測試工程師需要使用可創(chuàng)建相同定制流量剖面,并在極端規(guī)模下驅(qū)動這些流量的能力。
在性能方面,業(yè)界關(guān)注的焦點已經(jīng)從2、3層的服務(wù)質(zhì)量(QoS)轉(zhuǎn)向了4~7層的體驗質(zhì)量(QoE)。這是一項非常重要的區(qū)別,因為網(wǎng)絡(luò)提供的高性能并不總是等同于較高的客戶體驗,而高性能和糟糕客戶體驗的事情常常會同時出現(xiàn)。僅憑IP流量的時延大小并不能確定終端用戶的體驗到底如何。
要想準(zhǔn)確地測試體驗質(zhì)量(QoE),測試設(shè)備需要具備生成真實終端用戶流量的能力。在這種情況下,測試流量必須反映出終端用戶主觀感受中的各種變化,包括顯性和隱性的變化。為實現(xiàn)這一目標(biāo),測試工程師應(yīng)當(dāng)有能力對響應(yīng)時間、語音質(zhì)量和視頻質(zhì)量等變量進行控制和調(diào)節(jié)。
找到正確的測試設(shè)備可能是一項巨大的挑戰(zhàn),尤其是當(dāng)“模擬”被錯誤地表達為“仿真”時。如果某種設(shè)備將自己描述為“支持仿真”,千萬不要選擇該設(shè)備。應(yīng)當(dāng)進行更深入地探究,確認(rèn)該設(shè)備確實可以精確地復(fù)制網(wǎng)絡(luò)中最重要的應(yīng)用、設(shè)備和協(xié)議的內(nèi)部和外部行為。仿真所具有的深度、廣度和真實度才是實現(xiàn)精確測試過程中的最重要的因素。
復(fù)雜、精密的測試仿真意味著根據(jù)有狀態(tài)的互動來復(fù)制出設(shè)備之間真切的行為和流量。如果有狀態(tài)設(shè)備收到的只是隨機流量和其中包含的傻瓜負(fù)載,那么真實性將無從談起。這些流量必須自始至終承載著包含特定意義的對話內(nèi)容。
要實現(xiàn)真實性,測試解決方案必備的最重要組成部分之一,就是允許工程師控制棧中諸多變量和域的定制TCP/IP棧。不幸的是,有些解決方案只是呆在操作系統(tǒng)之上,并調(diào)用Socket的API。雖然多種TCP/IP流量都可以使用這些Socket來發(fā)送,但精細(xì)的控制卻蕩然無存。相比之下,如果能夠直接訪問TCP/IP棧中的任意層,則可以有效控制畸形包、丟失包以及重傳等特性。
易用性和靈活的用戶選項則是另外一項重要的選擇標(biāo)準(zhǔn)。雖然測試解決方案需要具備強大的測試選項,但測試團隊的職責(zé)和經(jīng)驗水平也是存在差異的。因此,測試解決方案需要具備供應(yīng)可視性的靈活能力,同時還應(yīng)提供一個直觀的用戶界面,讓所有的用戶都能根據(jù)自己的職責(zé)靈活地加以應(yīng)用。
在今天的應(yīng)用感知世界中,消費者對體驗質(zhì)量(QoE)和服務(wù)質(zhì)量(QoS)的期待越來越高。隨需解決方案也必須變得更快、更安全。如果無法滿足消費者的期望,則可能對業(yè)務(wù)帶來嚴(yán)重的不良效應(yīng)。服務(wù)的中斷不僅會對業(yè)務(wù)造成直接影響,而且會讓客戶對業(yè)務(wù)失去信心,進而影響其長期的購買模式。
為了樹立對系統(tǒng)的信心,需要使用真實的測試場景地其進行連續(xù)的測試和監(jiān)視。這就需要使用仿真而不是使用模擬的場景,因為后者只能做到形似,而無法復(fù)制出真實的現(xiàn)實環(huán)境。