OpenBox项目及相关介绍

知道OpenBox源于SIGCOMM 2016的会议,这个会议的影响力在计算机和通信领域的专家相信都知道,CCF推荐的A类会议,一年接收文章的数量也就在30篇左右,但是每一篇质量非常高(也会有大公司推销产品的),影响力也非常大,即使一些workshop的文章引用率也非常高。可以说,SIGCOMM代表了计算机通信领域的最高水平。

OpenBox这项工作事实上在2015年SIGCOMM的HotMiddleBox就出现过,今年直接被主会录用。下面本文将对这项工作的背景,技术路线以及开源工具进行一一分析介绍。

OpenBox是一个用于提供网络功能(Network Functions)和网络虚拟化实施和管理的软件定义系统框架。该框架共包含三大逻辑层次(如下图所示):

1)用户定义的OpenBox应用程序。这些应用程序通过OpenBox北向接口提供网络功能规程。

2)一个逻辑集中式的OpenBox控制器将多种多样的网络功能囊括其中,并能够通过OpenBox协议来控制数据层操作。

3)最底层的数据层全部通过软件来定义,或某些特定的硬件支持。

这项工作是由欧盟的FP7支持,主要团队由以色列的一个研究中心和Hebrew大学承担。

OpenBox项目的动机源于他们认为目前SDN解决方案过分强调了数据层的可编程性,但是在网络功能和中间件的支持方面却不足。从OpenBox的层次来看,其实仍然延续了SDN的框架模式,在这方面并没有做太大的突破。所以,我们可以这样理解,OpenBox是一种深度SDN实现框架。

OpenBox的基础在于对常用的网络应用程序的抽象。例如,防火墙的处理流程首先示处理数据包,然后根据数据包头部进行分类,在进行分类后决定是否进行丢包处理或者通知管理员(如下图)。

而相应的,另外一种常用的网络应用程序,入侵检测系统,其处理流程与防火墙工作流略有不同,在进行数据包头部分类后,进行了正则表达式分类,如下图所示:

从上面两个例子不难看出,网络应用程序的工作流可以由一些网络功能构成。这也正是OpenBox的出发点和基础。OpenBox目前共定义了40种这种抽象的网络功能基本块。

OpenBox的技术实现目前已经开源,在Github上该项目的所有工作可以通过下面的链接[3]找到。其中下面安装过程会使用到obsi和moonlight控制器这两个工具。除此之外,MoonlightFirewall和MoonlightSnort是他们论文中用来推自己工作使用到的两个例子。

下面,对OpenBox-mininet的安装和使用进行简要介绍。

我使用的操作系统是Ubuntu 14.04, mininet使用apt-get进行安装。OpenBox提供了非常良好的shell脚本,可以直接下载或者通过wget进行下载,具体的安装命令如下:

在安装过程中,我们需要做的就是在需要输入Yes的情况下输入Y并回车。安装的时间稍微有点长,主要原因是这一过程需要安装OpenBox service instance(相当于data plane device,可以当作OpenvSwitch),还有Moonlight控制器。这是OpenBox自己实现的控制器,其中实现了自定义的网络功能规程和南北向接口协议(注意,并不是OpenFlow)。

安装完成后,在安装脚本的同一目录下,会多出来两个目录:obsi和moonlight。其中,obsi是数据层面的实例,而moonlight是OpenBox的控制器。

进入Moonlight目录之后,直接运行./start_moonlight,OpenBox控制器就会被启动,如下图:

目前关于OpenBox的技术资料很少,只有在发表的论文中谈及里面使用的技术,本文的后续将会对OpenBox的技术进行更加深入的分析。

参考资料:

1、openboxproject官网

2、Anat Bremler-Barr, Yotam Harchol, David Hay. "OpenBox: A Software-Defined Framework for Developing, Deploying and Managing Network Functions". Accepted to ACM SIGCOMM, Florianapolis, Brazil. 2016.

3、https://github.com/OpenBoxProject

4、https://github.com/OpenBoxProject/openbox-mininet

原文发布于微信公众号 - SDNLAB(SDNLAB)

原文发表时间:2016-10-31

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏个人分享

大数据理论体系总结--数据仓库管理与全链路数据体系

  就这样,大数据领域蓬勃发展了好几年,有很多伙伴执迷于技术,成为了分布式计算与存储的领域专家。也有很多伙伴执迷于数据,成为了行业的数据研发专家。当然还有很多小...

48740
来自专栏JAVA技术zhai

千万级流量的优化策略实战

性能优化涉及面很广。一般而言,性能优化指降低响应时间和提高系统吞吐量两个方面,但在流量高峰时候,性能问题往往会表现为服务可用性下降,所以性能优化也可以包括提高服...

68050
来自专栏用户2442861的专栏

教你阅读Python开源项目代码

作者:董伟明 链接:https://zhuanlan.zhihu.com/p/22275595 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,...

62810
来自专栏Kirito的技术分享

上一个电商项目的反思

加入中科软已经有了一个年头,从去年实习到今年转正,陆陆续续接触了大概四个项目。有电商类,互联网保险类,也经历过管理系统。幸运的是,这些项目都是从零开始,避免了让...

515110
来自专栏IT大咖说

VMware云管平台运维管理

摘要 跨 SDDC 和多云环境从应用到基础架构的智能 IT 运维管理。与 vRealize Log Insight 和 vRealize Business fo...

1.3K50
来自专栏编程微刊

初学者路径规划 | 人生苦短我用Python 纵观编程趋势 Python基础Python高级编程数据库web前端框架和服务器爬虫数据分析

33850
来自专栏向治洪

OtterTune来了,DBA怎么办

概述 最近几年,特别是随着云计算的发展,出现了行业向后重叠和推动的情况。数据库龙头企业Oracle最近几年重点转而向云的变革,它全力以赴在做的一件事情就是把所有...

29160
来自专栏CSDN技术头条

如何为微服务选择数据库

作者 | Jeff Carpenter, InfoWorld 翻译 | Jackyrong 你的微服务架构需要多种数据模型。你是应该选择混合持久化呢还是多模型数...

256100
来自专栏blackpiglet

R 语言实战第一,二章 R 语言版

这次的作业主要是以对一个非常简单的数据分析问题进行实践的形式呈现出来,对于《R语言实战》第一二章的内容已经体现在了对问题的解析的过程中,所以就不再将学习的过程贴...

7520
来自专栏软件成本造价评估

软件造价之:浅析快速功能点方法度量软件的规则及过程

快速功能点方法是一种软件规模度量方法。该方法适用于软件项目早期、中期、后期等各个阶段的规模估算或测量。   采用优化后的功能点方法——快速功能点方法进...

14900

扫码关注云+社区

领取腾讯云代金券