Browse code

Enable accept_ra before enabling forwarding

We need to enable accept_ra before we enable forwarding, otherwise
existing addresses and routes may get dropped until the next RA is
received, possibly causing connection errors in the meantime.

Change-Id: I1fdeede59547de896ed89222ecf121fd9e6b810d

Jens Harbott authored on 2019/09/19 22:57:43
Showing 1 changed files
... ...
@@ -395,8 +395,6 @@ function _neutron_configure_router_v6 {
395 395
 
396 396
     # This logic is specific to using the l3-agent for layer 3
397 397
     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 398
         # if the Linux host considers itself to be a router then it will
401 399
         # ignore all router advertisements
402 400
         # Ensure IPv6 RAs are accepted on interfaces with a default route.
... ...
@@ -409,6 +407,8 @@ function _neutron_configure_router_v6 {
409 409
             # device name would be reinterpreted as a slash, causing an error.
410 410
             sudo sysctl -w net/ipv6/conf/$d/accept_ra=2
411 411
         done
412
+        # Ensure IPv6 forwarding is enabled on the host
413
+        sudo sysctl -w net.ipv6.conf.all.forwarding=1
412 414
         # Configure and enable public bridge
413 415
         # Override global IPV6_ROUTER_GW_IP with the true value from neutron
414 416
         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' ' ')