官术网_书友最值得收藏!

|1.4 All IP 1.0的機遇:SDN與網絡編程|

All IP 1.0時代存在的挑戰不僅有IPv4和MPLS數據平面可擴展性和可編程能力不足,還有其他問題 [19]

? 缺乏網絡的全局視角,缺乏流量可視化功能,無法基于全局視角做出全局最優的網絡決策,無法快速響應TE需求。

? 數據平面缺乏統一的抽象模型,控制平面無法基于數據平面API (Application Program Interface,應用程序接口)進行編程來支持網絡新功能。

? 缺乏自動化工具,業務上線周期長。

? 設備的數據平面和控制平面緊密耦合,相互綁定銷售;在演進上相互依賴,不同廠商設備的控制平面無法控制彼此的數據平面。

事實上,All IP 1.0時代的傳統網絡設備與20世紀60年代的IBM大型機類似,網絡設備硬件、操作系統和網絡應用3個部分緊密耦合在一起,組成一個封閉的系統。這3個部分相互依賴,每一部分的創新和演進都要求其余部分做出相應的升級。這樣的架構阻礙了網絡的創新進程 [19]

但計算機終端的發展模式就截然不同。

計算機終端采用通用處理器,并基于通用處理器實現軟件定義功能,因此計算機具有更加靈活的編程能力,使軟件應用的種類出現了爆炸式的增長。此外,計算機軟件的開源模式催生了大量的開源軟件,加速了軟件開發的進程,推動了整個計算機產業的快速發展,Linux 開源操作系統就是最好的證明。

借鑒計算機領域的通用硬件、軟件定義和開源理念,美國斯坦福大學尼克·麥基翁(Nick McKeown)教授的團隊提出了一個新的網絡體系架構——SDN[4]

在SDN架構中,網絡的控制平面與數據平面相分離:數據平面變得更加通用化,與計算機通用硬件底層類似,不再需要實現各種網絡協議的控制邏輯,只需要接收控制平面的操作指令并執行,比如OpenFlow[5]數據平面。網絡設備的控制邏輯由SDN控制器和應用來定義,從而實現軟件定義的網絡功能。隨著開源SDN控制器和開源SDN開放接口的出現,網絡體系架構也擁有了通用底層硬件、支持軟件定義和開源模式3個要素。從傳統網絡體系架構到SDN網絡體系架構的演進關系如圖1-6所示。

圖1-6 傳統網絡體系架構向SDN網絡體系架構的演進

SDN主要有以下3個特征 [18]

? 網絡開放可編程:SDN建立了新的網絡抽象模型,為用戶提供了一套完整的通用API。用戶可以通過在控制器上編程,實現對網絡的配置、控制和管理。

? 邏輯上的集中控制:主要是指對分布式網絡狀態的集中統一管理。邏輯上的集中控制為SDN提供了架構基礎,也為網絡自動化管理提供了可能。

? 控制平面與數據平面分離:此處的分離是指控制平面與數據平面的解耦,兩者可以獨立完成演進,只需遵循統一的開放接口進行通信。

符合以上3個特征的網絡都可以被稱為SDN。在這3個特征中,控制平面和數據平面分離為邏輯集中控制創造了條件,邏輯集中控制為網絡開放可編程提供了架構基礎,而網絡開放可編程才是SDN的核心特征。

SDN只是一種網絡架構,歷史上出現過多種用于實現SDN的技術,比如OpenFlow、POF(Protocol Oblivious Forwarding,協議無關轉發)[20]、P4 (Programming Protocol-independent Packet Processors,編程協議無關的包處理器)[21]和本書要介紹的Segment Routing[7]

1. OpenFlow

2008年3月14日,尼克·麥基翁教授等提出了OpenFlow這種SDN控制平面和數據平面之間交互的通信協議。

如圖1-7所示,在OpenFlow的協議架構中,OpenFlow交換機和OpenFlow控制器之間建立OpenFlow協議通道用于交互信息。控制器可以通過OpenFlow向OpenFlow交換機下發轉發流表項。每一條流表項定義了一種流及其對應的轉發動作,即在Match(匹配)成功的條件下,執行對應的Action(動作)來進行數據處理和轉發。

圖1-7 OpenFlow1.0架構

本質上,網絡的轉發行為就是“Match + Action”模式的查表轉發,比如二層交換機通過查找目的MAC(Media Access Control,媒體訪問控制)地址進行轉發,三層路由器通過查找目的IP地址進行轉發。OpenFlow的設計理念就是將匹配和轉發動作抽象成固定的操作,然后通過控制器向交換機下發轉發流表項,指導報文的轉發。總體而言,OpenFlow是一種網絡處理規則的抽象通用化,且支持集中編程的SDN技術。

OpenFlow支持匹配以太網、IPv4和IPv6等協議字段,也支持轉發報文到指定端口、丟棄報文等動作。控制器可以基于OpenFlow協議對匹配規則進行編程,從而實現網絡編程。例如,控制器向交換機A下發一條流表項,指示交換機A將目的IP地址為192.168.1.20的報文轉發到出接口1。

