張順淼
(福建工程學院信息科學與工程學院,福建福州 350118)
多協議標簽交換(multiple protocol label switching,MPLS)用短而定長的標簽來封裝網絡層分組數據,最初是為提高路由器的轉發速度而提出的一個協議.隨著硬件技術的進步,采用專用集成電路ASIC和網絡處理器NP進行轉發的高速路由器和三層交換機得到廣泛應用,MPLS提高轉發速度的初衷已經沒有意義.目前,MPLS憑借其支持多層標簽和面向連接的特點,主要用于實現IP網絡的流量工程(traffic engineering,TE)和QoS方面,并提供L2/L3企業VPN服務.網絡提供商基于TE以有效利用他們的網絡基礎設施,同時企業VPN也成為他們贏利最多的業務項.網絡提供商對MPLS方案部署,發現:①盡管MPLS數據面簡單,但廠商對MPLS的支持是作為他們非常復雜、能耗高和昂貴核心路由器的額外特征,如Cisco的CRS-1和Juniper的T-640;②IP/MPLS控制面也變得越來越復雜,導致成本和脆弱性的增加.
軟件定義網絡(software defined network,SDN)是斯坦福大學Nick McKewon在OpenFlow協議[1-2]基礎上提出的一種新型網絡架構,開放網絡聯盟ONF組織于2011年發布了SDN新型網絡范式技術白皮書[3].總結起來,SDN網絡架構的主要特點是:①解耦網絡控制面和轉發面,重新抽象分組轉發為基于流的數據轉發,流是所控制的基本單元;②通過邏輯上集中的控制面操控底層分布式轉發設備,控制面由網絡操作系統實現,構建和呈現整個網絡的邏輯映射圖給上層網絡應用;③對網絡抽象重新定義,通過開放標準API實現網絡功能的可編程性和擴展性.目前支撐SDN網絡架構實現的標準化協議只有ONF定義的OpenFlow協議[4].盡管該協議近期發展到了1.4版本,從早期適用于局域網,發展到如今適用于廣域網和數據中心,從支持IPv4網絡到支持IPv6網絡;從支持單級流表到多級流表;從支持以太網鏈路層以上的邏輯資源編排到支持光層波長動態分配的物理資源編排.但若要構建全新SDN網絡還有許多關鍵技術要研究.例如以下四個方面:①支持大容量TCAM、支持任意定義多級流表的OpenFlow芯片設計;②支持可伸縮和可靠控制面的集群技術及東西向接口協議;③支持上層網絡應用的北向開放API接口;④甚至對網絡重新抽象并對TCP/IP網絡協議體系的重新定義.之所以要對TCP/IP協議體系進行重新定義,是因為現在的TCP/IP協議體系的核心是在假設分布式網絡節點和物理鏈路不可靠前提下建立起來的,數據轉發是依賴于捆綁在各個網絡節點的控制面進行路由路徑的獨立計算和鏈路狀態的獨立檢測來完成.而目前網絡節點和鏈路狀態的可靠性都得到了很大的提高,SDN架構解耦了網絡控制面和轉發面,提出對網絡轉發進行集中式管控的思想.為此原先控制面的許多分布式交互協議可以得到一定程度的簡化,甚至被集中式算法替代.文獻[5]基于軟件定義網絡的集中管控平面,提出了一種在線流量異常檢測方法.文獻[6]利用控制器中的路由統計信息,分析了從不同交換機獲取流量統計數據的網絡負載問題,從而構建整個網絡的流量矩陣.
為此,本文討論了IP/MPLS控制面的不足,提出一種基于SDN網絡架構實現MPLS網絡的方法,該方法通過傳統MPLS數據面和網絡操作系統(network operating system,NOS)上網絡應用組件實現的控制面來提供MPLSTE和VPN業務,以替代原來的IP/MPLS控制面.為了驗證技術可行性,本文還闡述了一個通過可擴展編程控制面和MPLS數據面實現MPLS TE和三層L3 VPN網絡應用的原型系統和結果展示,并展現了原型系統的實現細節.
在現在的分組交換網絡中,路由器既是對流量做路由決策的控制元素,也是負責轉發報文的轉發元素.而且這兩種功能是緊密耦合在一起的,如圖1所示.把控制面和轉發面放置在同一個盒子中必然使得網絡設備更加復雜,除了做路由決策和報文交換,還需要具備收集和分發路由信息所需的智能,如使用分布式路由協議OSPF或IS-IS.而在IP/MPLS網絡中,又還會增加如RSVP-TE和LDP的分布式信令和標簽分發機制的復雜性.在一個域內,IP/MPLS網絡可能還要另外支持別的如iBGP、RIP、LMP、SNMP和MP-BGP等協議,甚至更多的組播和Ipv6協議.所有這些疊加的網絡特征導致盒子控制面過載,進一步增加了脆弱性和軟硬件成本.
分布式鏈路狀態路由協議達到穩定時是比較脆弱,會出現處理器的路由負載和路由抖動.若有網絡狀態在頻繁地變化,更新消息也被頻繁地發送(有時也稱為擾動),那么路由器CPU將花費大量時間來進行路由計算,導致入隊列被阻塞,同時進入的報文也開始被丟棄(包括Hellos報文).丟棄Hellos報文反過來會引起超時,并造成鄰接信息丟棄,又進一步導致更多的控制報文和更大的CPU負載.這種連鎖反應導致漫長的收斂時間,路由循環才收斂,更壞的情況,甚至全部網絡癱瘓.為了避免路由協議的不穩定,路由器廠商利用了一些阻尼機制,它需要小心的調整以保證事情可控.因此IP網絡必須運維得非常小心.在MPLS-TE網絡中,同樣的路由協議被擴展為通告更多關于鏈路的信息,甚至也給了更多的原因來產生控制流量,如鏈路狀態改變(通過預留帶寬).再者,更多抑制的機制類如定時器和閾值也被用來保持事情穩定性,比如以過時的鏈路狀態信息為代價.運行受限最短路徑優先CSPF計算來產生流量標簽交換路徑LSP導致的產生過時信息的可能性,反過來也增加了使用分布式信令機制如RSVP-TE的必要性.

