@ fnii.cn

登录邮箱

刘向阳 OpenFunction: Data Plane Abstraction for Software Defined Middleboxes

发表日期:2015年12月11日      共浏览 694 次      编辑:


SDN两个主要的优点,一个是中心可以控制,第二个是数据里面的抽象,有了这个数据的抽象,就可以统一的方法控制底层的网络设备,国内的设备无论是来自于三星,还是华为。现有的标准化的工作,主要还是集中于转发的部分,之前有标准,后来推出了P4,它会造成垂直软硬件的依赖。

我们认为网络不仅仅是交换机和路由器一样。看一下现在的现状,主要集中在转发的部分,我们看一下Middleboxes,他们都是一些黑盒子,没有抽象,有这种厂商的锁定。所有人都会想到,如果是一个软件定义的Middleboxes,是不是NFV呢?不完全是。第一是用通用的X86的平台。NFV从目前推行的方向来看,只能说是一个基于软件开发的方式。

右边的图可以比较清晰的看到,左侧是传统的Middleboxes,它提出了X86,这个软件每一种不同的部分,实际上是非常不利的,它的控制局面和它的数据平面都是不开放的。我们很早就注意到这个问题,国际学术界也发现了这个问题,包括它的控制局面,三层之间有很大的差距。国际学术界也开始注意到这个问题。我们这个组的主要工作是Data plane。之前是一个黑盒子,现在彻底摒弃了黑盒子,专注于X86。我们觉得这个企业是有问题的。实际上我们应该可以造成开放的系统,也可以包括NPO。我们同时还发现了一个更有趣的问题,即使是在现有的架构上,你虽然说所有的软件都是基于X86的,它也是有异构性的。虽然阻碍了它的差异性,也就阻碍了硬件的创新。

我们提出来一个叫做软件经济的中间系统,能够和三层架构匹配上,去定义底层应该做什么,而不要去编程,去告诉它你应该怎么做。这是我们希望做到的。比如我们典型的应用场景,在我们的小区里可以先放一个X86的服务器,如果有这么一个新的服务器,当一年以后入主的人越来越多了,我们可以更新为网络处理器,不改变代码的情况下,我们可以对这个系统进行直接的升级。

我们发现它有三个问题,OPENFLOWP4,第一个问题,它转发是不够的,它做了一个转发。当你考虑到不断有新的加密算法提出来,每存在一个新的算法,OPENFLOW马上要被替代了,它不可持续,有新的算法定义,使得你的硬件和软件造成了一种依赖性,这是SDN需要避免的一个缺陷。

第二个问题,OPENFLOWP4是针对包头的。QOS把多个流集中在一个流,这种也是很难直接支持的。

OPENFLOWP4不能直接采用。这个完全是我们希望能够复制SDN在转发上面的程度,首先是我们希望定义行为,而不是告诉你做什么,怎么去做。第二,要避免犯下的错误,要向P4学习,任何新的功能或者Middleboxes都能被用户自己所定义,这是需要满足的两个主要的特点。

我们做了初步的探索,做了一个OPENFUNCTION,我们会采用一个硬件层的抽象层,把所有的硬件的资源,包括计算和存储抽象出来,这就是这个图的下方OPENFUECTION

实现我们这种PLATFORM,我们把所有最常用的功能抽离出来,给出来一个图的描述,然后在这里我们最关键的一步,图的描述翻译成设备相关,就可以在相关的设备上进行部署了,这是最后一步才是实现最关键的一步。可以保证你在任何的时候运行。左侧从第一行到11行就是在定义ACTION。对于右边的图,我们定义了一个加密的处理图。通过一个语言代码的翻译就可以定义下来,这就实现了与平台无关的对Middleboxes的支持。

第二个挑战,我们如何支持可以自定义的actions呢?我们需要代码有一个统一的方式去存取PACKET,可以定义这种为代码,这是我们给大家看的一个事例。经过我的处理器翻译以后,就变成的右边的小图。我们可以只显示代码,在不同的平台上同时运行,在部署的时候做一次,翻译成二机制代码就可以直接运行了。

都是同样的代码,在不同的平台上面是完全不一样的。首先第一,同样的代码可以在同样的平台上运行,也可以通过优化性能来进行市场竞争。

我的报告就到这里。谢谢大家。