OpenStack openvswitch 实践

先说下我这架构就是2个节点控制节点+计算节点,网络这采用ovs方法没有路由,就是二层打通并且可以多vlan。

网络架构图:

eth0网卡走trunk,走多vlan。从dashboard上创建不同的vlan网络,创建vm即可跑通。

先看一下ovs-vsctl show

红色框就是ovs打的tag标,奇怪的问题就在这里为什么跟上面的vlan号(3100,3200,3300)对应不上,实际上这个网络是通的并且每个vm确实在正确的vlan中。

有ovs+kvm的使用经验的人肯定很奇怪ovs tag确实不对但网络怎么就好使了呢?这是因为flow表中的规则完成了vlan的转换映射

先查看一下port的序号

[root@compute ~]# ovs-ofctl show br-int

序号1对应int-br-ex,流表中规则会以这个为准,然后看看流标规则

[root@compute ~]# ovs-ofctl dump-flows br-int

先看一条

cookie=0xb13977f0a22c9abd, duration=62346.434s, table=0, n_packets=55, n_bytes=3634, idle_age=1078, priority=3,in_port=1,dl_vlan=3100 actions=mod_vlan_vid:2,NORMAL

dl_vlan:原始vlan号

actions=mod_vlan_vid(转换vlan号):

这个规则就是说把原始vlan3300 转成成vlan2。vlan2就是前面看到的ovs自己生成的vlan号。问题还没有完,转成vlan2 还不行,必须转成vlan3100才可以正常通讯。

openstack这里默认会创建2个桥br-int和 br-ex,br-ex就是出口的桥

[root@compute ~]# ovs-ofctl show br-ex

 [root@compute ~]# ovs-ofctl dump-flows br-ex

 这个就是将原始vlan2 转成vlan3100出去。这样就OK了

下面官方的图非常好:

原文地址:https://www.cnblogs.com/menkeyi/p/6598752.html