圖1 傳統IP/MPLS網絡Fig.1 Traditional network of IP/MPLS
RSVP-TE對流量工程協議來說是一個很差的選擇,因為它對傳統RSVP協議擴展了許多并不是用于流量工程的特征.作為協議,RSVP的軟狀態本質需要頻繁的刷新以進行狀態保活,因為它是直接在IP上跑的,所以也需要自己的可靠傳輸機制.兩種特征都導致控制面過多消息和交換上CPU的過重負載.再者,RSVP裝載了過多的特征,如層次化的LSP建立,到多點的LSP建立,LSP縫合,幀中繼建立和GMPLS擴展,使得已有負載協議更加膨脹.簡而言之,本研究認為MPLS控制面過于復雜,受SDN方法論的啟發應該可受益于另一種設計.
受SDN思想的啟發,本文提出一種開放可編程擴展網絡(open programmable extensible network,OPEN)架構.在該架構中,研究人員,或網絡管理員或第三方可以在網絡操作系統上通過編寫軟件程序來引入新的網絡功能,以簡化對網絡分片邏輯映射的管理.盡管OPEN的一些核心思想在過去被離散地提出過,但他們全部實現的意義更為深遠.OPEN希望減少各種網絡基礎設施的總體擁有成本,優化網絡以達到他們想要的特征和服務;最后,允許更快的創新步伐,以軟件速度幫忙網絡更加快速的演進,也可能讓更多開發人員參與以產生更多多樣性/差異化解決方案.
在OPEN中,本文提出了使用MPLS轉發元素作為數據面交換,他們通過OpenFlow協議連接到邏輯上集中的控制器上.控制器運行管控整個網絡的操作系統和一系列網絡控制應用以實現所有上述提到的已存在的域內協議功能(如圖2所示),消除了OPEN架構對傳統IP/MPLS控制面協議的需求.同時,本文認為一個新的網絡特征/應用/服務提供所需要的,不等于一個新的協議或對現有協議的擴展.一個協議應該可被使用5~10 a,產生改變需求的時候應該是在最終的協議與原有協議思想非常不一致,或者許多廠商已經推出了多方無法互連的準標準實現的情況.

