基于OpenFlow的SDN測試方案及方法詳解
SDN測試平臺為SDN測試提供了測試工具和網(wǎng)絡(luò)環(huán)境。該測試平臺可以進(jìn)行比較全面的SDN測試,包括但不限于以下類型的測試:SDN協(xié)議一致性測試、SDN互通性測試、SDN功能性測試、SDN性能測試、SDN解決方案測試。
SDN測試平臺的示意圖如下所示:
該測試平臺提供了多種測試工具,包含流量生成器、SDN一致性測試儀、SDN功能性測試儀和SDN性能測試儀,可以用于不同類型的SDN測試和認(rèn)證。同時(shí),SDN測試平臺也提供了許多支持SDN的設(shè)備,如各種開源/商用的支持OpenFlow協(xié)議的交換機(jī)和控制器設(shè)備以及其它網(wǎng)絡(luò)設(shè)備,這為互通性測試做好了準(zhǔn)備。測試平臺還包括一些SDN配置管理設(shè)備和OF配置節(jié)點(diǎn),可以對SDN網(wǎng)絡(luò)和設(shè)備進(jìn)行配置和管理,還可以對配置管理協(xié)議如of-config協(xié)議進(jìn)行測試。另外,SDN測試平臺還可以展示和驗(yàn)證一些SDN應(yīng)用和SDN解決方案。
SDN測試方法 OpenFlow是SDN控制器和交換機(jī)之間的通信協(xié)議。下面介紹的SDN測試方法都是指基于OpenFlow的SDN測試。常見的SDN測試類型有協(xié)議一致性測試、互通性測試、功能測試和性能測試,下面對這幾個(gè)測試類型的測試方法分別進(jìn)行介紹。
1. SDN協(xié)議一致性測試
協(xié)議一致性測試是對OpenFlow設(shè)備(交換機(jī)設(shè)備)對OpenFlow協(xié)議的符合情況進(jìn)行測試和驗(yàn)證。ONF即開放網(wǎng)絡(luò)基金會設(shè)立OpenFlow一致性測試項(xiàng)目,目前可以開展OpenFLow 1.0標(biāo)準(zhǔn)的一致性測試。OpenFLow 1.0一致性測試的規(guī)范是“Conformance Test Specification for OpenFlow Switch Specification 1.0.1”。規(guī)范中包含10個(gè)測試組,主要對以下10個(gè)方面進(jìn)行測試:
測試組 10: 基本能力檢查
測試組 20: 基本OpenFlow協(xié)議消息
測試組 30: 生成樹
測試組 40: Flow modification消息
測試組 50: 流匹配
測試組 60: 計(jì)數(shù)器
測試組 70: 行為
測試組 80: 消息
測試組 90: 異步消息
測試組 100: 錯(cuò)誤消息
協(xié)議一致性測試是對設(shè)備支持OpenFlow情況進(jìn)行全面的檢查,包括必要的和可選的功能。有超過200個(gè)測試項(xiàng),OpenFLow交換機(jī)需要通過所有必選的測試項(xiàng)才能通過一致性測試認(rèn)證。
目前測試協(xié)議一致性使用OpenFlow協(xié)議一致性測試工具。測試拓?fù)淙缦聢D所示:
OpenFlow一致性測試儀與支持OpenFlow的交換機(jī)之間建立1個(gè)控制平面的連接和4個(gè)數(shù)據(jù)平面的連接。測試儀可以模擬控制器發(fā)送OpenFlow協(xié)議消息來檢測交換機(jī)行為,數(shù)據(jù)平面的連接用于測試和驗(yàn)證交換機(jī)能夠?qū)W(wǎng)絡(luò)數(shù)據(jù)包正確處理,包括轉(zhuǎn)發(fā),修改數(shù)據(jù)包指定字段等。
2. SDN互通性測試
互通性測試是不同廠商的OpenFlow設(shè)備之間互連互通能力的測試。互通性測試是非常必要的,這樣可以讓網(wǎng)絡(luò)中的設(shè)備不至于被綁定在同一家設(shè)備廠商。通過進(jìn)行多廠商SDN 互通性測試,一方面能夠發(fā)現(xiàn)設(shè)備SDN實(shí)現(xiàn)的問題和對協(xié)議理解的問題,有助于自身SDN產(chǎn)品的協(xié)議實(shí)現(xiàn)方面完善和優(yōu)化,另一方面可以驗(yàn)證SDN 標(biāo)準(zhǔn)的可執(zhí)行性和完整性,進(jìn)一步促進(jìn)OpenFlow協(xié)議不斷更新和完善,推動SDN產(chǎn)業(yè)的發(fā)展。
最基本的互通性測試包括:控制通道的建立;流表測試;請求消息測試;流超時(shí)等。下面以拓?fù)浒l(fā)現(xiàn)為例介紹互通性測試。
將不同廠商的控制器和交換機(jī)設(shè)備按照測試拓?fù)溥M(jìn)行連接,并對所有網(wǎng)絡(luò)設(shè)備進(jìn)行正確配置,控制器應(yīng)該能夠和所有交換機(jī)設(shè)備正常建立控制通道,正確發(fā)現(xiàn)所有網(wǎng)絡(luò)設(shè)備和它們之間的連接,并以圖形界面或在命令行正確顯示。
3. 功能性測試
功能測試是對OpenFlow設(shè)備的功能進(jìn)行測試和驗(yàn)證。在SDN發(fā)展的初期,各個(gè)廠商設(shè)備對OpenFlow協(xié)議支持的情況都不同,OpenFLow協(xié)議有很多可選的功能,廠商不同程度地支持這些功能。另外,許多廠商會自行對OpenFLow協(xié)議做一些擴(kuò)展,添加一些有用的特性,所以除了協(xié)議一致性測試和互通性測試,功能性測試也是非常必要的。
功能性測試一般使用功能性測試儀作為測試工具,測試工具模擬控制器發(fā)送消息,有需要時(shí)能夠發(fā)送數(shù)據(jù)流量到交換機(jī)端口,同時(shí)可以對控制平面和數(shù)據(jù)平面的數(shù)據(jù)包進(jìn)行抓包和分析,從而判斷和確定交換機(jī)支持的功能。
4. 性能測試
性能測試是對OpenFlow設(shè)備性能進(jìn)行測試。由于目前測試整個(gè)網(wǎng)絡(luò)系統(tǒng)還有很大的挑戰(zhàn),所以這里的性能測試指的是單個(gè)網(wǎng)絡(luò)設(shè)備的性能。交換機(jī)流表容量測試和控制器***連接交換機(jī)數(shù)量也屬于交換機(jī)性能測試的范疇。測試方法如下圖所示:
總結(jié)
SDN在迅速地發(fā)展,現(xiàn)在還處于一個(gè)早期的階段。相關(guān)標(biāo)準(zhǔn)仍不夠成熟、設(shè)備對標(biāo)準(zhǔn)的支持情況也還不夠成熟,不同設(shè)備廠商對標(biāo)準(zhǔn)理解不同,設(shè)備實(shí)現(xiàn)也不盡相同,所以測試的重要性是毋庸置疑的。通過測試,可以促進(jìn)SDN更快被大家接納,讓大家對SDN設(shè)備建立信心,也讓設(shè)備的實(shí)現(xiàn)更加規(guī)范,可以用于商業(yè)部署。
目前,測試還存在很多挑戰(zhàn),測試方法還不夠全面,測試工具也不夠完善。目前的測試多為對OpenFlow設(shè)備的測試和對SDN應(yīng)用的驗(yàn)證。SDN網(wǎng)絡(luò)和系統(tǒng)的測試還存在很大的挑戰(zhàn)?,F(xiàn)階段,OpenFlow協(xié)議一致性測試和互通性測試都在積極開展。隨著SDN技術(shù)的發(fā)展,SDN的測試方法也將越來越完善。