毕军:丰富SDNFV的数据平面

尊敬的各位专家,各位业界同行,欢迎大家来到本次大会的科研创新论坛。大家手里可能都有会议的日程,这个论坛的讲者都是来自我国各高校,还有中科院在这个领域的专家。我简单介绍一下:

清华在SDNFV数据平面的一些工作,接着请著名的张宏教授,对未来网络的构架做一个综述性的报告,当然也包括他们的科研创新。接下来是华南理工大学,于俊清教授;北京邮电大学黄韬教授,再下一位是北京的张行功副教授讨论信息中心网络,最后是中科院计算所的张广兴。我们对各位老师表示欢迎。

我先抛砖引玉,这是我们清华最近在做的一些工作,就是如何能够丰富SDN/NFV的数据平面。下面介绍三篇文章,一是对SDN网络抽象模型进行扩展,主要是针对它的状态表述能力比较差。之后进一步研究设计SDPA,就是书面平面抽象。

首先给大家一个范式,这里面有一个非常重要的功能缺失了,就是对于状态的处理,所以我们提出一个match到action,就是对OpenFlow做的一个扩展。这是我做的一个报告,当时这个报告扩展也有两页的发表,你们也可以看到我当年的文章。这是我们接着把这个技术真正的进行详细的设计,ICNP也是我们一个网络会议,去年也得到了最佳提供奖。之后在想这个工作除了在SDN努力看看能不能和NFV结合,通过结合实现软硬的编排。

第一个是SDN的抽象模型,当时说的我们主要做的是信息的评比。我们目前OpenFlow对于状态的处理是欠缺的。我们的状态定义为一个流的历史信息,这个信息需要被存储起来,作为流后续报文处理的输入。应该说状态是我们在网络功能方面常遇到的,比如说防火墙,比如说我们做一些监控,做一些检测,包括地址转换。这是一个典型的TCP的状态迁移,这样的流收到什么报文,转到什么状态,正常的TCP流应该这么走,如果是日常的攻击,我们对这样的流就可以判断为异常,它的状态不对。

问题本质就是OpenFlow的数据平面,当然性能非常高,这是它的优点,也能够提供抽象的功能,但是它的智能度还是比较低。对于状态的处理主要是把报文放在控制平面。放到控制器作用什么问题?主要有两个方面,一个是做控制性平台的事,这个任务需要了解网络状态信息,然后去做决策。如果把数据平面一些比较繁琐的事,每个流的状态都交给它,它的压力会非常大,而且当你要做的事比较多,每个状态协议都要报告给控制器,它的路径瓶颈也比较大。另外是当你对流的状态处理很多都是要实时,所以这个延时可能造成问题。

围绕这个我们就提出了一个抽象模型,其实从底下的公式可以看到,控制器对数据平面的他(音)可以变成它的语言,输入报文做动作也好,可能也会修改表象,报文的各个域的集合的一个处理。我们做的是下面这一行,就是增加Q的状态,也就是在SFA的语言里面,他做的语言不光是报的域,还有各个状态,也会可能把状态修改。实际上这个图示就是这个公式的一个解释。OpenFlow的问题是在于它这个状态虽然网络状态是变化的,但是并没有反馈到数据平面,是反馈到控制语言在做的,我们是可以在数据平面上处理。

当然我们进一步发展的状态的抽象可以是递归的,我们今天在说把一些数据平面状态给它处理,其实控制平面的状态,如果要分层的话,比如将来分不同的层次,有的属于很细,有的给用户编程就更抽象,这个可以继续发展。

下面是我们的具体设计。具体设计在大家都很熟悉的OpenFlow的流表和流水线里面,我们增加一个构建叫FT,大家可以看到我们不是只能做一个APP的状态来处理,可以做很多。然后每个里面有三个表:状态表、状态转移表和动作表。所以浏览了以后我们匹配,得到现在的状态,然后根据Event决定下一个状态,这个状态的信息给动作表,原始流的信息也给动作表,动作表根据这两个信息来决定Action。

这是我们三个表结合一个实际的案例做的一个带状态的防火墙,比如说这个状态表它的监控,这些流的一个状态,这是一个标准的图,然后这是根据状态防火墙表根据当前的信息看能做什么动作,再进行过滤进行转发。

刚才提到为了实现刚才那样一个理念,我们设计了专门为状态处理的相关的语序,包括控制的指令,来跟状态处理的结合,计算逻辑等等。

刚才是我们设计,软件和硬件都实现了,我们介绍一下硬件实现的特点。这是刚才提到了我们在一个设备里面,我们能为多个APP,多个应用都给它做了状态的处理,所以我们在一个硬件里面就有一个硬件的业务链,把它做一个状态处理。可以做到任意的串并和处理,这是SDPA处理功能。我们的控制器还有一个接口,可以让你APP可以实时的在业务链里动态的生成更新,或者删除一个什么功能。然后在实践方面,我们通过流水性技术提高性能。

开发上基于清华老师他们做的一个卡,我们在这个OpenFlow的过程逻辑加上我们一些硬件逻辑。刚才说能做并串的优化,这是并行的例子,我们就是Packet跟逻辑处理,然后达到你要的逻辑。对于串性处理大家可以分两个阶段,一个是状态表查询跟状态更新,一个是根据结果做动作。一个流在查完表以后,下一个就是查前面的表,所以提高运行度,提高性能。

因此我们的结果就是除了构架上我们实践上也有一些优化,所以性能上还是比较理想,这是我们跟传统OpenFlow相比之下,还是有很多优势的。然后有人担心说你这会不会把设备弄得比较复杂,所以我们也跟传统OpenFlow做了对比,让他看到我们新的设备和传统OpenFlow它的性能基本是一致的,因为我们都是硬件做的。甚至我们在SDPA框架下做的带状态处理,包括无状态对比,所以我们还是增加了若干个微秒,吞吐量是一致的,延时只降低了一点点。这是可扩展性的,在增长的时候也都做了测试,它的延迟,它的活跃基本能够不能稳定,不会因为规模的增大而显著下降。

我们就想下一步工作是什么?这个题目也比较有意思,就是链子锁到双截棍,我们在想实际上一个称手的工具就要向双截棍一样有硬有软。这是在于做的,我们把它进行了修改,有两部分修改。比如说我们现在通过电信在做的BRAS的工作,有的功能可以拿软件做,有的可以拿硬件做,这里面有很多处理。这是我们实验室在做的一个实验,将来你可以根据不同用户APP的功能,像绿色的是比较简单的,当然也是可能做不了的有一些状态更复杂的功能,我们可以拿硬件交换机来做。蓝色的相当于非常复杂的功能,我们就可以用VM这样的结构来做。这是我们的一个性能评估,这种软硬结合的业务链,软的、硬的和简单硬件,对比它的延时和Throughput。

结束语我想引用周杰伦的歌词,什么兵器最牛?是双截棍,柔中带钢,我们应该有这个思想。我们兼具了少林和武当这个优点。我的介绍结束。时间原因我们就不提问了,有什么可以下面进行交流。


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/17078.html
分享到:
相关文章
条评论

登录后才可以评论

SDNLAB君 发表于16-06-13
0