智勇 博科通訊有限公司,上海
SDN技術源自于斯坦福大學的Clean State項目,其目標是打破傳統網絡的封閉格局,開創更加開放和靈活的網絡新架構。近幾年來,SDN越多越來越的得到了網絡廠商、解決方案提供商和最終用戶的普遍關注和重視。軟件定義網絡,顧名思義就是將軟件系統與網絡硬件平臺通過開放式的API接口相結合,通過軟件的可編程、可定制和自動化特性,實現在網絡硬件平臺上的集中化管理、自動化運維、快速的功能開發和靈活的業務部署。
傳統的網絡設備可以看做是一套封閉的軟硬件結合的系統,各廠商在其專用的硬件平臺甚至專用芯片之上,配合各自獨有的網絡操作系統,提供不同風格的管理界面。在傳統的網絡中,一方面需要用戶在設備上進行配置和設定,另外設備之間也通過標準的網絡協議進行交互,從而實現轉發表項的生成和數據報文的轉發。 而在SDN網絡中,則采用了層次化的架構和開放式的模型(圖1):整個網絡劃分為SDN應用層、網絡控制器層和硬件轉發層。通過網絡控制器與上層應用平臺之間的北向接口(Northbound Interface)以及控制器與硬件設備之間的南向接口(Southbound Interface),實現控制信令的下發、流量信息的采集、設備狀態的監測以及數據報文的轉發。

圖1 SDN網絡的詳細架構
基于SDN的網絡架構改變了傳統網絡平臺的運行模式,將設備的控制層從各個廠商專有的操作系統平臺中抽取出來,通過靈活的可編程軟件系統與設備之間標準的API接口,實現控制信令的收發和數據報文的轉發。這種方式具備了很多方面的優勢:
1.2.1 避免廠商鎖定。傳統網絡設備采用了封閉的軟硬件一體化架構,提供了各自獨特的操作系統界面、接口甚至私有協議。而SDN通過層次化的架構和標準的接口,構建了全新的開放式系統,使得用戶能夠避免被特定廠商設備的界面、接口和協議鎖定,擁有更多的選擇權;
1.2.2 確保互聯互通。不同廠商的設備在互聯時,即便都是采用了標準的通信協議,但各自的實現方式各有不同,因此常常會出現互通的問題。SDN在能夠有效避免設備之間復雜的協議交互,提升設備之間的互聯互通的兼容性;
1.2.3 提高開發效率。在傳統的網絡設備上開發新的功能和特性,需要綜合考慮到底層的硬件架構、操作系統的支持、與其他功能的兼容性,同時還受限于各廠商各自的計劃和進度(一般以月或者季度來計算)。而SDN模型通過將上層控制系統與底層硬件平臺解耦,特性的開發將更多的側重在外部獨立的應用軟件平面,開發周期能縮短到以周甚至天來計算,因此用戶能夠更加有效的把控并推進新業務的部署。
1.2.4 簡化管理維護。SDN模式下,管理員主要是面向網絡應用系統來進行配置和維護,軟件系統能夠提供更加友好的使用界面,大大簡化管理維護難度。同時,SDN減少甚至消除了在網絡節點之間大量的網絡協議交互,因而能夠降低了整個網絡的復雜程度。
1.2.5 提高利用效率。在傳統網絡架構下,每臺設備都是一個獨立的個體,有各自的路由策略和轉發規則,很難做到全網資源的統一調度。SDN能夠通過集中的應用系統,面向整個網絡平臺,綜合考慮設備負載、鏈路負載、轉發延時、線路費用等因素,進行全網的資源狀態收集和全局的資源調度,實現最優化的數據轉發,提升整網的利用效率。
1.2.6 推進自動化運維。SDN能夠充分發揮軟件靈活和自動化的特性,將傳統的需要人工完成的重復性、機械性、觸發性的工作轉化為軟件的自動化執行,進一步與網絡的故障、配置、計量、性能和安全管理相結合,推進網絡管理和運維的自動化。
所謂的混合模式的SDN,如圖2所示,就是在硬件設備的控制層面保留傳統路由交換協議的同時,開啟SDN相關協議,接受來自外部集中控制層面下發的指令,并且允許在同一物理端口同一VLAN上同時使能這些協議。設備在進行轉發時,能夠支持基于SDN控制層面所下發的轉發表項,如Openflow流表進行轉發,也能夠通過傳統路由交換協議所產生的轉發表進行轉發。

圖2 SDN混合模式的架構
當設備處于SDN混合模式時,為了避免路由交換協議與SDN協議之間產生沖突,針對不同情況下采用何種轉發方式,這在混合模式設計之初就需要有明確的設定,以Openflow為例硬件設備的具體轉發邏輯如下:
(1)當設備端口設置為混合模式時,該端口一方面繼續正常參與傳統的路由交換協議的交互和轉發表項的生成,同時也接受來自SDN應用和控制器下發的Openflow流表作為轉發表項;
(2)來自該端口的流量首先會與Openflow流表進行匹配,當流量能夠匹配時,將按照流表的定義進行轉發或執行其他動作;
(3)在上述情況中,如果匹配流表的動作為normal,則意味著匹配到的流量將通過傳統的路由交換協議產生的轉發表進行轉發;
(4)當來自該端口的流量未能匹配到流表時,這些流量也將由交換機通過傳統的路由交換協議產生的轉發表進行轉發。
(1)不需要提前區分哪些流量采用路由交換轉發,哪些通過SDN轉發,所有流量都通過混合模式的端口進行轉發。這樣就不需要改變現有的網絡架構,保持當前的傳統路由交換協議不變,只需要疊加SDN協議就能夠在現有網絡上實現平滑的SDN部署。
(2)只需要通過流表對特定的流量(如異常或攻擊流量)進行相應的控制即可,剩余的絕大部分流量仍可以通過傳統的路由或交換實現轉發,這大大減少了所消耗的流表條目數和流表管理的工作量,使SDN真正能夠得到規模化的部署。
(3)當基于流表進行轉發的機制出現異常時,還能回落到基于傳統路由交換進行報文轉發的模式,網絡的健壯性和可靠性能夠得到有效的保障。
通過混合模式,在傳統網絡中部署SDN將變得簡單和靈活。以在園區網中部署基于Openflow的用戶管理為例,通過SDN的方式為園區網提供用戶接入、身份認證、權限控制以及基于訪問時長和流量計費的功能。
(1)當用戶接入網絡,能夠正常訪問園區內部的資源,內部用戶之間也可以實現相互的訪問;
(2)當用戶訪問園區外部資源時,用戶的HTTP訪問請求將被重定向到WEB Portal服務器上,用戶需要在Portal頁面上輸入自己的用戶名和密碼進行身份驗證;
(3)身份驗證通過的用戶將獲得訪問外部資源的權限,并控制訪問外部資源的下載速率;
(4)根據用戶的訪問時長或上下行流量,對用戶進行計費。
圖3是針對該應用需求搭建的模擬環境,使用了一臺SDN設備作為測試平臺,提供基于Openflow混合模式的SDN功能。為了模擬實際的應用場景,還部署了園區出口防火墻、WEB重定向服務器、Web Portal服務器、AAA認證授權計費服務器以及相應的SDN應用軟件和控制器。

