From 5ce42bedb325439ae1e907cc0076a2e6d1266787 Mon Sep 17 00:00:00 2001 From: Feng Pan Date: Thu, 16 Aug 2018 11:36:58 -0400 Subject: Fix ipv6 deployment failures - fix ipv6 enable command on bridge interfaces - fix external subnet creation command - enable NAT when admin is ipv4 - fix network settings file for ipv6 for br-ex interface type Change-Id: Ibd2dbe1d0c8e8df72ad1b0b3713a19f8bbc56eef Signed-off-by: Feng Pan --- apex/network/jumphost.py | 8 ++------ apex/overcloud/deploy.py | 3 +-- apex/undercloud/undercloud.py | 7 +++++-- config/network/network_settings_v6.yaml | 4 ++-- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/apex/network/jumphost.py b/apex/network/jumphost.py index c28c105e..86556659 100644 --- a/apex/network/jumphost.py +++ b/apex/network/jumphost.py @@ -53,12 +53,8 @@ def configure_bridges(ns): if cidr.version == 6: ipv6_br_path = "/proc/sys/net/ipv6/conf/{}/disable_" \ "ipv6".format(NET_MAP[network]) - try: - subprocess.check_call('echo', 0, '>', ipv6_br_path) - except subprocess.CalledProcessError: - logging.error("Unable to enable ipv6 on " - "bridge {}".format(NET_MAP[network])) - raise + with open(ipv6_br_path, 'w') as f: + print(0, file=f) try: ip_prefix = "{}/{}".format(ovs_ip, cidr.prefixlen) subprocess.check_call(['ip', 'addr', 'add', ip_prefix, 'dev', diff --git a/apex/overcloud/deploy.py b/apex/overcloud/deploy.py index e310fa21..3dd2af34 100644 --- a/apex/overcloud/deploy.py +++ b/apex/overcloud/deploy.py @@ -871,8 +871,7 @@ def external_network_cmds(ns, ds): "--allocation-pool start={},end={} --subnet-range " \ "{}".format(gateway, pool_start, pool_end, str(cidr)) if external and cidr.version == 6: - subnet_cmd += ' --ip-version 6 --ipv6-ra-mode slaac ' \ - '--ipv6-address-mode slaac' + subnet_cmd += ' --ip-version 6' cmds.append(subnet_cmd) logging.debug("Neutron external network commands determined " "as: {}".format(cmds)) diff --git a/apex/undercloud/undercloud.py b/apex/undercloud/undercloud.py index d2de2de1..56087695 100644 --- a/apex/undercloud/undercloud.py +++ b/apex/undercloud/undercloud.py @@ -263,8 +263,11 @@ class Undercloud: "prefix": str(ns_external['cidr']).split('/')[1], "enabled": ns_external['enabled'] } - # TODO(trozet): clean this logic up and merge with above - if 'external' in ns.enabled_network_list: + # We will NAT external network if it is enabled. If external network + # is IPv6, we will NAT admin network in case we need IPv4 connectivity + # for things like DNS server. + if 'external' in ns.enabled_network_list and \ + ns_external['cidr'].version == 4: nat_cidr = ns_external['cidr'] else: nat_cidr = ns['networks']['admin']['cidr'] diff --git a/config/network/network_settings_v6.yaml b/config/network/network_settings_v6.yaml index 1dd1097d..71b0b272 100644 --- a/config/network/network_settings_v6.yaml +++ b/config/network/network_settings_v6.yaml @@ -180,7 +180,7 @@ networks: # Mapping for compute profile (nodes assigned as Compute nodes) compute: # Physical interface type (interface or bond) - phys_type: interface + phys_type: ovs_bridge # VLAN tag to use with this NIC vlan: native # Physical NIC members of this mapping @@ -189,7 +189,7 @@ networks: - nic3 # Mapping for controller profile (nodes assigned as Controller nodes) controller: - phys_type: interface + phys_type: ovs_bridge vlan: native members: - nic3 -- cgit 1.2.3-korg