Neutron traceback when an external network without IPv6 subnet is attached to an HA Router

Bug #1494336 reported by Sridhar Gaddam
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
Sridhar Gaddam
Kilo
Fix Released
Undecided
Unassigned

Bug Description

For an HA Router which does not have any subnets in the external network, Neutron
sets the IPv6 proc entry[1] on the gateway interface to receive Router Advts from
external IPv6 router and configure a default route pointing to the LLA of the external IPv6 Router.

Normally for an HA Router in the backup state, Neutron removes Link Local Address (LLA)
from the gateway interface.

In Kernel version 3.10 when the last IPv6 address is removed from the interface,
IPv6 is shutdown on the iface and the proc entries corresponding to the iface are deleted (i.e., /proc/sys/net/ipv6/conf/<interface>)
This issue is resolved in the later kernels [2], but the issue exists on platforms with Kernel version 3.10
When IPv6 proc entries are missing and Neutron tries to configure the proc entry we see the following traceback [3] in Neutron.

[1] /proc/sys/net/ipv6/conf/qg-1fc4061d-3c/accept_ra
[2] http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=876fd05ddbae03166e7037fca957b55bb3be6594
[3] Trace:
    Command: ['ip', 'netns', 'exec', 'qrouter-e66b99aa-e840-4a13-9311-6242710a5452', 'sysctl', '-w', 'net.ipv6.conf.qg-1fc4061d-3c.accept_ra=2']
    Exit code: 255
    Stdin:
    Stdout:
    Stderr: sysctl: cannot stat /proc/sys/net/ipv6/conf/qg-1fc4061d-3c/accept_ra: No such file or directory

Changed in neutron:
assignee: nobody → Sridhar Gaddam (sridhargaddam)
status: New → In Progress
Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

kernel 3.10 is used in RHEL 7.1, so it means HA routers are not working for IPv6 external networks with no subnets for the platform.

Changed in neutron:
importance: Undecided → High
Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :
Changed in neutron:
milestone: none → liberty-rc1
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (master)

Fix proposed to branch: master
Review: https://review.openstack.org/222283

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)

Reviewed: https://review.openstack.org/222283
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=c89a4fdd88b0f8832b32af55f64e0d3a35c84388
Submitter: Jenkins
Branch: master

commit c89a4fdd88b0f8832b32af55f64e0d3a35c84388
Author: sridhargaddam <email address hidden>
Date: Thu Sep 10 16:14:13 2015 +0000

    Configure gw_iface for RAs only in Master HA Router

    For an HA Router which does not have any IPv6 subnets in the external network
    and when ipv6_gateway is not set, Neutron configures the gateway interface of
    the router to receive Router Advts for default route. In an HA router, only
    the Master instance has the IP addresses while the Backup instance does not
    have any addresses (including LLA). In Kernel version 3.10, when the last
    IPv6 address is removed from the interface, IPv6 proc entries corresponding
    to the iface are also deleted. This is however reverted in the later versions
    of kernel code.

    This patch addresses this issue by configuring the proc entry only for the
    Master HA Router instance instead of doing it un-conditionally.

    Closes-Bug: #1494336
    Change-Id: Ibf8e0ff64cda00314f8fa649ef5019c95c2d6004

Changed in neutron:
status: In Progress → Fix Committed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (stable/kilo)

Fix proposed to branch: stable/kilo
Review: https://review.openstack.org/222909

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (stable/kilo)

Reviewed: https://review.openstack.org/222909
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=4d15b6fe1259f2e9b17d76bc48050c7f54aad02e
Submitter: Jenkins
Branch: stable/kilo

commit 4d15b6fe1259f2e9b17d76bc48050c7f54aad02e
Author: sridhargaddam <email address hidden>
Date: Thu Sep 10 16:14:13 2015 +0000

    Configure gw_iface for RAs only in Master HA Router

    For an HA Router which does not have any IPv6 subnets in the external network
    and when ipv6_gateway is not set, Neutron configures the gateway interface of
    the router to receive Router Advts for default route. In an HA router, only
    the Master instance has the IP addresses while the Backup instance does not
    have any addresses (including LLA). In Kernel version 3.10, when the last
    IPv6 address is removed from the interface, IPv6 proc entries corresponding
    to the iface are also deleted. This is however reverted in the later versions
    of kernel code.

    This patch addresses this issue by configuring the proc entry only for the
    Master HA Router instance instead of doing it un-conditionally.

    Conflicts:
     neutron/agent/l3/ha_router.py
     neutron/agent/l3/router_info.py

    Closes-Bug: #1494336
    (cherry picked from commit c89a4fdd88b0f8832b32af55f64e0d3a35c84388)
    Change-Id: Ibf8e0ff64cda00314f8fa649ef5019c95c2d6004

