SDN:從理想到現實
SDN已經10多歲了,甫一問世,其控制平面與數據平面分離的理念引起了網絡界的極大關注和研究熱潮。如今,SDN的光環不再,有人說,“SDN已死,有事燒紙”;有人說,SDN精神不朽,“萬變不離其宗”。何為SDN?SDN目前究竟如何?SDN的理想與現實有何差距?
虛擬化的發展導致網絡流量,尤其是數據中心流量發生了很大變化。Core/Distribution/Access的三層網絡架構在傳統的Client-Server網絡架構中非常有效,然而如今,用戶到服務器的南北流量遠低於服務器到服務器的東西流量,當東西向流量急劇增加時,三層網絡架構開始變得力不從心。
同時,傳統網絡系統也暴露出諸多局限——系統過於復雜,無法根據企業的業務需求靈活應對變化。因此,快速部署、靈活的可擴展性、自動化和易於集成是網絡必須滿足的關鍵屬性。
市場的需求催生了網絡行業新趨勢的誕生:SDN(軟件定義網絡)!
SDN:從靈感到本質
根據ONF(開放網絡基金會)的說法,SDN 是一種控制平面和數據平面分離且可編程的網絡架構。
何為控制平面和數據平面?舉個栗子,我們熟知家到公司的路線,不需要導航就可出發,因為我們已經提前獲得了數據和決策。但是,如果要從家到陌生客戶所在的A 公司,如何規劃路線呢?我們需要思考、查找並選擇正確的路徑,計算和決策路徑在網絡語言中相當於使用了控制平面;而從家走到公司,不需要計算和決策,只需要直接出發,相當於在數據平面上處理。
網絡系統也是如此。要將數據從A點傳輸到B點,每個網絡設備上必須同時包含計算功能(即控制平面)和數據傳輸功能(即數據平面)。在SDN 網絡中,控制平面與設備分離,並集中在一個稱為SDN 控制器(本質上是為控製網絡而編程的軟件)的地方。網絡系統有數百個設備,但只需要一個控制器來計算和決策,設備僅通過控制器的指令進行數據傳輸。
在架構方面,SDN分為三層。基礎設施層包括所有具有數據轉發功能(即數據平面執行)的網絡設備。SDN控制層包含一個或多個控制器,負責管理和控制底層網絡設備的分組轉發,這兩層之間使用南向接口(例如OpenFlow)進行通信。最上層是應用層,包括應用和服務(如流量控制、安全、QoS等),它們通過北向接口直接與控制層交互。
有了上面的網絡架構,SDN網絡帶來了很多變革:
首先,分离控制平面和数据平面有助于为整个网络创建“全局视图”,提高可见性和策略一致性。理论上设备只执行数据平面任务的话将简化设计,大大降低硬件生产成本,因为设备本身不需要运行太多的协议,只需执行来自控制器的命令。最重要的是,这种分离可以更好地抽象网络系统。
“抽象”是SDN网络中一个非常重要的特性。如今的网络愈加趋于简单和自动化,为此必须对网络系统进行抽象。通过分层的网络架构,网络管理员可以根据需要对网络系统进行编程,在不需要对数百个设备、数千行代码和复杂协议进行交互的情况下,向下推进底层实现。
从集中控制平面创建整个网络的“全局视图”,到通过 API 进行层间通信,SDN 中的所有网络元素都支持自定义编程。这种组合有助于网络管理员提高其网络的自动化程度,应用程序、网络服务可以实时运行。网络系统完全可以定制和优化所需的特性,而不依赖于设备制造商。
SDN:从理想到现实
SDN的理想与现实之间存在着许多差异。与SDN定义和研究相比,SDN实际产品存在着许多不同。对于实际的SDN产品,控制平面和数据平面真的是分开的吗?这些设备会独立制造而不依赖于供应商吗?Openflow 是流行的通信协议吗?
SDN在不断地发展,网络架构也非常多样化:
上文提到的SDN网络架构就是上图架构(2a),控制平面和数据平面完全分离。OSPF、BGP等路由协议或MAC学习机制都集中在控制器中,设备只是实现数据转发的物理部分,这被认为是原始的 SDN 架构。
然而,这种架构可能多存在于研究实验室和一些实验产品中。真正落实到商业 SDN 产品时却有不同,例如 SD-WAN使用的是架构(2b),控制整个网络的组件集中在控制器上,但控制平面保留在设备上,以便设备可以相对独立地运行。甚至,有些解决方案虽然被称为SDN,但实际上控制平面完全在设备上,控制器只倾向于集中管理整个网络,以支持与应用层和用户的通信。
图中架构(3)所示为基于SDN的Overlay架构,也是当今市场上许多软件定义产品的一部分。Overlay网络旨在使用网络虚拟化在物理基础设施之上建立连接的逻辑网络。
从SDN的理念来看,市场上提供的解决方案产品非常多样化,被称为SDX(软件定义xx)。因为 SDN 不是产品,它是一种架构、一种理念,最终产品取决于构建目的和具体的解决方案。
例如 SDN 可用于网络流量调度。通常传统网络的路径选择依据是通过路由协议计算出的“最优”路径,但结果可能会导致“最优”路径上流量拥塞,其他非“最优”路径空闲。当采用SDN网络架构时,具有“全局视野”的SDN就可以根据网络流量状态智能调整网络流量路径,提升网络利用率。SD-WAN 就是很好的一个例子。
对于网络功能的虚拟化,包括多租户环境中物理网络基础设施的虚拟化,SDN有助于在数据中心创建虚拟网络,为基础设施层和应用程序提供快速配置。
由此可以看到,从SDN网络的思想来看,它可以发展成不同的产品和解决方案,以克服很多传统网络不可能或难以解决的问题。
SDN(或者更确切地说是SDN的思想)将继续被应用和发展,在未来带来更加多样化和改进的产品。希望通过本文能够让有兴趣的读者更好地掌握市场趋势,了解SDN网络的本质以及在实践中的应用。