一、使用基于openvswitch的flat网络连通外部网络

在测试环中,使用allinone部署的openstack,如果需要与外部物理网络通讯,则需要配置flat网路。在q版中,neutron服务默认使用openvswitch,而非使用linux bridge。

image.png



openvswitch支持五种网络类型,有gre,local,flat,vxlan和vlan类型,其中gre网络和vxlan比较类似,都是使用隧道模式。


local 网络:不会与宿主机的任何物理网卡连接,流量被限制在宿主机内,同时没有任何VLAN ID

flat 网络:不带有tag的网络,宿主机的网卡通过网桥与flat network连接,每个flat网络都占有一个物理网卡

vlan网络: 是带有tag的网络,在openvswitch的实现方式下,不同的vlan instance的虚拟网卡都会被接到br-int上

gre和vxlan网络:基于隧道技术的overlay network,建立在其他网络上的网络。

测试环境使用flat网络连接外部物理网络

首先在/etc/neutron/plugins/ml2/ml2_conf.ini中设置相关参数,指定普通用户网络类型为flat

vim /etc/neutron/plugins/ml2/ml2_conf.ini

[ml2]
tenant_network_types=flat                #将tenaant_network_types修改为flat

因为使用packstack部署openstackallinone的时候,已经指明了flat网络与物理网络的对应关系。如果使用控制计算分离的部署,则需要修改配置文件指明对应关系,如:

[ml2_type_flat]
flat_networks=default

[ovs]
bridge_mappings=default:br-ex          #指定对应外部网桥br-ex

完成后,重启neutron网络服务

systemctl restart neutron-server

然后使用ovs-vsctl命令检查一下br-ex 配置

ovs-vsctl show