|
SDN是Software Defined
Network的缩写,翻译成中文就是软件定义网络。那到底什么才算SDN呢,目前各个厂商SDN解决方案百花齐放百家争鸣,相比大家都眼花缭乱了。其中也不乏会有一些误解。
SDN的核心是转发和控制进行分离,并且SDN并不是一个具体的技术(相比较而言OSPF、BGP、MPLS、Trill等都是具体的技术),它其实是一个框架,一种网络设计的理念。
而传统网络,大家比较了解它的转发行为是受各种网络控制协议控制的,尽管它们也能间接的反映了管理员的意志,但是:
1.它们是逐跳设备单独控制的,属于分布式架构。
2.控制平面和数据平面在同一台设备中(比如传统路由器既要完成OSPF等协议的控制平面的运作,又要形成各种表项完成数据的转发)。
3.管理员无法直接操控设备的转发行为。
而SDN呢?
它要求集中式控制(当然也有分布式,当SDN架构网络规模很大的时候,就需要多个SDN控制共同参与),并且要求转发平面和控制平面分离,要求管理员可以直接操控设备的转发行,可以不用通过各种网络协议。
当然如果你愿意,也可以在SDN控制器上运行各种网络协议,比如谷歌的SDN网络,就是把协议跑在SDN控制器中,通过SDN控制将流表下发给转发面设备,最终完成数据的转发。
往往SDN架构中,会有各种各样的软件应用来实现网络的规划,管理员可以随心所欲的利用这些软件来规划自己网络中的任意转发行为,管理员通过这些软件来定义整个网络,也就是所谓的“Software
Defined Network”。
那具体SDN架构是如何的,我们来看一张ONF(Open Networking Foundation
)即开放网络基金会)定义的SDN架构图,在架构图中,可以看到三个层次,分别是基础架构层(转发层),控制层和应用层。
一、转发层
主要由转发器和连接转发器的线路构成基础转发网络,这一层负责执行用户数据的转发,其转发过程中所需要转发表项则是由控制层生成的,而不是转发器。
转发表项可以是2层转发表项或者3层转发表项。该层和控制层之间通过南向接口交互。ONF组织定义的比较出名的协议为OpenFlow协议,另外一个不太出名的协议叫OF-config。目前openflow是最有影响力的南向标准,但是并不是唯一的。当然还有更多各种各样的南向协议,比如PCEP、SNMP、OVSDB等。
二、控制层
是系统的控制中心,通常controller都是运行在一台独立的服务器上,比如一台X86的Linux服务器或者Windowns服务器,它负责网络的内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。它的实现实体就是SDN控制器,也是SDN网络架构下最核心的部件。其核心功能是实现网络内部交换路径计算和边界业务路由计算。控制层的接口主要是南向通过控制接口和转发层交互,北向提供网络业务接口和APP层交互。传统网络中的北向接口是指交换机控制面跟网管软件之间的接口,比如常见的SNMP、TL1等标准协议。在SDN架构中,它指Controller跟应用程序之间的接口,比如RestFul、Netconf和其他开放的API等。
三、协同应用层
主要是完成用户意图的各种上层应用程序,此类应用程序(APP)称为协同层应用程序,典型的协同层应用包括OSS、Openstack等。OSS负责整网的业务协同,而Openstack则在数据中心负责网络、计算、存储的协同。当然还有一些其它的协同层应用程序如安全APP、网络业务APP客户端等。
这是以用户为代表(一些运营商和服务提供商)的ONF定义的理想化的架构,而并非传统设备商和软件商想要的架构。 |
|