Because neutron sets ipv6 forwarding settings, we stop accepting RAs
from IPv6-only host environments. This leads to a loss of external
connectivity, which is bad for zuul running tests and stuff.
Setting accept_ra to 2 will cause the RAs to be accepted.
(cherry picked from commit 85b1308be4f4107a9054037b1d7351f57f473a1f)
Conflicts:
lib/neutron_plugins/services/l3
Closes-bug: #1616282
Change-Id: Ia044fff2a1731ab6c04f82aea47096b425e0c0a0
| ... | ... |
@@ -359,6 +359,9 @@ else |
| 359 | 359 |
Q_USE_SECGROUP=False |
| 360 | 360 |
fi |
| 361 | 361 |
|
| 362 |
+default_route_dev=$(ip route | grep ^default | awk '{print $5}')
|
|
| 363 |
+die_if_not_set $LINENO default_route_dev "Failure retrieving default route device" |
|
| 364 |
+ |
|
| 362 | 365 |
# Save trace setting |
| 363 | 366 |
XTRACE=$(set +o | grep xtrace) |
| 364 | 367 |
set +o xtrace |
| ... | ... |
@@ -1344,6 +1347,11 @@ function _neutron_configure_router_v6 {
|
| 1344 | 1344 |
|
| 1345 | 1345 |
# This logic is specific to using the l3-agent for layer 3 |
| 1346 | 1346 |
if is_service_enabled q-l3; then |
| 1347 |
+ # Ensure IPv6 RAs are accepted on the interface with the default route. |
|
| 1348 |
+ # This is needed for neutron-based devstack clouds to work in |
|
| 1349 |
+ # IPv6-only clouds in the gate. Please do not remove this without |
|
| 1350 |
+ # talking to folks in Infra. |
|
| 1351 |
+ sudo sysctl -w net.ipv6.conf.$default_route_dev.accept_ra=2 |
|
| 1347 | 1352 |
# Ensure IPv6 forwarding is enabled on the host |
| 1348 | 1353 |
sudo sysctl -w net.ipv6.conf.all.forwarding=1 |
| 1349 | 1354 |
# Configure and enable public bridge |