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