OpenStack中SDN泛谈2 (OpenContrail&Midonet)

这次介绍的两个SDN项目,虽然都是开源的,但背后都有一个商业版在售。

OpenContrail

OpenContrail背后的厂商是Juniper,在ODL创立初期,Juniper也曾经是ODL的会员,后来据说是不满Cisco把持ODL项目,退出了ODL。

OpenContrail前身是由来自谷歌,Cisco,Juniper的员工在2012年创立的创业公司Contrail Systems,同一年底Juniper就收购了这家公司,并在第二年将其产品作为自己的SDN产品。

OpenContrail本身是一个开源的SDN,同时Juniper也提供了一个商业版,两者提供的代码和功能是一样的,区别是商业版提供了更好的支持。OpenContrail的定位是支持Cloud Networking和NFV场景,是一个可扩展的SDN平台。

OpenContrail与Neutron的集成之前是作为OpenStackNeutron的一个plugin存在于Neutron代码中,在Neutron ML2重构之后,这部分代码被从Neutron中移除。现在是由Juniper在管理这部分代码。

OpenContrail有两大构成部分,Controller和vRouter。Controller是一个逻辑集中,但是物理上分散的SDN控制器。vRouter是一个转发平面的实现,它运行在计算节点上,为虚拟网络提供路由和转发功能。vRouter与OpenvSwitch很像,但是提供网络层和其他服务,也因此叫做vRouter(而不是vSwitch)。Controller对vRouter提供逻辑集中的管控。

OpenContrail Controller

这是一个逻辑集中的控制器。由三部分构成:

Configuration nodes:提供REST api,将北向(northbound)数据模型转换成南向(southbound)数据模型,并存储在Cassandra数据库。Cassandra是一个高速的NoSQL数据库。

Control nodes:实现了逻辑上集中的控制平面。Control nodes将southbound数据模型发送到各个vRouter或者物理网络设备,并从这些节点收集数据。

Analytics nodes:将vRouter和物理网络设备的数据转换成northbound应用可以直接使用的数据。

这三类nodes都可以以active active的模式存在,这样既实现了HA,也方便水平扩展。

vRouter/Compute nodes

运行在计算节点(Compute nodes)上的转发平面。OpenContrail没有用OpenvSwitch,自己实现了一套转发平面。vRouter又可以分成两个部分。

vRouter agent:运行在Linux中的进程。它的作用是:向上连接Control nodes和Analytic nodes,接收和上报数据;向下连接实际的转发层面(vRouter Forwarding Plane),下发和查询数据;为网络流量的首包下发转发策略,也就是在转发平面下发流表;代理DHCP, ARP, DNS, and MDNS等协议。出于HA的考虑,每个vRouter agent都至少连接两个Control nodes。

vRouter Forwarding Plane:这是一个Linux系统中的内核模块。它的作用是:overlay 网络的封包解包;将虚机和虚拟网卡绑定起来;完成数据转发,可以是三层IP转发也可以是二层MAC转发;匹配现有流表,并应用相应的action;如果本地没有匹配的流表,将数据包上送到vRouter agent,由vRouter计算流表并下发;对特定的协议(DHCP, ARP, DNS, and MDNS)数据包,上送到vRouter agent做代理。

Routing Instance

这是个分布式转发平面的概念,Routing Instance在vRouter Forwarding Plane中,Routing Instance与tenant对应,只有当前计算节点有租户的虚机时,才会在当前的vRouter Forwarding Plane中创建Routing Instance。

按照这种设计,就算集群规模变大,每个计算节点只需要关心有限的租户信息,这种设计有利于OpenContrail在大规模环境下部署。

Gateway nodes

用来连接物理网络和虚拟网络的节点。

Service nodes

用来提供网络服务的物理网络单元,网络服务包括DPI(Deep Packet Inspection),IDP(Intrusion Detection),IPS(Intrusion Prevention),load balancer 等。Service nodes用在service chain,而service chain可以包含基于虚机的网络服务,也可以包含基于service nodes的网络服务。

一个包含了所有OpenContrail节点的架构如下图所示:

OpenContrail的架构在设计的时候参考了MPLS VPN的架构,组件和节点之间通讯的协议与MPLS VPN也很像。这有两点好处:

MPLS VPN是一个成熟的技术,并且已经应用在大规模环境下,采用类似的架构可以使得OpenContrail从架构上胜任大规模环境

另一方面MPLS VPN广泛部署在现有设备上,采用类似MPLS VPN的架构可以使得OpenContrail能较为容易的接入现有的设备。

总结

