packstack allinone方式,在安裝過程中使用選項,參考https://www.rdoproject.org/networking/neutron-with-existing-external-network/
本文是allinone安裝之後,再配置的網絡
外網(public)使用flat方式,內網(private)使用的geneve方式,外網可用(flat 或 vlan),內網可用(geneve或vxlan)
ovs-vsctl add-port br-ex eno2
ip link set br-ex up
systemctl restart network
ml2_conf.ini配置
如下,改動了的內容已標黃。
[ml2]
type_drivers=geneve,flat
tenant_network_types=geneve
mechanism_drivers=ovn
path_mtu=0
extension_drivers=port_security,qos
#註釋了firewall_driver,因爲參考
[securitygroup]
enable_security_group=True
#firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
[ml2_type_geneve]
max_header_size=38
vni_ranges=10:100
#設置flat_networks爲extnet,通過ovs-vsctl list Open_vSwitch查詢ovn-bridge-mappings值爲extnet映射到網橋br-ex
[ml2_type_flat]
flat_networks=extnet
[ovn]
ovn_nb_connection=tcp:172.0.37.22:6641
ovn_sb_connection=tcp:172.0.37.22:6642
ovn_metadata_enabled=True
網卡配置
然後br-ex網橋默認是沒有br-ex的,創建文件/etc/sysconfig/network-scripts/ifcfg-br-ex
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=172.0.37.23
NETMASK=255.255.0.0
GATEWAY=172.0.0.254
DNS1=114.114.114.114
ONBOOT=yes
修改/etc/sysconfig/network-scripts/ifcfg-eno2 內容爲下,爲防止eno2網卡原配置還要使用,在原選項前加#註釋掉。我這是有兩個網卡的eno1,和eno2,單網卡應該也可以
DEVICE=eno2
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
然後重啓網絡,會導致當前shell連接斷開,重連就是
systemctl restart network
neutron有個問題,由於我的實際hostname是localhostname.localdomain,ovs的external_ids的hostname是localhost。會找不到host,修改ovs的hostname
修改ovs服務文件(永久生效),ovs-vswitchd.service服務中查看該文件
vi /usr/share/openvswitch/scripts/ovs-ctl
把hn="$(hostname -f)" || hn="$(uname -n)"
改爲hn="$(hostname)" || hn="$(uname -n)"
hostname -f獲取的是前半段localhost。而不是localhost.localdomain,改爲hostname
然後重啓服務systemctl restart ovs-vswitchd.service
參考:dashboard創建網絡 https://blog.csdn.net/qq_28540443/article/details/109184700