SDN應用之軟件定義的應用交付
一直以來,網(wǎng)絡中存在著一系列用于改善網(wǎng)絡服務的性能和體驗的應用,例如Web安全,訪問控制、負載均衡、應用加速、WAN優(yōu)化、入侵檢測等。它們在網(wǎng)絡的安全、管理等方面發(fā)揮了巨大的作用,是傳統(tǒng)網(wǎng)絡中保障應用交付質(zhì)量的關鍵。隨著SDN技術的提出與成熟,在新型網(wǎng)絡架構下,這些應用勢必也需要進行相應的改造與完善。
在傳統(tǒng)網(wǎng)絡中,類似防火墻、負載均衡、入侵檢測等網(wǎng)絡應用都是由專用的硬件設備實現(xiàn)的,在網(wǎng)絡運行過程匯總,根據(jù)實際需要逐臺進行配置以滿足數(shù)據(jù)傳輸要求。而在SDN網(wǎng)絡中,上述應用將以軟件程序的方式存在,他們可以與控制器一起部署在通用服務器上,通過調(diào)用控制器的北向接口獲得其提供的流量模式、應用數(shù)據(jù)等信息并對其進行辨識和判斷,進而驅(qū)動控制器下發(fā)指令調(diào)整網(wǎng)絡配置。例如,當基于SDN的入侵監(jiān)測應用在控制器監(jiān)測的數(shù)據(jù)流中識別到惡意流量時,它就可以自動驅(qū)動控制器設置相應的流表項將這些數(shù)據(jù)包導向網(wǎng)絡中數(shù)的安全隔離設備,避免其對網(wǎng)絡的破壞。
雖然這些SDN應用是利用軟件實現(xiàn)的,但他們的角色與傳統(tǒng)的硬件設備相同,相比而言,基于SDN傳統(tǒng)網(wǎng)絡應用進行改造的主要優(yōu)勢包括以下幾點:
通過軟件實現(xiàn)的防火墻、負載均衡,降低系統(tǒng)的CAPEX/OPEX
實現(xiàn)網(wǎng)絡中各類網(wǎng)元的虛擬化和集中化控制
支持網(wǎng)絡系統(tǒng)的快速部署,在故障出現(xiàn)時能夠快速發(fā)現(xiàn)并解決問題
提供更高的智能,支持自動化運作,實現(xiàn)應用可感知的網(wǎng)絡。
通過上述介紹和分析可知,基于具備集中化管控能力的SDN控制器提供的網(wǎng)絡資源調(diào)配能力,SDN應用實際是將傳統(tǒng)的基于設備的應用改造為一個真正面向全網(wǎng)范圍的應用。
隨著SDN的應用與推廣,傳統(tǒng)網(wǎng)絡應用交付技術向SDN網(wǎng)絡的遷移已經(jīng)勢在必行,很多傳統(tǒng)領域的領導廠商已經(jīng)開始考慮這些問題??傮w而言,面向SDN的網(wǎng)絡應用交付技術的改造需要從以下四個方面進行。
(1)改寫傳統(tǒng)的硬件應用為軟件實現(xiàn)。和所有的網(wǎng)絡設備一樣,傳統(tǒng)的網(wǎng)絡應用考慮到數(shù)據(jù)處理性能的問題,普遍采用基于專用集成電路的硬件實現(xiàn),而隨著通用處理器性能的提升,采用軟件實現(xiàn)相關應用的功能已經(jīng)能夠滿足數(shù)據(jù)處理的需求,同時在應用的實現(xiàn)和部署時具有更好的靈活性和開放性。
(2)支持網(wǎng)絡應用的虛擬化實現(xiàn)和部署。網(wǎng)絡應用的虛擬化主要體現(xiàn)在支持多個租戶共享同一網(wǎng)絡應用設施,同時各租戶間彼此隔離,具有相對獨立的應用空間。虛擬化是實現(xiàn)資源池化的主要手段,只有實現(xiàn)了池化的網(wǎng)絡應用,才能支持面向用戶的按需調(diào)配。在網(wǎng)絡應用虛擬化實現(xiàn)中,多線程等技術可被應用。
(3)基于控制器北向接口改造應用。為了將網(wǎng)絡應用納入SDN架構中,從控制器獲得網(wǎng)絡信息并驅(qū)動控制器調(diào)整網(wǎng)絡配置,網(wǎng)絡應用必須要將相關的功能接口與控制器的北向接口對接,這其中既可以利用REST API等類型的接口,使網(wǎng)絡應用仍舊相對獨立,也可以利用Java等類型的接口,將網(wǎng)絡應用功能整合進控制器中。
(4)開放編程接口支持創(chuàng)新業(yè)務開發(fā)。在網(wǎng)絡應用經(jīng)過面向SDN網(wǎng)絡的改造后,秉承SDN的開放性,網(wǎng)絡應用還需要在擴展和封裝控制器北向接口的基礎上,提供功能完備、方便易用的編程接口對更上層的業(yè)務開放,推動網(wǎng)絡業(yè)務的創(chuàng)新。
就當前的業(yè)界進展來看,傳統(tǒng)網(wǎng)絡應用的主流廠商的技術產(chǎn)品普遍做到了前兩個方面,例如利用虛擬機部署負載均衡軟件、在Hypervisor中繼承安全防護功能等,而這也是前文提到的NFV(網(wǎng)絡功能虛擬化)期望達到的目標。但是,受到當前SDN架構中缺少統(tǒng)一的北向接口定義的限制,網(wǎng)絡應用廠商之能夠根據(jù)某幾款特定的控制器接口進行應用改造,從而增加了開發(fā)工作量,并導致了更高的風險。
將傳統(tǒng)網(wǎng)絡中四至七層的應用部署在SDN網(wǎng)絡上能夠獲得很多優(yōu)勢,例如基于控制器對網(wǎng)絡全局視圖的把握,能夠開展更合理的負載均衡,制定更全面的安全策略,從而提升網(wǎng)絡應用的效能。但是,基于SDN實現(xiàn)傳統(tǒng)網(wǎng)絡應用也存在巨大的挑戰(zhàn),例如當前現(xiàn)有的網(wǎng)絡應用過于豐富,有大量的廠商參與其中,其方案各有特色并且相對封閉,使得對網(wǎng)絡應用的整合化與集中化存在非常大的困難。另外更關鍵的一點是,如果應用依賴于控制器對應用要處理的數(shù)據(jù)包進行采樣和識別,就意味這控制器可能會不僅僅監(jiān)控數(shù)據(jù)包的二、三層狀態(tài),還必須對其四至七層信息進行解析,這將會大大增加控制器的工作量,進而影響網(wǎng)絡應用乃至SDN全網(wǎng)的性能。