您的位置:首页 > 其它

OVN & midonet

2015-11-27 10:50 232 查看
OVS团队在这周启动了OVS下的一个崭新的子项目,用来给OVS这款在OpenStack项目广泛使用的虚拟交换机引入一个轻量级的控制平面,致力于提高基于OVS的OpenStack网络方案的扩展性和易用性,同时也为分布式路由等走捷径似的转发提供了可能性。

对于这个新项目的出现,除了对可生产部署的时间我稍表示担忧外(毕竟现在还只是在架构层面,代码还未启动编写,当然这是参与这个项目的好机会),我对其定位非常看好,现有的OpenStack方案尽管经过多次重构,我个人仍对这种采用各种开源实现搭建起来的方案感到不是非常认同,并且neutron ML2这样的plugin要管理众多计算/网络节点上的agent,存在大量的rpc调用,并不是一个很理想的分布式应用,因此我对于之前所谈到的midonet这样的一体化OpenStack方案则认同的多,通过分布式数据库技术,计算/网络节点上的agent只需要从集中的数据库订阅虚拟网络信息,减少了与neutron这种多功能为一体的组件的耦合,可以独立的进行计算并指导虚拟网络中的转发,在扩展性和容错性上都会得到有价值的改进。

从OVN所给出的架构来看,与midonet有些英雄所见略同的感觉,因此我觉得midonet有了一个比较厉害的竞争对手,并且midonet基于java/scala/akka框架编写,一定程度上拉高的社区参与度的门槛,反倒OVN的C语言倾向很明显,向我这样的C语言码农会觉得适从的多些,并且借助于OVS本身的名气,邮件列表里得到了不少回应,连SDxCentral上都有了相应的报道,加上VMWARE NSX强悍的技术背景支持,相信OVN的前景还是光明的啊。

一场由VMWARE开启的好戏开始了,plumgrid/midonet会有什么感觉呢?估计要尽快的建立客户基础,都说不lock-in,其实还得lock-in,不然怎么有钱赚呢;至于OpenContrail,BGP/XMPP这样复杂的东西,谁愿意玩或者玩得转呢,更加认人觉得有点洗钱的感觉了。。。

Anyway,希望国内的公司能够多多参与到开源社区中来,这是一个很好的占坑机会啊。


作者:张华 发表于:2015-08-05

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明


(http://blog.csdn.net/quqi99)

MidoNet是类似于OpenContrail, Neutron DVR, DragonFlow, OVN的SDN产品,其主要特性如下:

1, L2交换、L3路由、L4负载均衡

2, 有状态和无状态NAT

3,逻辑和分布式防火墙

4, BGP与ECMP支持

5, GRE、VxLAN

6, VTEP(VXLAN Tunneling End Point) support with OVSDB protocol

7, partial docker integration

8, Re-written with Java/scala



如上,非常熟悉的架构,在计算节点上要运行Midolman也就是Mido Agent来同时具备L2-L4层干活功能。采用分布式数据库NSDB来作集中的控制平面存储port, node, mac等映射关系。另外,它还支持BGP,如下图,它并不支持在同一个数据中心的多个跨三层的openstack之间运行iBGP(走GRE/VxLAN隧道),只支持在跨广域网的多个数据中心之间运行eBGP。



在二层的交换上,和目前的Neutron DVR的原理差不多,如下图:



但增加了VxLAN VTEP二层网关功能(网关用于去vxlan头让Vxlan网络与非Vxlan网络交互, 或者不同的vxlan id的vlan网络交互),从流表中比较VM1和VM2的段标记VNI(不需要用IP比较)就可以判断是否位于同一个tenant的网络了,如果不在一个VNI中就出软件或者硬件的VxLAN网关交给上联交换机。如下图所示:



如果需要VXLAN网络和非VXLAN网络连接,必须使用VXLAN网关才能把VXLAN网络和外部网络进行桥接和完成VXLAN ID和VLAN ID之间的映射和路由,和VLAN一样,VXLAN网络之间的通信也需要三层设备的支持,即VXLAN路由的支持。同样VXLAN网关可由硬件和软件来实现。从封装的结构上来看,VXLAN提供了将二层网络overlay在三层网络上的能力,VXLAN Header中的VNI有24个bit,数量远远大于4096,并且UDP的封装可以穿越三层网络,比VLAN有更好的扩展性。

改善东西向流量的硬件二层VxLAN网关的部署图如下所示:



防火墙服务链的实现如下,在每一个port上有一些pipline用于去生成一些流表。



支持DNAT端口映射,如下图:



最后,当然支持L3功能,如下图:



Neutron DVR在每个计算节点上都具有L3功能,这一点MidoNet的Provider Router与之不一样,MidoNet更像是没有DVR时的Neutron的部署,有一个集中单一的路由器叫Provider Router用于tenant之间的以及tenant与Internet之间的L3连通性。在一个典型的Midonet的部署中,Provider Router可以有3个ECMP静态路由去连接上行路由(如果哪一个上行路由路需要动态学习上行路由就安装BGP)。看到没,Midonet它这里的Provider
Router的概念与Nerutron的Provider Router的概念是有点小区别的,Midonet的计算节点上虽然不具备L3功能,但它具备上面提到的L2网关功能,这样同一tenant的不同子网间的东西向流量并不需要经过Provider Router(Neutron DVR解决的是相同子网的东西向流量不绕道l3-agent的情况), 只有跨tenant的东西向流量和南北流量才需要经过Provder Router
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: