我是一个SDN控制器

2016-04-18 by muzi

“醒醒!”朦胧中有一个人叫醒了我。

“跟我走”,那个身穿Linux制服,胖得像企鹅一样的大叔拉着我就走。

“你谁啊?去哪里?”, 我惊恐的问,完全不知道到底发生了什么。

“我是操作系统,负责给你安排工作。你是一个SDN控制器,是Ryu族人,就给你分配代号9527吧。”,那大叔显得有些不耐烦地回答。

“看到没有,前面办公楼里的6633房间就是你的办公室,你的工作就是处理信件和包裹,门房的卡大爷负责收发信件,你记得找他取信就可以了,过期他会丢掉的”。大叔边走边说,一转眼已经到了门口。门房果然有一个大爷,正在忙着处理堆积如山的包裹,胸口的工作证沾了好多灰尘,不过隐隐约约还是可以辨出“网卡”两个字。

但我依然不知道我要具体做什么,所以忍不住又问:“操作系统大哥,我来这里干什么啊?”

“你这么叫不累?叫我Linux就好了。你是新来的员工,要做什么可以看你胸前的说明书”。

我低头一看,我的天啊!我贴着这么大的说明书和路过的5个美女打了招呼,她们还对我笑了。我拿下说明书,发现上面赫然写着“README”,怪不得刚才有个小孩一直跟着我,还碎碎念着什么SDN,我还以为他只是脑子发育有些迟缓。羞愧之余,我慢慢往下读。

原来我被任命为因特奈特国金银岛的快递主管 ...

read more

P4:真正的SDN还遥远吗

2016-03-23 by muzi

OpenFlow协议作为SDN最流行的南向协议,得到了很多的关注,目前发展也良好,但OpenFlow并不完美,OpeFlow交换机还不能提供更好的可编程能力。P4作为新的网络编程语言很好的弥补这个缺陷。P4会改变网络吗?是否能带来具有完全可编程能力的SDN?还是仅仅是学术界的宠儿?本文将介绍协议独立数据包处理编程语言P4,其中包括其简介、原理和发展趋势,希望笔者能带来一些有意思的观点。

简介

P4(Programming protocol-independent packet processors)[1]是由Pat Bosshart等人提出来的高级“协议独立数据包处理编程语言”,如OpenFlow一样是一种南向协议,但是其范围要比OpenFlow要大。不仅可以指导数据流进行转发,还可以对交换机等转发设备的数据处理流程进行软件编程定义,是真正意义上的完全SDN。值得注意的是,P4论文作者中还有斯坦福大学的Nick McKeown教授和普林斯顿大学的Jennifer Rexford教授两位业界大牛的名字。Nick教授是SDN的提出者之一,一直是SDN学术领域顶尖的存在;而后者Jennifer教授也发表了4D[2]等诸多重要的SDN相关论文,更提出了网络编程语言Frenetic[3],同样是业界的先驱。两位教授也是P4组织的主要推动者之一。目前,P4语言作为一种潜在的OpenFlow2.0的发展方向在努力发展。

原理

与POF提出的目的类似,P4提出的目的也是为了解决OpenFlow编程能力不足以及其设计本身所带来的可拓展性差的难题。自OpenFlow1.0发布以来,其版本目前已经演进到1 ...

read more

POF:更理想的SDN?

2016-03-12 by muzi

OpenFlow协议实现的SDN目前已经得到了应用和推广,但OpenFlow并不完美,OpeFlow交换机还不能提供更好的可编程能力。POF作为一种新的南向协议,是OpenFlow的未来方向?还是只是一个乌托邦?本文将介绍由华为提出的协议无关转发POF,其中包括其简介、原理、原型和应用场景以及最后的发展趋势,希望能带来一些有意思的想法。

简介

POF(Protocol Oblivious Forwarding)[1]是由华为提出的SDN南向协议,是一种SDN实现方式,中文意思为协议无关转发。与OpenFlow相似,在POF定义的架构中分为控制平面的POF控制器和和数据平面POF转发元件(Forwarding Element)。在POF架构中,POF交换机并没有协议的概念,它仅在POF控制器的指导下通过{offset, length}来定位数据、匹配并执行对应的操作,从而完成数据处理。此举使得交换机可以在不关心协议的情况下完成数据的处理,使得在支持新协议时无需对交换机进行升级或购买新设备,仅需通过控制器下发对应流表项即可,大大加快了网络创新的进程。

原理

读者可能会有疑问:OpenFlow所实现的SDN目前不是发展挺好的吗,POF相比OpenFlow有什么优点呢?

在OpenFlow1.0版本推出时,普遍被认为只有12个匹配域无法适应多网络场景的需求。但随着OpenFlow版本的推进,发展到OpenFlow1.3版本时已经有了40个匹配域,已经可以支持大部分的协议字段匹配。然而始终还会有更多的协议需要支持,所以这个增长趋势不会停止。不断增多的匹配域 ...

read more

OpenFlow的伴侣协议:OF-CONFIG

2016-03-03 by muzi

本文将简要介绍OpenFlow协议的伴侣协议即补充协议OF-CONFIG,主要内容包括OF-CONFIG的简介、原理以及发展趋势。希望能让读者对OF-CONFIG有一个初步的认识。

简介

在OpenFlow协议的规范中,控制器需要和已配置的交换机进行通信。而交换机在正常工作之前需要对其特性以及资源进行配置才能正常工作。而这些配置超出了OpenFlow协议规范的范围,理应由其他的配置协议来完成。OF-Config(OpenFlow Management and Configuration Protocol)协议就是一种OpenFlow交换机配置协议。OF-CONFIG由ONF于2012年1月提出,目前已经演化到1.2版本。OF-CONFIG协议与OpenFlow协议的关系如图1所示。

作为一种交换机配置协议,OF-CONFIG的主要功能包括配置交换机连接的多个控制器信息、端口和队列等资源的配置以及端口等资源的状态修改等内容。此外,作为一个配置协议,OF-CONFIG也要求链接必须是安全可靠的。为满足实际网络运维要求,OF-CONFIG支持通过配置点对多个交换机进行配置,也支持多个配置点对同一个交换机进行配置。

为了满足OpenFlow版本更新的需求以及协议的可拓展要求,OF-CONFIG采用XML来描述其数据结构。此外,在OF-CONFIG的初始规范中也规定了采用NETCONF协议作为其传输协议。由于OF-Config协议没有和数据交换和路由等模块直接相关,所以相比于对实时性要求高的OpenFlow等南向协议而言,OF-CONFIG协议对实时性要求并不高。

of-config and openflow
图1. OF-CONFIG 与OpenFlow以及OpenFlow Switch之间的关系图

原理

OF-Config协议主要分为Server和Client两部分,其中Server运行在OpenFlow交换机端,而Client运行在OpenFlow配置点上。本质上,OpenFlow配置点就是一个普通的通信节点,其可以是独立的服务器,也可以是部署了控制器的服务器。通过OpenFlow ...

read more

SDN组网相关解决方案

2016-02-14 by muzi

SDN作为一种新的网络架构,正被应用到越来越多的网络场景中。而网络的关键在于通信,如何使得SDN网络正常运行,并且能够和传统网络相互通信是SDN组网需要解决的基本问题。本文将介绍SDN组网相关解决方案中的数据平面到控制平面的组网解决方案、多SDN域组网解决方案和SDN网络与传统网络组网通信的解决方案。

SDN数据平面到控制平面组网

目前为止,在数据层面到控制到控制平面之间的组网方案主要有两大类:带外组网和带内(in-band)组网。

  • 带外(out-band)组网:

    数据平面到控制平面的控制数据通过专门的控制网络,而不经过数据平面转发,从而将数据平面的数据和控制平面数据隔离运行在两张独立的网络中。在带外组网方案中,每个交换机都有连接到控制平面的专属线路,而无需通过其他数据平面交换机转发。带外组网可以减少组网的难度和运维的难度。缺点是交换机多时,链路数量较多。

图1. out-band组网方案

  • 带内(in-band)组网

    带内组网指的是控制数据和数据平面数据可以共享一个物理链路。即数据平面的有些交换机直连控制器,而其他的交换机的需要经过数据平面的链路才能到达控制器。非直交换机的控制数据需要通过数据平面的链路进行转发,并通过直连交换机转发到控制器。此种组网方式可以减少许多交换机到控制器的链路数量,但是配置带内组网比较麻烦,可靠性较低,维护成本也相对要高。

    图2. in-band组网方案

多SDN域组网方案

当网络规模过大时,需要部署多域的组网方案。其中每个SDN域都由各自的控制平面控制。多域组网方案有水平架构和垂直架构两种。水平架构形式的多域组网方案中,域控制平面之间的关系是对等的。而在垂直架构中,则划分为域控制器层和超级控制器层 ...

read more