1.设置网卡
每个控制节点都要执行
主要是创建br-publish和br-application两个桥
删除之前的外网网桥br-ex:
ovs-vsctl del-br br-ex
ovs-vsctl del-br br-enp135s0f1
创建新的桥,并设置vlan为trunk,这里假设br-publish vlan 为401,402,403
网卡为enp135s0f0,br-application vlan 为1511,1512,1513 网卡为enp135s0f1
则创建发布网桥的命令为:
ovs-vsctl add-br br-enp135s0f0 -- add-port
br-enp135s0f0 enp135s0f0 -- add-port br-enp135s0f0 br-enp135s0f0--br-publish --
set interface br-enp135s0f0--br-publish type=patch options:peer=br-publish--br-enp135s0f0 -- set port br-enp135s0f0--br-publish trunks=401,402,403
ovs-vsctl add-br br-publish -- add-port br-publish
br-publish--br-enp135s0f0 -- set interface br-publish--br-enp135s0f0 type=patch
options:peer=br-enp135s0f0--br-publish
创建完了之后,如果trunk设置不对,可以用以下命令修改
ovs-vsctl set port br-enp135s0f0--br-publish 401,402
创建br-application网桥,方法与上面类似,注意替换网卡和网桥名字
application类似
ovs-vsctl add-br br-enp135s0f1 -- add-port
br-enp135s0f1 enp135s0f1 -- add-port br-enp135s0f1 br-enp135s0f1--br-application
-- set interface br-enp135s0f1--br-application type=patch
options:peer=br-application--br-enp135s0f1 -- set port br-enp135s0f1--br-application trunks=1511,1512,1513
ovs-vsctl add-br br-application -- add-port
br-publish br-application--br-enp135s0f1 -- set interface
br-application--br-enp135s0f1 type=patch
options:peer=br-enp135s0f1--br-application
2. 修改库
mysql
use neutron
MariaDB [neutron]> DELETE from ml2_gre_endpoints;
MariaDB [neutron]> DELETE from ml2_vxlan_endpoints;
3. 修改配置
修改l3_agent.conf
[DEFAULT]
gateway_external_network_id=
external_network_bridge=
修改plugin.ini
[root@node-80 ~](controller)# vi /etc/neutron/plugin.ini
[ml2]
type_drivers = local,flat,vlan,gre,vxlan
tenant_network_types = vxlan
mechanism_drivers =openvswitch
[ml2_type_flat]
flat_networks =*
[ml2_type_vlan]
network_vlan_ranges
=publish:401:403,application:1511:1513
[ml2_type_gre]
tunnel_id_ranges =
[ml2_type_vxlan]
vni_ranges =10:10000
vxlan_group =224.0.0.1
[securitygroup]
enable_security_group = True
firewall_driver=neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
[agent]
l2_population=False
polling_interval=2
arp_responder=False
tunnel_type = vxlan
[ovs]
enable_tunneling=True
integration_bridge=br-int
bridge_mappings=publish:br-publish,application:br-application
local_ip = 这里要填租户网ip
tunnel_type = vxlan
各控制节点同步配置
重启neutron-server 和 neutron-openvswitch-agent
修改 /etc/neutron/dhcp_agent.ini
设置 dnsmasq_config_file =
/etc/neutron/dnsmasq-neutron.conf
创建 /etc/neutron/dnsmasq-neutron.conf,设置
dhcp-option-force=26,1450
各控制节点同步配置
重启 p_neutron-dhcp-agent
4. 创建外网进行测试
neutron net-create publish-401
--provider:network_type vlan --provider:physical_network publish
--provider:segmentation_id 401 --router:external True
neutron subnet-create --gateway {gateway_ip}
--allocation-pool {start= , end=} --disable-dhcp {NETWORK} {CIDR}
neutron net-create application-1512
--provider:network_type vlan --provider:physical_network application
--provider:segmentation_id 1512 --router:external True