圖3 SDN混合模式實現用戶管理的模擬環境架構
在SDN設備上,采用了Openflow 混合端口模式,同一物流端口同一VLAN下的流量,可以同時支持基于路由交換轉發表的轉發和基于Openflow流表的轉發。當報文抵達開啟混合模式的端口后,首先會執行流表的查詢,如果匹配,則按照流表的定義執行相應的動作;而如果沒有匹配,或者匹配流表的action為Normal,則按照傳統路由交換來進行轉發。具體的流程如下:
(1)來自圖中1/20端口的終端報文抵達SDN設備后,首先匹配到基礎流表:當報文的目的地址為園區內網絡地址段時,執行動作為Normal,即允許用戶相互之間互訪,并能夠訪問內網資源、內部DNS和DHCP服務器等。
(2)沒有匹配到上述基礎流表的流量,將匹配到一條重定向流表。需要注意的是,由于流表的匹配是按照優先級排定順序的,因此重定向流表的優先級要低于上述基礎流表。匹配到重定向流表的流量將被發送到WEB重定向服務器所在的端口1/10,流表的動作同時包含了修改報文的VLAN ID為重定向服務器所在的VLAN、目的MAC為重定向服務器的MAC。這樣重定向服務器收到修改后的報文后才能夠正常進行重定向處理。
(3)重定向服務器會返回HTTP 302重定向信息,由于Openflow的流表是有方向性的,此時同樣需要定義一條流表匹配重定向服務器返回給終端的流量,流表的action為normal,使得HTTP 302信息能夠通過正常的路由/交換轉發到客戶端。
(4)客戶端的HTTP請求被重定向到內網的Web Portal服務器,此時客戶端與WEB Portal之間交互的流量也是通過基礎流表來匹配和轉發的。
(5)客戶端在Web Portal上輸入用戶名、密碼信息,Web Portal將賬號信息發送到SDN應用APP,該APP將作為Radius Client到AAA服務器上進行認證。用戶身份認證成功后,一方面需要在Portal頁面上顯示認證成功信息,同時也要通過SDN控制器下發允許這個用戶訪問外網的流表,這條流表同樣通過action normal實現。
(6)如果園區網有多個出口,用戶還可以通過Web Portal頁面自主選擇不同的出口,這是目前熱門的園區網多運營商的需求,只需在流表中設定發往不同的output端口,就能很靈活的實現。
(7)如果需要對該用戶下行流量進行速率限制,可以設定用戶下行方向的流表,并通過流表中的meter動作來實現速率的限制。
通過上面的這個模擬環境可以看出,采用了SDN混合模式來實現用戶管理功能,相比于傳統價格昂貴的專用設備而言,具有部署簡單、使用靈活、性價比高的優勢:
(1)除了預設有限數量的基礎流表外,每個用戶最少只需要消耗上行1條流表或者和上下行2條流表(如果需要下行方向限速),而且只是在用戶需要訪問外網時才消耗這2條流表。相對于純Openflow模式,能夠大大節省流表資源的占用,提供更多的用戶接入能力;
(2)SDN設備中的流表是無狀態的,完全依賴于上層應用的流表管理和下發,因此SDN設備出現故障重啟或更換后,只需要重新下發流表即可,不需要用戶重新認證;
(3)可選的設備類型豐富,從接入層到核心層,只需要支持Openflow混合模式即可,可以滿足不同場景不同用戶數量的接入需求;
(4)IPv6的流程與IPv4完全相同,因此能夠平滑支持IPv4/IPv6雙棧;
(5)如有精細化管理的需要,可以為每個用戶的不同業務使用不同的流表進行控制,而每條流表都有獨立的meter和counter,因此流量的控制和統計更加靈活;
(7)當園區網多運營商共同運營時,可以非常靈活的實現用戶自主選擇運營商出口。
數據通信網絡從1969年ARPAnet開始至今,已經有接近半個世紀的發展,TCP/IP協議也經歷了30多年的廣泛應用,成為了如今互聯網的基礎協議。而SDN的概念從提出至今也不過才短短幾年時間,SDN的集中管理的模型、控制和轉發層面的分離、操作系統的開放接口和硬件的可編程化,可以看做是對現有網絡模型的優化和完善,而非要將傳統的網絡協議整體推倒重來。
特別是在目前階段,在人才儲備、網絡應用和硬件支持等方面都尚未完善的情況下,SDN更應該作為現有網絡架構和應用的有益補充,采用如混合模式的部署方案,在傳統網絡上更加簡單靈活高效的實現特定的功能。因此目前的SDN不應該是全面的顛覆、而更應該是相互的融合。
[1]黃韜、劉江、魏亮、張嬌、楊帆等著軟件定義網絡核心原理與應用實踐[M]北京:中國工信出版集團,人民郵電出版社,2016:19-21頁
[2]張衛峰.深度解析SDN 利益、戰略、技術、實踐[M].北京:電子工業出版社,2015:67-75頁
[3]Thomas Nadeau D, Ken Gary 著,畢軍、單業、張紹宇 等 譯軟件定義網絡 SDN與OpenFlow解析[M]北京:人民郵電出版社,2014:127-132頁