From f856f3bfaf2f727654e463401d6cdfd103902a29 Mon Sep 17 00:00:00 2001 From: d34dh0r53 Date: Thu, 17 May 2018 14:19:17 -0500 Subject: [PATCH] Fix MNAIO Flat Networking In order to get flat networking working correctly we need to create a new veth pair that neutron can use on the host machines. Neutron can take the veth end of this pair for the brq bridge while the other end remains in br-flat allowing communication back to the VM. This also expands the DHCP range for the veth pairs and changes the host_bind_override to use the new veth. Change-Id: I9cd161599ba659890142143d4718420d680d7dca --- multi-node-aio/playbooks/dhcp/dhcpd.conf.j2 | 2 ++ multi-node-aio/playbooks/group_vars/dhcp_hosts.yml | 7 +++++-- multi-node-aio/playbooks/group_vars/mnaio_hosts.yml | 3 +++ .../playbooks/osa/openstack_user_config.yml | 2 +- .../playbooks/pxe/configs/debian/vm-bridges.cfg.j2 | 12 +++++++++++- 5 files changed, 22 insertions(+), 4 deletions(-) diff --git a/multi-node-aio/playbooks/dhcp/dhcpd.conf.j2 b/multi-node-aio/playbooks/dhcp/dhcpd.conf.j2 index ab2d9f94..7fbe4339 100644 --- a/multi-node-aio/playbooks/dhcp/dhcpd.conf.j2 +++ b/multi-node-aio/playbooks/dhcp/dhcpd.conf.j2 @@ -9,6 +9,8 @@ authoritative; shared-network all-networks { {% for dhcp in dhcp_list %} subnet {{ dhcp.subnet }} netmask {{ dhcp.netmask }} { + range {{ dhcp.range_start }} {{ dhcp.range_end }}; + option broadcast-address {{ dhcp.broadcast }}; option routers {{ dhcp.gateway }}; option domain-name-servers {{ dhcp.dns }}; option subnet-mask {{ dhcp.netmask }}; diff --git a/multi-node-aio/playbooks/group_vars/dhcp_hosts.yml b/multi-node-aio/playbooks/group_vars/dhcp_hosts.yml index 3f2d957c..79e3ca19 100644 --- a/multi-node-aio/playbooks/group_vars/dhcp_hosts.yml +++ b/multi-node-aio/playbooks/group_vars/dhcp_hosts.yml @@ -16,10 +16,13 @@ dhcp_max_lease_time: 43200 # Max lease time ipxe_boot_file: "boot.ipxe" # Path of initial iPXE bootloader # - List of DHCP Subnets - These are iterated though and each will be created dhcp_list: - - netmask: 255.255.255.0 # Netmask + - netmask: 255.255.252.0 # Netmask gateway: 10.0.2.1 # Gateway dns: 8.8.8.8 # DNS - subnet: 10.0.2.0 # Subnet mask + subnet: 10.0.0.0 # Subnet mask + range_start: 10.0.2.160 # Start of DHCP range + range_end: 10.0.3.254 # End of DHCP range + broadcast: 10.0.3.255 # Network Broadcast address default_lease_time: 21600 # Subnet Default lease time - The default is used if this is not defined max_lease_time: 43200 # Subnet Max lease time - The default is used if this is not defined ipxe_boot_file: "boot.ipxe" # Path of initial iPXE bootloader to boot from first diff --git a/multi-node-aio/playbooks/group_vars/mnaio_hosts.yml b/multi-node-aio/playbooks/group_vars/mnaio_hosts.yml index d84e2da3..00dba6f6 100644 --- a/multi-node-aio/playbooks/group_vars/mnaio_hosts.yml +++ b/multi-node-aio/playbooks/group_vars/mnaio_hosts.yml @@ -65,3 +65,6 @@ mnaio_host_iptables_prerouting_ports: - host_port: 6082 vm_port: 6082 vm_ip: "{{ hostvars[groups['loadbalancer_hosts'][0]]['server_vm_fixed_addr'] }}" + - host_port: 8443 + vm_port: 8443 + vm_ip: "{{ hostvars[groups['loadbalancer_hosts'][0]]['server_vm_fixed_addr'] }}" diff --git a/multi-node-aio/playbooks/osa/openstack_user_config.yml b/multi-node-aio/playbooks/osa/openstack_user_config.yml index a56cc1b1..5d956b52 100644 --- a/multi-node-aio/playbooks/osa/openstack_user_config.yml +++ b/multi-node-aio/playbooks/osa/openstack_user_config.yml @@ -42,7 +42,7 @@ global_overrides: container_bridge: "br-flat" container_type: "veth" container_interface: "eth12" - host_bind_override: "eth2" + host_bind_override: "veth2" type: "flat" net_name: "flat" group_binds: diff --git a/multi-node-aio/playbooks/pxe/configs/debian/vm-bridges.cfg.j2 b/multi-node-aio/playbooks/pxe/configs/debian/vm-bridges.cfg.j2 index 483f6ca3..3505172a 100644 --- a/multi-node-aio/playbooks/pxe/configs/debian/vm-bridges.cfg.j2 +++ b/multi-node-aio/playbooks/pxe/configs/debian/vm-bridges.cfg.j2 @@ -15,8 +15,18 @@ iface br-{{ key }} inet {{ value.inet_type }} bridge_stp off bridge_waitport 10 bridge_fd 0 - bridge_ports {{ value.iface | default('none') }} offload-sg off +{% if value.iface is defined %} + pre-up ip link add br-veth-{{ key }} type veth peer name v{{ value.iface }} || true + # Set both ends UP + pre-up ip link set br-veth-{{ key }} up + pre-up ip link set v{{ value.iface }} up + # Delete veth pair on DOWN + post-down ip link del br-vlan-veth || true + bridge_ports {{ value.iface }} br-veth-{{ key }} +{% else %} + bridge_ports none +{% endif %} {% if value.address is defined %} address {{ value.address }} {% endif %}