圖2 開放網絡環境中的網絡與IP/MPLS數據面Fig.2 Network and IP/MPLSdata plate of open network environment
OpenFlow協議允許控制器發現網絡拓撲,并通過統計值、狀態和錯誤消息更新來維護拓撲狀態和網絡狀態.OpenFlow也提供了機制來操作每個數據面的流表.基于網絡操作系統的應用可以進行所有的網絡控制決策,當提供了網絡拓撲、狀態和能力對流量進行流分類并控制交換轉發.控制器和應用可以決定每個流如何進行轉發(無論是在新流建立時的被動下發流表,還是提前的主動下發流表),如何被路由,哪些被允許,哪兒被復制,以及接收的數據速率等等.他們能夠在每個數據面的流表中通過各種類型的動作緩存決策,因此OpenFlow允許對流的操作(如轉發、多播、丟棄,壓入、交換、彈出標記等).因此,OPEN的控制面網絡應用決定了接入控制、路由、多播、負載均衡、隧道等等,減少了對全分布式路由和信令協議的需求;重要的是它同時也減少了每個新的服務或特征對新協議的需求——所有需要的只是一個新的應用.
控制邏輯上集中意味著決策以集中方式作出,而控制器自身可以以分布式方式分散在多個物理服務器以實現容錯和性能伸縮.ONIX[7]是一個分布式網絡操作系統的例子,據稱它能支持必要的規模、性能和可靠性;同時新成立的開源項目OpenDaylight[8]在其技術路線規劃中也把控制器集群作為其基礎需求之一.相信再經過后續幾年的發展,更多的網絡操作系統針對不同的設計初衷將會出現用于各種研究或商業目的.在下一個部分,本文描述了在既定的網絡操作系統上,引入一種新的網絡服務如MPLS-TE、MPLSL3 VPN到現有基于IP網絡的開放網絡環境中的簡單性.
通過軟件仿真了基于OpenFlow的廣域網MPLS數據面,并在網絡操作系統上構建了MPLS流量工程應用原型.系統主要由下述幾部分構成:
Open vSwitch(OVS[9]):一種開源的OpenFlow使能的軟件交換,修訂后以執行MPLS數據面功能.
Mnininet[10]:一種開源工具,在獨立的PC上可創建由軟件交換互連在一起的網絡以仿真網絡.本文系統在Mininet上運行了4個OVS實例以形成MPLS數據面.
OpenDaylight[8]:一種開源的網絡操作系統,修訂以滿足MPLS帶來對OpenFlow協議的改變,同時在其服務抽象層提供的Flow Programmer、Topology Manager、Statistic Manager、Inventory Service等服務的基礎上,擴展了MPLS標簽管理、隧道管理、LSP路徑管理、L3 VPN APP、流量工程APP及相應Web UI等組件.該開源系統基于Java語言開發,提供REST API以開放網絡控制能力.
MPLSAPI:基于OpenDaylight開發的API,以通過OpenFlow協議來分發標簽、獲取網絡狀態和統計數據以支持創建、修改和管理標簽交換路徑LSP.
圖形用戶界面GUI和流量發生器:擴展了OpenDaylight已存在的Web UI來實時展示網絡狀態,使用軟件流量發生器來產生HTTP、VoIP、視頻流量(在UI中以不同顏色編碼).
在原型系統中,本文通過數據面采用傳統標簽交換路徑LSP,控制面采用類似隧道的特征從技術上驗證了MPLSL3 VPN和MPLSTE實現的技術可行性.
如圖3所示,站點A與站點D之間建立了一條標簽交換路徑LSP_1,站點B與站點C之間建立另外一條標簽交換路徑LSP_2.不過LSP_1和LSP_2均不是由傳統的標簽分發協議LDP來請求分配和協商標簽的,而是通過控制器上的標簽管理和L3 VPN隧道管理應用程序組件,根據用戶在Web UI界面上創建的L3 VPN觸發產生自動分配,然后控制器經由OpenFlow連接通道以流表形式下發到各個支持MPLS數據轉發的交換設備.從圖3中可知,轉發面依然存在CE、PE、P設備,只是它們與傳統IP/MPLS的區別在于MPLS中的標簽Label產生和LSP建立不再依賴于分布式協議LDP,同時各個PE之間維護的虛擬路由轉發表VRF也無需依賴于擴展的MP-BGP等協議進行分發,而統一由控制器維護的VRF路由表管理器統一維護,通過為PE設備產生不同的內層標簽來區分不同CE站點,以允許各個VPN隧道所連接站點進行相同IP網段及地址的規劃.

