@@ -103,7 +103,7 @@ SUBNETPOOL_SIZE_V6=${SUBNETPOOL_SIZE_V6:-64}
103103default_v4_route_devs=$( ip -4 route | grep ^default | awk ' {print $5}' )
104104die_if_not_set $LINENO default_v4_route_devs " Failure retrieving default IPv4 route devices"
105105
106- default_v6_route_devs=$( ip -6 route | grep ^default | awk ' {print $5}' )
106+ default_v6_route_devs=$( ip -6 route list match default table all | grep via | awk ' {print $5}' )
107107
108108function _determine_config_l3 {
109109 local opts=" --config-file $NEUTRON_CONF --config-file $Q_L3_CONF_FILE "
@@ -395,6 +395,10 @@ function _neutron_configure_router_v6 {
395395
396396 # This logic is specific to using the l3-agent for layer 3
397397 if is_service_enabled q-l3 || is_service_enabled neutron-l3; then
398+ # Ensure IPv6 forwarding is enabled on the host
399+ sudo sysctl -w net.ipv6.conf.all.forwarding=1
400+ # if the Linux host considers itself to be a router then it will
401+ # ignore all router advertisements
398402 # Ensure IPv6 RAs are accepted on interfaces with a default route.
399403 # This is needed for neutron-based devstack clouds to work in
400404 # IPv6-only clouds in the gate. Please do not remove this without
@@ -405,8 +409,6 @@ function _neutron_configure_router_v6 {
405409 # device name would be reinterpreted as a slash, causing an error.
406410 sudo sysctl -w net/ipv6/conf/$d /accept_ra=2
407411 done
408- # Ensure IPv6 forwarding is enabled on the host
409- sudo sysctl -w net.ipv6.conf.all.forwarding=1
410412 # Configure and enable public bridge
411413 # Override global IPV6_ROUTER_GW_IP with the true value from neutron
412414 IPV6_ROUTER_GW_IP=$( openstack --os-cloud devstack-admin --os-region " $REGION_NAME " port list -c ' Fixed IP Addresses' | grep $ipv6_pub_subnet_id | awk -F' ip_address' ' { print $2 }' | cut -f2 -d\' | tr ' \n' ' ' )
0 commit comments