OpenContrail号称能支持大规模部署,经过这几年的开发已经较为成熟,从架构设计上看也比较完善,支持的场景也比较多。并且,OpenContrail最近得到了OpenStack老牌创业公司Mirantis的背书,同时Mirantis也开始转售Juniper的商业版Contrail system。去年的时候Mirantis收购了TCP cloud,TCP cloud是一家基于OpenContrail和OpenStack提供服务的小公司。通过这次收购整合,Mirantis也一定程度掌握了OpenContrail,近期Mirantis宣布OpenContrail将作为Mirantis OpenStack的默认构成部分,用户可以选择是否使用它,同时Mirantis也会提供对OpenContrail的支持。

但是另一方面,虽然OpenContrail是一个开源SDN,但是背后还有一个商业版的Contrail system。现在网上的安装部署文档也不多。个人认为开源版的目的是为了推广商业版,开源版本的落地还是有一定的难度(如果没有难度商业版也就没有存在的意义了)。

Midonet

Midonet是日本创业公司Midokura的网络虚拟化平台。Midokura早在2010年就开始做网络虚拟化,2014年底的OpenStack峰会上,Midokura将自己的产品Midonet开源出来,并通过networking-midonet项目集成到OpenStack中。Midonet有自己的北向(northbound)接口,提供RESTful API,可以独立于OpenStack存在。与OpenContrail类似的是,Midonet也有一个在售的商业版。除了更好的支持之外,商业版的Midonet支持VMware平台,带有一个集成的UI页面和更多的管理工具。它们的对比如下图所示:

来看看Midonet的架构吧。

从图中可以看出,Midonet的架构主要由三部分构成:

Network State Database

与前面介绍的ODL和OpenContrail不同的是,Midonet不再有逻辑集中的SDN controller,Midonet的逻辑中心是NSDB。NSDB北向提供REST api,供OpenStack和其他的Cloud orchestrator对接。南向通过RPC与运行在各个节点的Midonet Agent对接。NSDB的核心是基于Zookeeper + Cassandra。也就是说数据存储在一个高速的NoSQL数据库中。

Midonet Gateway

集群中连接外网的节点,通过BGP传播和学习路由信息,Midonet的BGP没有采用OpenStack的方案,而是自己基于quagga实现的。

Provider router

Midonet cluster中通常有一个provider router,这个是OpenStack Neutron没有的概念。这里的provider router是一个虚拟的概念,所有的tenant router都连接到这个provider router上。在Neutron里,tenant router之间的网络通讯,是走到external network,然后由provider(物理)network完成的转发。而在Midonet中,tenant router之间的网络通讯是通过provider router 完成的转发,而不需要走到provider network。

这么做的好处是:tenant router之间的网络通讯变得可控了;provider router 管理所有的南北向流量;集中的provider router做为BGP edge router,方便BGP路由的应用和管理。

Provider router 的uplink连接的就是Midonet Gateway节点。通常连接三个。

Midonet Agent

运行在计算节点上,管控着计算节点上的Cloud networking。Midonet Agent基于OpenvSwitch实现,但是只保留了OpenvSwitch的内核态部分,也就是说只保留了OVS datapath。而对应的ovs-vswitchd和ovsdb-server部分,都是由Midonet实现的。

Midonet Agent更像是对应ovs-vswitchd,OVS datapath不能处理的数据包上送到Midonet Agnet,Midonet Agent如果处理不了再通过RPC调用NSDB进行Overlay Topology Simulation。

Overlay Topology Simulation会根据Midonet掌握的集群网络信息进行运算,得出相应的配置和转发规则,再下发到OVS datapath。

Midonet自己有个图很有意思,描绘了Midonet的整体架构,包括虚拟和现实的对应。

总结

Midonet是一个商用化的SDN为了OpenStack做的开源,并且Midokura的工程师在OpenStack社区也很活跃。所以Midonet与OpenStack的集成没有大问题。其次,不像ODL和ONOS希望做大而全的SDN,Midonet专注于数据中心的Cloud networking,项目较为可控,适合大规模部署。

但是,Midonet本身还是掌握在Midokura公司,开源代码和商业版代码也不是一套,文档较为落后。而且Mirantis在选择第三方SDN的时候选择了OpenContrail而不是Midonet,对Midonet也有一定的冲击。

大体上来说,背后有商业版的开源,都不是真正意义的开源,开源只是为了更好的售卖商业版,毕竟背后的公司要挣钱。本文介绍的两个SDN都属于这个情况。

本文转载自:https://zhuanlan.zhihu.com/p/25994267

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,458评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,454评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,171评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,062评论 0 207
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,440评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,661评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,906评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,609评论 0 200
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,379评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,600评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,085评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,409评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,072评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,088评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,860评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,704评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,608评论 2 270

推荐阅读更多精彩内容