OpenFlow的優點在于可以靈活編程轉發規則,但問題也比較明顯。

第一,OpenFlow的流表規格受限,導致OpenFlow交換機性能不足。OpenFlow目前更多地被部署在數據中心中,用于比較簡單的數據交換,無法被部署在對流表項需求更多的環境中。

第二,OpenFlow交換機(被當作三層交換機或路由器使用)的優勢在于不需要部署IGP(Interior Gateway Protocol,內部網關協議)等分布式路由協議就可以通過控制器收集的網絡拓撲來完成路徑計算,指導報文轉發。但在實際部署中并沒有運營商選擇拋棄IGP等分布式路由協議,所以OpenFlow交換機上一般還需要集成IGP等協議。在這種情況下,由于IGP已經滿足了基礎的最短路徑轉發,OpenFlow的用途就只剩下對關鍵業務的流量調優,作用弱化了很多。所以OpenFlow交換機不僅沒有簡化已有的協議,還引入了OpenFlow的復雜度。

第三,OpenFlow只能在現有的轉發邏輯上添加對應流表項來指導報文的轉發,而無法對交換機的轉發邏輯進行編程和修改。為OpenFlow添加新特性時,需要重寫控制器和交換機兩端的協議棧,甚至還需要重新設計交換機的芯片和其他硬件才能支持新特性。因此,每增加一個新的特性,都需要大量的開發工作,增加了支持新特性的成本。

第四,OpenFlow缺乏足夠的能力去維持網絡狀態,所以OpenFlow交換機基本無法自主實現有狀態的操作。過度依賴控制器給控制器帶來了很大的壓力,還帶來了可擴展性和性能等方面的問題。

受限于以上問題,OpenFlow還沒有被廣泛部署。

2. POF

為了解決OpenFlow無法對交換機的轉發邏輯進行編程和修改的問題,華為提出了POF。

POF架構與OpenFlow相似,可以分為控制平面的POF控制器和數據平面的POF轉發元件兩部分。在POF架構中,POF交換機并沒有協議的概念,它僅在POF控制器的指導下通過{offset,length}來定位數據、匹配并執行對應的操作,從而完成數據處理。這種方式使得交換機可以在處理網絡數據時不感知網絡協議,在支持新協議時,也不需要對交換機的數據平面進行升級,僅升級控制平面即可。總體而言,POF是對網絡處理流程完全抽象通用化(也即協議無關)、支持對轉發邏輯和轉發規則完全編程的SDN技術。圖1-8展示了POF硬件交換機和POF軟件交換機的架構。

圖1-8 POF硬件交換機(左)和POF軟件交換機(右)的架構

由于POF支持協議無關的轉發,所以可以部署在任意的網絡中,包括一些非以太網網絡,例如NDN(Named Data Network,命名數據網絡)和CCN (Content-Centric Network,以內容為中心的網絡)這兩種未來網絡。此外, POF交換機支持狀態機特性,可以實現更多的智能功能,可在網絡安全等領域有所作為。

但與OpenFlow相比較,POF的控制流程就要復雜得多,為了實現POF,還需要定義一套通用指令集,實現復雜的指令調度,這也給轉發性能帶來了一定的影響。因此POF在商業上并沒有太好的進展。

3. P4

面對OpenFlow存在的可編程能力不足的問題,除了華為提出的POF以外,尼克·麥基翁和珍妮弗·雷克斯福德(Jennifer Rexford)教授等人提出了P4 [21]。P4是一種高級編程語言,它定義了一系列的語法,支持對轉發模型的協議解析過程和轉發過程進行編程定義,實現了協議無關的可編程網絡數據平面。

通過P4編程定義報文頭格式、解析器、表項、動作和控制程序 [21]等組件實現對設備報文處理流程的編程,可以做到轉發無中斷的重配置,滿足網絡新業務對網絡設備可編程的需求。一個P4程序可以應用到如圖1-9所示的通用抽象轉發模型中。

圖1-9 通用抽象轉發模型

P4支持對交換機轉發處理邏輯進行編程定義,不需要購買新設備即可支持新特性,只需通過控制器編程并更新交換機的處理邏輯。這種創新解決了OpenFlow可編程能力不足的問題。此外,由于P4可以編程定義交換機處理邏輯,使得交換機可以轉發任意協議,底層交換機更加通用化,適用范圍更廣,所以更容易降低設備采購成本。總體而言,P4是對網絡處理流程完全抽象通用化(即協議無關)、支持對轉發邏輯和轉發規則完全編程的SDN技術,包含對應的編程語言及對應的轉發平面等組件。

