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的網絡加到對應路由器就可以,這時候你就會發現虛擬機已經可以通外網了在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章