openstack/ovn环境,虚拟机连接外网设置

当使用OVN来做为neutron的后端,来实现SDN方案时,我们也会需要虚拟机连接外网,本文记录操作方法:

环境:pike版本,创建好net1,子网subnet1以及使用该网络的虚拟机vm1

动手操作-任意计算节点

OVN是一种分布式的网络,也没有网络节点,我们挑选任意一个计算节点来提供外部网络。

创建外部连接的网桥,做OVN映射

 #ovs-vsctl add-br  br-ex
 #ovs-vsctl set Open_vSwitch . external-ids:ovn-bridge-mappings=provider1:br-ex

 这里创建了一个外部网桥br-ex,并将其映射到OVN的数据库中,映射名称为provier1

将宿主机上的外部网卡添加到网桥上

#ovs-vsctl add-port br-ex  ens192
#ip link set br-ex  up
为了使原来的网络依然可用,我会把ens192这个外网网卡的网络地址放到br-ex上,这样会让以前依赖该网络的服务依然可用
#ip addr add 10.10.38.133/24 dev br-ex
#systemctl restart network

调整路由策略

由于网卡的调整,路由信息需要调整一下

#ip route
   default via 10.152.35.254 dev ens192 
   10.10.38.0/24 dev br-ex proto kernel scope link src 10.10.38.112 
   10.10.31.0/24 dev ens224 proto kernel scope link src 10.10.31.112 
   169.254.0.0/16 dev ens192 scope link metric 1002 
   169.254.0.0/16 dev ens224 scope link metric 1003 

删除ens192相关的路由,将网卡替换为br-ex
#ip route del  default via 10.152.35.254 
#ip route add  default via 10.152.35.254   dev br-ex
这里只是替换了默认路由,如果你有之前网卡的其他路由也别忘了替换

至此,计算节点就完成了。

动手操作-控制节点

修改配置文件,设置外网提供者provider

修改provider的值,这里名称我们设置为provider1。至于什么是provider以及openstack的provider模式和self-service模式的区别,可以参考我的这篇文章

#vim /etc/neutron/plugins/ml2/ml2_conf.ini
      [ml2_type_flat]
      flat_networks = provider1

重启neutron-server

#systemctl  restart  neutron-server

创建路由器

#neutron router-create router1

将虚拟机所在网络子网挂在路由器上

#neutron  router-interface-add  router1  subnet1

创建连接外部的network

#openstack   network  create ext-net  --external --provider-network-type flat --provider-physical-network provider1
 
 这里创建的网络名称为ext-net ,映射的物理网络名称是provider1

创建与外部网络一致的子网

#neutron  subnet-create ext-net   10.152.35.0/24 --gateway 10.152.35.254  --allocation-pool start=10.152.35.200,end=10.152.35.208  --dns-nameserver 114.114.114.114

这里指定了网关地址以及ip分配范围和dns,也可以不写,会自动分配,不过写上更为准确

虚拟机连接外网

#neutron  router-gateway-set router1  ext-net

将ext-net的网络加到对应路由器就可以,这时候你就会发现虚拟机已经可以通外网了openstack/ovn环境,虚拟机连接外网设置_第1张图片

你可能感兴趣的:(部署和配置,网络虚拟化,openstack)