圖3 基于SDN的MPLSL3 VPN網絡Fig.3 VPN network based on SDN’s MPLSL3
如圖4所示,站點A與站點B、站點A與站點C、站點B與站點C之間均經過路由器RouterC,RouterC作為流量樞紐很容易成為性能瓶頸,也容易造成流量路徑的脆弱點.

圖4 傳統網絡基于CSPF算法的MPLS流量工程Fig.4 MPLStraffic engineering based on traditional network CSPF algorithm

圖5 SDN網絡中基于CSPF算法的MPLS流量工程Fig.5 MPLStraffic engineering based on SDN CSPF algorithm
通過流量工程,在鏈路上預留不同優先級的帶寬資源,執行條件受限最短路徑CSPF(constrained shortest path first,受限最短路徑優先)算法功能以尋找到滿足所有約束條件的隧道最短路徑,并展示了管理控制的新的流量工程標簽交換.如圖5所示,站點A和站點B,站點B和站點C之間均在路由路徑上預留了足夠的帶寬,最終,站點A和站點C之間走RouterA->RouterC,站點A和站點B走RouterA->RouterB之間的直連路徑,站點B和站點C之間走RouterB->RouterD->RouterE之間的路徑.同時,本文也驗證了進入的流量既可以路由到隧道,也可以路由到IP連接,之前使用常規IP連接的流量可以自動路由到新創建的流量工程標簽交換路徑.用戶可以在受限最短路徑優先CSPF中指定隧道優先級以搶占低優先級的隧道,同時隧道的流量類型也可以指定(如站點B和站點C之間的流量只允許是視頻流量).
論述了傳統IP/MPLS控制面對網絡設備計算單元所帶來的過多計算負載和為支持各種分布式鏈路狀態擴展及LDP等協議的軟件復雜度.基于SDN新型網絡架構實現MPLS網絡的方法,提出使用IP/MPLS數據面和SDN開放可編程網絡環境的控制面,在原型軟件系統中驗證了MPLSL3 VPN和流量工程原型系統.目標在于支持MPLS數據面的OpenFlow,使能在交換硬件中復制這種試驗.進一步簡化傳統TCP/IP協議體系控制面協議的復雜性,同時驗證其他的MPLS控制能力,實現幀中繼和L2 VPNs等功能.
[1]Mckeown N,Anderson T,Balakrishnan H,et al.OpenFlow:enabling innovation in campus networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2):69-74.
[2]Open Networking Foundation.OpenFlow protocol[EB/OL].[2011 - 02 - 28].http://www.openflowswitch.org/wp/documents/.
[3]Open Networking Foundation.SDN[EB/OL].[2013-08-03].https://www.opennetworking.org- /sdn-resources/sdnlibrary/whitepapers.
[4]Open Networking Foundation.OpenFlow switch specification1.4.0[EB/OL].[2013 -10 -14].https://www.o-pennetworking.org/images/stories/downloads/sdn - resourc - ces/onf- specifications/openflow/openflow - spec - v1.4.0.pdf.
[5]左青云,陳鳴,王秀磊,等.一種基于SDN的在線流量異常檢測方法[J].西安電子科技大學學報:自然科學版,2015,42(1):155-160.
[6]Tootoonchian A,Ghobadi M,Ganjali Y.OpenTM:traffic matrix estimator for openflow networks[C]//Proceedings of the 11th International Conference on Passive and Active Measurement.Heidelberg:Springer,2010:201 -210.
[7]Koponen T,Casado M,Gude N,et al.Onix:a distributed control platform for large-scale production networks[C]//Proceeding of Operating Systems Design and Implementation.Vancouver:[s.n.],2010:1 -6.
[8]The Linux Foundation.OpenDaylight open source project[EB/OL].[2012 -11 -07].https://wiki.opendaylight.org/view/Main_Page.
[9]Nicira Networks.Open vSwitch information[EB/OL].[2013 -1 -22].http://openvswitch.org.
[10]Lantz B,Heller B,Mckeown N.A network in a laptop:rapid prototyping for software-defined networks[C]//Proceedings of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks.[s.l.]:ACM,2010:19.