OpenStack Neutron配置虚拟机访问外网
配置完成后的网络拓扑如下:
当前环境:
X86服务器1台
Ubuntu 16.04
DevStack搭建OpenStack
网络拓扑:
外部网络:192.168.98.0/24
内部网络:10.0.0.0/24
网络连接: Flat Bridge
1. 通过Horizon按顺序删除已有的Router、Public和Private网络。
注:DevStack默认安装的Public网络为172.24.4.1/24,经常都不能与生产或者实验环境的网络匹配,故先删除掉当前已用网络。
2. 编辑/etc/network/interfaces,填写如下内容。
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface
auto p4p1 iface p4p1 inet static address 0.0.0.0 netmask 0.0.0.0 auto br-ext iface br-ext inet static address 192.168.98.122 netmask 255.255.255.0 gateway 192.168.98.1 dns-nameservers 218.6.200.139
注:p4p1为X86服务的物理网卡名称,br-ext为待使用的bridge。
3. 删除DevStack默认创建的虚拟bridge。
注:OpenStack Neutron默认使用Openvswitch进行网络虚拟化。
使用下述命令查看DevStack默认创建的虚拟bridge。
$ ovs-vsctl show
使用下述命令删除DevStack默认创建的虚拟bridge。
$ ovs-vsctl del-br br-ex
$ ovs-vsctl del-br br-int
$ ovs-vsctl del-br br-tun
4. 修改Neutron原有的Physical Network(从Public修改ext)。
编辑/etc/neutron/plugins/ml2/ml2_conf.ini,修改下述蓝色部分。
[ml2_type_flat]
flat_networks = ext,
[ml2_type_vlan]
network_vlan_ranges = ext
[ovs]
datapath_type = system
bridge_mappings = ext:br-ext
tunnel_bridge = br-tun
5. 添加新的虚拟bridge。
使用下述命令创建的新的虚拟bridge。
$ ovs-vsctl add-br br-ext
$ ovs-vsctl add-port br-ext p4p1
注:p4p1为X86服务的物理网卡名称,br-ext为待使用的bridge。
6. 重启Network和Neutron主服务。
$ service networking restart
$ service devstack@q-svc restart
$ service devstack@q-agt restart
7. 通过Horizon重新创建PublicSite。
8. 通过Horizon重新创建PrivateSite。
9. 通过Horizon重新创建Router。
10. 创建虚拟机并分配Floating IP。
11. 设置Security Group保证可以Ping和SSH到Floating IP。