由于早期成功的的SDN方案中网络虚拟化案例较多,有的读者可能会认为SDN和网络虚拟化是同一个层面的,然而这是一个错误的说法。SDN不是网络虚拟化,网络虚拟化也不是SDN。SDN是一种集中控制的网络架构,可将网络划分为数据层面和控制层面。而网络虚拟化是一种网络技术,可以在物理拓扑上创建虚拟网络。传统的网络虚拟化部署需要手动逐跳部署,其效率低下,人力成本很高。而在数据中心等场景中,为实现快速部署和动态调整,必须使用自动化的业务部署。SDN的出现给网络虚拟化业务部署提供了新的解决方案。通过集中控制的方式,网络管理员可以通过控制器的API来编写程序,从而实现自动化的业务部署,大大缩短业务部署周期,同时也实现随需动态调整。
随着IaaS的发展,数据中心网络对网络虚拟化技术的需求将会越来越强烈。SDN出现不久后,SDN初创公司Nicira就开发了网络虚拟化产品NVP(Network Virtualization Platform)。Nicira被VMware收购之后,VMware结合NVP和自己的产品vCloud Networking and Security (vCNS),推出了VMware的网络虚拟化和安全产品NSX。NSX可以为数据中心提供软件定义化的网络虚拟化服务。由于网络虚拟化是SDN早期少数几个可以落地的应用,所以大众很容易将网络虚拟化和SDN弄混淆。正如前面所说,网络虚拟化只是一种网络技术,而基于SDN的网络架构可以更容易地实现网络虚拟化。
SDN实现网络虚拟化
通过SDN实现网络虚拟化需要完成物理网络管理,网络资源虚拟化和网络隔离三部分工作。而这三部分内容往往通过专门的中间层软件完成,我们称之为网络虚拟化平台。虚拟化平台需要完成物理网络的管理和抽象虚拟化,并分别提供给不同的租户。此外,虚拟化平台还应该实现不同租户之间的相互隔离,保证不同租户互不影响。虚拟化平台的存在使得租户无法感知到网络虚拟化的存在,也即虚拟化平台可实现用户透明的网络虚拟化。
虚拟化平台
虚拟化平台是介于数据网络拓扑和租户控制器之间的中间层。面向数据平面,虚拟化平面就是控制器,而面向租户控制器,虚拟化平台就是数据平面。所以虚拟化平台本质上具有数据平面和控制层面两种属性。在虚拟化的核心层,虚拟化平台需要完成物理网络资源到虚拟资源的虚拟化映射过程。面向租户控制器,虚拟化平台充当数据平面角色,将模拟出来的虚拟网络呈现给租户控制器。从租户控制器上往下看,只能看到属于自己的虚拟网络,而并不了解真实的物理网络。而在数据层面的角度看,虚拟化平台就是控制器,而交换机并不知道虚拟平面的存在。所以虚拟化平台的存在实现了面向租户和面向底层网络的透明虚拟化,其管理全部的物理网络拓扑,并向租户提供隔离的虚拟网络。
软件定义网络(SDN)是控制功能和转发功能的分离,它使网络具有更大的自动化和可编程性。它通常与网络功能虚拟化(NFV)结合使用,NFV以虚拟化网络功能(VNFs)的形式将网络功能与硬件分离。
在SDN架构中有三个层面:
1.应用层:在网络上运行的应用及服务。
2.控制层:SDN控制器或网络的“大脑”。
3.基础面:交换机和路由器,以及其支撑的物理硬件。
为了在这些层级之间进行完成通信,SDN使用北向和南向应用接口(API),其中北向接口在基础层和控制层之间进行通信,南向API在应用层和控制层之间进行通信。
北向接口:使用SDN的应用程序依赖于控制器来告诉他们网络基础状态,以便他们知道哪些资源是可用的。此外,SDN控制器可以根据网络管理员建立的策略自动确保应用程序流量路由。应用层与控制层通信,告诉它应用程序需要什么资源,以及它们的目的地。
控制层协调如何向应用层提供网络中可用的资源。它还利用其智能,根据应用程序的延迟和安全需求,为应用程序找到最佳路径。整个业务流程是自动化完成的,而不是手动配置的。
南向接口:SDN控制器通过南向接口与基础层(如路由器和交换机)通信。网络基础层被告知应用程序数据必须采用由控制器决定的路径转发。控制器可以实时改变路由器和交换机转发的方式。数据不再依赖于设备路由表来确定数据转发路径。相反,控制器可以智能优化数据转发的路径。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)