IPv6網(wǎng)絡(luò)測試:避免五大麻煩
譯文網(wǎng)絡(luò)測試必不可少,但有時候頗具挑戰(zhàn)性;遇到軟件缺陷和破損的設(shè)備是測試環(huán)境的一個再平常不過的方面。但要是沒有軟件缺陷,設(shè)備又沒有破損,可是測試依然通不過,那又出現(xiàn)了什么情況呢?是測試本身有缺陷嗎?應該怪罪于測試工程師?還是說問題出在其他別的方面,可能是較為隱蔽的方面?
奇怪和預料不到的測試問題一直會出現(xiàn);而運行使用IPv6的測試網(wǎng)絡(luò)的人士對這些問題絕不陌生。本文將逐一分析與IPv6測試有關(guān)的若干最常見問題,另外給出了可能適合的解決辦法。
1. 硬件:它有沒有鏈路?
當然,這是很明顯的出發(fā)點,并不是IPv6所特有的,但它可能是追查起來最令人沮喪的問題之一,常常是由于你根本沒有想到問題會出在線纜上。事實上,線纜會脫落,交換機會重啟,有時候硬件會出現(xiàn)故障。所有這些問題都會導致硬件系統(tǒng)的最基礎(chǔ)層面出現(xiàn)通信中斷,因而給你的測試帶來棘手的問題。說到交換,由于無線網(wǎng)絡(luò)、虛擬化、甚至簡單的虛擬局域網(wǎng)(VLAN)很普遍,硬件故障會變成看不見的問題,要識別起來甚至更加麻煩。
解決這個問題的最好辦法就是使用一個穩(wěn)定的、標記清楚、備份起來的測試網(wǎng)絡(luò)。很少變化、了解得一清二楚的測試網(wǎng)絡(luò)也許無法防止故障,但是問題果真出現(xiàn)時,可以大大簡化辯明真相。
2. 防火墻:它們存在!
防火墻就像IPv6協(xié)議一樣在不斷完善,說到保護用戶和軟件遠離危險,防火墻是絕對必不可少的部件。這意味著,認識到防火墻是如何部署的,以及它經(jīng)配置后可以監(jiān)控或阻止什么對象,這一點很重要。防火墻常常阻止盡管對協(xié)議測試驗證而言很重要,但可能似乎是拒絕服務(DoS)攻擊或另一種危險攻擊的流量。過于謹慎的防火墻會讓你想自己是不是果真接入了你認為應該接入的系統(tǒng),害得你捕風捉影。
這里的解決辦法很棘手。就測試而言,一臺被禁用的防火墻有助于迅速縮小原因范圍。說到部署,這無助于事;然后你得確保你的設(shè)備在互聯(lián)網(wǎng)上會正常運行,可保護其用戶。這方面可沒有什么高招;需要做的最好辦法就是,調(diào)查防火墻為什么阻止協(xié)議流量,尋求專家的幫助,確定這是異常阻止還是真正的安全漏洞。
3. 多宿主:這道門后面是……
多宿主(Multihoming)并不是IPv6的一個新概念,但說到測試和部署IPv6,這個概念會引起一大堆問題。這一方面歸因于IPv6的自動配置越來越對用戶友好――具體來說,是默認路由的自動配置。格式正確的ICMPv6路由器公告(RA)會引起設(shè)備安裝通過傳送路由器的默認路由(或“最后采取的路由”)。
不止一個路由器發(fā)送這樣的數(shù)據(jù)包時,問題就會出現(xiàn)。你可能認為,兩個路由器發(fā)送這種格式正確的數(shù)據(jù)包的可能性微乎其微,可是在測試網(wǎng)絡(luò)中,路由器公告很容易溜出去、跑到生產(chǎn)環(huán)境上,或者是跑到不同的測試網(wǎng)絡(luò)上,從而造成嚴重破壞。當然,只有你的設(shè)備擁有不止一個接口時――可是事實證明這種情況很常見,才會出現(xiàn)這個問題。手機(無疑和蜂窩)和筆記本電腦(無線和以太網(wǎng))就是兩種很常見的設(shè)備,它們通常至少有兩個潛在的出站接口。
與硬件和防火墻問題一樣,多宿主問題會導致流量似乎丟失或從來沒有被發(fā)送。區(qū)別在于,它時而行,時而不行,似乎是間歇性的。這歸因于計時器或生命周期的不同,讓設(shè)備有一個“恢復”期間:它在這段期間似乎會正常運行。這個問題很容易識別,因為兩個默認路由會清楚地顯示在系統(tǒng)上。當然,解決這個問題可能有難度,因為現(xiàn)在你得查明誰是未授權(quán)路由器公告的發(fā)送者?;蛘?,你可能要試一下防火墻。
4.地址:地址很大
地址有許許多多,而且地址很難輸入。與IPv6地址這么簡單的東西有關(guān)的測試問題比比皆是。這個問題會體現(xiàn)在把E誤輸成D或把3誤輸成6這么簡單的事情。由于有那么多的數(shù)字需要輸入,這個問題一直在發(fā)生。下面是一個典型的IPv6地址:
FC00:41FF:3880:1FE0:5851:75f2:8867:de1b
這里的最佳解決辦法就是,總是拷貝粘貼。不要在任何情況下過于相信自己而輸入IPv6地址!
其他地址問題比較復雜,實際上旨在幫助網(wǎng)絡(luò)而不是破壞網(wǎng)絡(luò)。但是就像其他許多情況下一樣,測試網(wǎng)絡(luò)與生產(chǎn)網(wǎng)絡(luò)大不一樣。不妨考慮重復地址檢測,內(nèi)置到IPv6中的這個策略用于識別網(wǎng)絡(luò)上重復的地址。
地址重復不太可能出現(xiàn)在完全自動配置的網(wǎng)絡(luò)上,即便在生產(chǎn)環(huán)境下。但在測試環(huán)境中,工具和設(shè)備都配置成同樣或相似的地址,以便簡化測試和配置工作,所以兩個設(shè)備很容易最后使用同一個地址。這里的解決辦法與識別未授權(quán)路由器公告很相似:只要關(guān)注一下接口,應該就能弄清楚該地址是不是重復。難就難在追查竊賊的蹤跡!
5. 內(nèi)存:設(shè)備不會忘記
IPv6包括許多部分:設(shè)備接入時間越長,發(fā)現(xiàn)的關(guān)于網(wǎng)絡(luò)和環(huán)境的信息就越多。這包括路徑最大傳輸單元(MTU)、地址、鄰居狀態(tài)及更多信息。同樣,雖然熟悉和調(diào)整設(shè)備以符合網(wǎng)絡(luò)特點對生產(chǎn)網(wǎng)絡(luò)而言再理想不過,可是在測試環(huán)境下,這可能會帶來好多的誤報測試結(jié)果。
這方面的一個典例就是ICMPv6數(shù)據(jù)包太大這個消息。某個設(shè)備想做到一致性,就必須在一段時間內(nèi)記住該消息的內(nèi)容。問題在于,這段時間可能比它進入到下一個測試所花的時間更長!所以,如果你看到預料之外的碎片數(shù)據(jù)包,可能就有必要重啟。
這同樣適用于鄰居發(fā)現(xiàn)操作。這個復雜的狀態(tài)機存在好多變數(shù),要是任由它處于“不干凈”的測試狀態(tài),就會給即將進行的測試帶來諸多問題。在許多情況下,發(fā)送各種清理數(shù)據(jù)包的例程會清空鄰居緩存。不過,IPv6的新標準讓這成為一項更艱巨的任務,所以重啟日益成為是清空緩存的最佳方法。