SDN南向接口

SDN南向接口

我们知道SDN架构与传统网络架构最大的不同是:数控分离。在SDN架构中,网络的控制平面和数据平面相互分离,或者说解耦合,不再绑定在一起。

SDN的数控分离给网络领域引入一个新的概念:南向接口。控制平面与数据平面解耦合之后,需要通过这个南向接口进行通信,在SDN发展过程中,OpenFlow是第一个开放的南向接口协议。我们学习SDN的第一步就是了解和认识OpenFlow南向接口协议。注意:OpenFlow不仅仅是南向接口协议,后续我会专门写一篇文章来讨论。

这个南向接口对SDN架构的演进非常重要。为什么这么说呢?南向接口可以理解成一个数据平面的编程接口,这个通信接口支持的可编程能力直接决定了SDN架构的可编程能力,通俗点来说,一个真实网络应用方案中,数据平面的南向接口能力决定了SDN方案用户编程能力的上限。

另一方面,南向接口是网络设备厂商竞争的一个关键。如果哪一家设备厂商独占了这个通信接口标准,那么这家厂商直接拥有了SDN时代的话语权。幸运的是,SDN是从大学校园诞生的新技术,OpenFlow最初的定位就是一个开放的通用南向接口。

如果OpenFlow真的成为一个通用的、统一的开放接口,那真是整个网络产业的幸事。可惜要做到这一点很难很难,OpenFlow本身能否承担这个重任暂且不论,传统网络设备厂商巨头又怎能坐视不理?随着SDN的发展,设备厂商把越来越多的接口协议放到南向接口协议的阵容中,唱衰OpenFlow的声音多起来,甚至在OpenFlow基础上出现了新的南向接口协议,视为OpenFlow2.0.

为了理清众多的SDN南向接口,我们首次提出了一种新的南向接口分类方法:根据南向接口提供的可编程能力,分为狭义SDN南向接口和广义SDN南向接口两大类。大家可以重点关注一下设备厂商对不同南向接口的支持,不同控制器在支持南向接口方面的选择。

狭义的SDN南向接口协议支持数据平面本身的可编程能力,用户可以通过控制平面编程或者自定义数据平面设备的具体网络处理行为,比如转发操作、包头的修改。OpenFlow是这种狭义南向接口协议的典型,控制平面可以通过OpenFlow协议下发流表项来对数据面设备的网络数据处理行为进行编程,从而实现更细粒度的可编程网络。是否狭义SDN南向接口协议,关键是看这种南向接口协议是否具备明显的数据面可编程能力。

广义的SDN南向接口协议只是支持一定程度的数据平面可编程能力,比如传统的网络设备配置协议和网管协议等。这种广义SDN南向接口协议又分为三种子类型:第一种是仅具有对数据平面配置能力的南向接口协议;第二种是应用于广义SDN,具有部分可编程能力的南向接口协议;第三种是本来就存在,其应用范围很广,不限于应用在SDN控制平面和数据平面之间传输控制信令的南向接口协议。

第一种网络设备配置类型协议的代表有OF-Config、OVSDB和NET-CONF等。目前这些南向协议已经获得部分SDN控制器的支持,比如OpenDaylight。当然,这种子类型的南向接口只能对网络设备的资源进行配置,不能编程网络设备的具体处理过程。从宽泛的角度来看,这些南向接口也应用在SDN控制平面和数据平面之间,也属于SDN南向接口协议范围。另外,网络设备配置型南向协议是OpenFlow等狭义SDN南向协议的必要补充,在设备初始化时完成对网络设备资源的配置,最典型的就是ONF的OF-Config协议。

第二种部分可编程的SDN南向接口协议的代表是思科的OpFlex协议。在思科的SD方案ACI架构中,思科控制平面通过OpFlex接口协议远程下发策略,控制网络设备去实现某种网络策略。然而,OpFlex是声明式控制(Declarative Control)的南向接口协议,只是下发控制平面定义的策略,并不指定实现网络策略的具体方式,具体的实现方式由数据平面设备来决定。可以看出,OpFlex具有一定的可编程能力,但也只是相对受限的可编程能力,无法做到更细致粒度的数据平面编程,所以我们将其归类到广义的SDN南向协议中。

第三种可用的SDN南向协议的代表是XMPP和PCEP。这种通信协议本来就存在,具有一定的可编程能力,但均不是专门为SDN而设计的,可以用作SDN南向接口协议。比如XMPP被用于很多场景,比如网络聊天等,PCEP最初被广泛用于TE领域,在SDN出现之后,都经常被应用在SDN框架中。

最后,我们再介绍一种特殊的南向接口:完全可编程南向接口协议。这种南向接口协议可以看作是OpenFlow的演进,比如华为提出的POF协议/架构和P4语言/协议。这两者比OpenFlow有更通用的抽象能力,其能力范围已经超越了狭义SDN南向协议的定义。

华为POF架构不仅可以实现软件定义的网络数据处理,而且还可以实现软件定义的网络协议解析。即POF可以实现对数据平面协议解析过程和数据处理过程两部分的软件定义,拥有更细粒度和更全面的数据平面编程能力,支持协议无关的转发,是完全可编程的南向协议。而OpenFlow仅支持通过软件定义网络数据的处理逻辑,无法对数据平面数据解析逻辑进行编程,所以当需要支持新网络协议时,就暴露出抽象能力不足的缺点。

2016年后半年火的一塌糊涂的P4,也是一个可对数据解析逻辑和数据处理逻辑编程的语言或者框架。P4不仅是一个SDN南向协议,还是一门网络编程语言,即可以通过P4协议对底层交换机进行编程控制。P4的范围超越了纯粹的SDN南向协议,包涵了网络编程语言的概念。

本质上,POF和P4更准确的归类应该是完全可编程的通用抽象模型,因为它们同时支持数据平面和控制平面的软件定义。但是如果从南向接口协议的角度来看,POF和P4可以看作是比OpenFlow具备更全面可编程能力的南向接口协议。

更多有关SDN的内容,关注我的公众号:SDN学习与研究。

购买SDN新书《重构网络:SDN架构与实现》:《重构网络:SDN架构与实现》(杨泽卫 李呈)

aHR0cDovL3dlaXhpbi5xcS5jb20vci9RME9wc2RYRXVZakdyWkhTOXhaUg== (二维码自动识别)

编辑于 2017-05-05