雖然P4在創新上具有一定的技術優勢,可以滿足網絡創新的需求,但是在商業部署上,卻進展不佳。一方面,網絡的演進速度并不快,在很大的程度上,增加一個網絡特性不是一家設備商的事情,它需要運營商和設備商等共同參與,由整個行業共同推動、共同制定標準來實現。這個標準的制定周期相對較長,所以在漫長的標準制定過程中,P4快速支持網絡編程的能力就顯得不那么重要了。另一方面,完全集中式的SDN在可靠性和響應速度等方面存在問題,且對控制器要求過高。而實際上現網并不需要通過推翻分布式路由協議架構來完全重新構建連接,而是需要在現有分布智能互聯的基礎上,提供增強的集中式全局優化的能力,實現全局優化和分布智能的結合。2019年6月11日,以P4商業化為主營業務的創業公司Barefoot被英特爾公司收購,截至目前, P4也沒能被大規模商用。

4. Segment Routing

回顧OpenFlow、POF和P4等技術,其初衷都是為網絡提供可編程能力。但為了實現網絡可編程就必須要進行革命性的創新嗎?答案是否定的。

2013年,由思科公司提出的Segment Routing協議就是在已有網絡的基礎上進行演進式的擴展,提供了網絡編程能力。Segment Routing是一種源路由協議,支持在路徑的起始點向報文中插入轉發操作指令來指導報文在網絡中的轉發,從而支持網絡可編程。Segment Routing的核心思想是將報文轉發路徑切割為不同的分段,并在路徑的起始點往報文中插入分段信息指導報文轉發。這樣的路徑分段被稱為“Segment”,并通過SID(Segment Identifier,段標識符)來標識。目前Segment Routing支持MPLS和IPv6兩種數據平面,基于MPLS數據平面的Segment Routing被稱為SR-MPLS,其SID為MPLS標簽;基于IPv6數據平面的Segment Routing被稱為SRv6,其SID為IPv6地址。

Segment Routing的設計理念在現實生活中也屢見不鮮,如乘坐火車、飛機出行。下面舉一個例子,來進一步解釋Segment Routing的原理。

假設從海口到倫敦的飛機需要在廣州和北京進行兩次中轉,飛行路線變為3段:海口→廣州、廣州→北京和北京→倫敦。我們只需要在海口買好從海口到廣州、廣州到北京、北京到倫敦的3張票,就可以從海口一站一站地中轉飛到倫敦。

在海口,我們要乘坐HU7009航班飛往廣州;當飛達廣州時,根據機票,乘坐HU7808航班飛往北京;到了北京,再根據機票乘坐CA937航班飛往倫敦。就這樣,我們靠著在海口拿到的3張機票,順利換乘飛機逐段飛到了倫敦。

報文在Segment Routing網絡中的轉發過程也是類似的。如圖1-10所示,報文從節點A進入Segment Routing網絡,節點A經過匹配目的地址,知道報文需要經過節點B和節點C到達節點D,所以將節點B、節點C和節點D對應的SID插入報文頭中,用于指導報文轉發。節點B和節點C根據報文頭中的SID信息,將報文一步步地轉發到指定的目的節點D。

圖1-10 Segment Routing示例

相比于RSVP-TE MPLS,SR-MPLS具有如下優勢。

? 簡化了控制平面。SR-MPLS不需要RSVP-TE等信令協議,只需對IGP(Interior Gateway Protocol,內部網關協議)和BGP(Border Gateway Protocol,邊界網關協議)等協議進行擴展即可。

? 簡化了網絡的狀態。在RSVP-TE MPLS網絡中,中間節點需要為每個數據流維持轉發狀態。而在SR-MPLS網絡中,僅需要在頭節點維持逐流的轉發狀態,在中間節點和尾節點不需要維持逐流的轉發狀態。

在互通方面,由于SR-MPLS未對MPLS數據封裝做任何修改,所以在數據平面可以很容易地與傳統的MPLS網絡互通。相比于OpenFlow等革命性的協議,SR-MPLS考慮了對現網的兼容,支持平滑演進,同時也提供了網絡編程的能力。這種演進式的創新更容易得到業界的認可,也更容易落地。此外, Segment Routing保留了網絡的分布式智能,并在此基礎上引入SDN控制器的全局優化能力,結合了分布智能和全局最優的優勢,因此應用的實際落地更具可操作性,也更有生命力。時至今日,Segment Routing已經成為事實上的SDN標準。

雖然基于MPLS數據平面的SR-MPLS可以提供很好的可編程能力,但是其受限于MPLS封裝可擴展性不足等問題,無法很好地滿足SFC和IOAM等一些需要攜帶元數據的業務的需求。而基于IPv6數據平面的SRv6不僅繼承了SR-MPLS網絡的所有優點,還擁有比SR-MPLS更好的可擴展性。

主站蜘蛛池模板: 罗城| 延吉市| 莱西市| 沾益县| 南昌市| 论坛| 绩溪县| 茶陵县| 临夏县| 兴隆县| 陈巴尔虎旗| 朝阳市| 佛山市| 镇赉县| 墨江| 宁武县| 平山县| 晋州市| 杂多县| 张北县| 丰台区| 阿勒泰市| 霍城县| 扎兰屯市| 阿荣旗| 金川县| 共和县| 固原市| 普宁市| 新化县| 潍坊市| 南投市| 美姑县| 勃利县| 竹溪县| 临海市| 和政县| 尚志市| 南宁市| 海兴县| 池州市|