tags: added: in-stable-kilo
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron (feature/pecan)

Fix proposed to branch: feature/pecan
Review: https://review.openstack.org/224334

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: feature/pecan
Review: https://review.openstack.org/224357

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (feature/pecan)
Download full text (73.6 KiB)

Reviewed: https://review.openstack.org/224357
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=fdc3431ccd219accf6a795079d9b67b8656eed8e
Submitter: Jenkins
Branch: feature/pecan

commit fe236bdaadb949661a0bfb9b62ddbe432b4cf5f1
Author: Miguel Angel Ajo <email address hidden>
Date: Thu Sep 3 15:40:12 2015 +0200

    No network devices on network attached qos policies

    Network devices, like internal router legs, or dhcp ports
    should not be affected by bandwidth limiting rules.

    This patch disables application of network attached policies
    to network/neutron owned ports.

    Closes-bug: #1486039
    DocImpact

    Change-Id: I75d80227f1e6c4b3f5fa7762b8dc3b0c0f1abd46

commit db4a06f7caa20a4c7879b58b20e95b223ed8eeaf
Author: Ken'ichi Ohmichi <email address hidden>
Date: Wed Sep 16 10:04:32 2015 +0000

    Use tempest-lib's token_client

    Now tempest-lib provides token_client modules as library and the
    interface is stable. So neutron repogitory doesn't need to contain
    these modules.
    This patch makes neutron use tempest-lib's token_client and removes
    the own modules for the maintenance.

    Change-Id: Ieff7eb003f6e8257d83368dbc80e332aa66a156c

commit 78aed58edbe6eb8a71339c7add491fe9de9a0546
Author: Jakub Libosvar <email address hidden>
Date: Thu Aug 13 09:08:20 2015 +0000

    Fix establishing UDP connection

    Previously, in establish_connection() for UDP protocol data were sent
    but never read on peer socket. That lead to successful read on peer side
    if this connection was filtered. Having constant testing string masked
    this issue as we can't distinguish to which test of connectivity data
    belong.

    This patch makes unique data string per test_connectivity() and
    also makes establish_connection() to create an ASSURED entry in
    conntrack table. Finally, in last test after firewall filter was
    removed, connection is re-established in order to avoid troubles with
    terminated processes or TCP continuing sending packets which weren't
    successfully delivered.

    Closes-Bug: 1478847
    Change-Id: I2920d587d8df8d96dc1c752c28f48ba495f3cf0f

commit e6292fcdd6262434a7b713ad8802db6bc8a6d3dc
Author: YAMAMOTO Takashi <email address hidden>
Date: Wed Sep 16 13:20:51 2015 +0900

    ovsdb: Fix a few docstring

    Change-Id: I53e1e21655b28fe5da60e58aeeb7cbbd103ae014

commit c22949a4449d96a67caa616290cf76b67b182917
Author: fumihiko kakuma <email address hidden>
Date: Wed Sep 16 11:52:59 2015 +0900

    Remove requirements.txt for the ofagent mechanism driver

    It is no longer used.

    Related-Blueprint: core-vendor-decomposition
    https://blueprints.launchpad.net/neutron/+spec/core-vendor-decomposition

    Change-Id: Ib31fb3febf8968e50d86dd66e1e6e1ea2313f8ac

commit d1d4de19d85f961d388c91e70f31b3bafec418c5
Author: Kevin Benton <email address hidden>
Date: Thu Sep 3 20:25:57 2015 -0700

    Always return iterables in L3 get_candidates

    The caller of this function expects iterables.

    Closes-Bug: #1494996
    Change-Id: I3d103e63f4e127a77268502415c0ddb0d804b54a

commit 1ad6ac448067306...

tags: added: in-feature-pecan
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (feature/pecan)

Change abandoned by Doug Wiegley (<email address hidden>) on branch: feature/pecan
Review: https://review.openstack.org/224334

Thierry Carrez (ttx)
Changed in neutron:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in neutron:
milestone: liberty-rc1 → 7.0.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.