Routing updates lost when multiple IPs attached to router

Bug #1401728 reported by Sean M. Collins
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
neutron
Expired
Undecided
Unassigned

Bug Description

When attempting to run dual stacked networking at the gate (https://review.openstack.org/#/c/140128/), IPv4 networking breaks, with Tempest scenarios reporting no route to host errors for the floating IPs that tempest attempts to SSH into.

The following errors are reported in the l3 agent log:

2014-12-11 23:19:58.393 25977 ERROR neutron.agent.l3.agent [-] Ignoring multiple IPs on router port db0953d3-4bd1-4106-9efc-c16cd9a3e922
2014-12-11 23:19:58.393 25977 ERROR neutron.agent.l3.agent [-] 'subnet'
2014-12-11 23:19:58.393 25977 TRACE neutron.agent.l3.agent Traceback (most recent call last):
2014-12-11 23:19:58.393 25977 TRACE neutron.agent.l3.agent File "/opt/stack/new/neutron/neutron/common/utils.py", line 341, in call
2014-12-11 23:19:58.393 25977 TRACE neutron.agent.l3.agent return func(*args, **kwargs)
2014-12-11 23:19:58.393 25977 TRACE neutron.agent.l3.agent File "/opt/stack/new/neutron/neutron/agent/l3/agent.py", line 646, in process_router
2014-12-11 23:19:58.393 25977 TRACE neutron.agent.l3.agent self._set_subnet_info(ex_gw_port)
2014-12-11 23:19:58.393 25977 TRACE neutron.agent.l3.agent File "/opt/stack/new/neutron/neutron/agent/l3/agent.py", line 562, in _set_subnet_info
2014-12-11 23:19:58.393 25977 TRACE neutron.agent.l3.agent prefixlen = netaddr.IPNetwork(port['subnet']['cidr']).prefixlen
2014-12-11 23:19:58.393 25977 TRACE neutron.agent.l3.agent KeyError: 'subnet'
2014-12-11 23:19:58.393 25977 TRACE neutron.agent.l3.agent
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/eventlet/greenpool.py", line 82, in _spawn_n_impl
    func(*args, **kwargs)
  File "/opt/stack/new/neutron/neutron/agent/l3/agent.py", line 1537, in _process_router_update
    self._process_router_if_compatible(router)
  File "/opt/stack/new/neutron/neutron/agent/l3/agent.py", line 1512, in _process_router_if_compatible
    self.process_router(ri)
  File "/opt/stack/new/neutron/neutron/common/utils.py", line 344, in call
    self.logger(e)
  File "/usr/local/lib/python2.7/dist-packages/oslo/utils/excutils.py", line 82, in __exit__
    six.reraise(self.type_, self.value, self.tb)
  File "/opt/stack/new/neutron/neutron/common/utils.py", line 341, in call
    return func(*args, **kwargs)
  File "/opt/stack/new/neutron/neutron/agent/l3/agent.py", line 646, in process_router
    self._set_subnet_info(ex_gw_port)
  File "/opt/stack/new/neutron/neutron/agent/l3/agent.py", line 562, in _set_subnet_info
    prefixlen = netaddr.IPNetwork(port['subnet']['cidr']).prefixlen
KeyError: 'subnet'

http://logs.openstack.org/28/140128/4/check/check-tempest-dsvm-neutron-full/440ec4e/logs/screen-q-l3.txt.gz

Tempest reports no route to host:

2014-12-11 22:57:04.385 30680 WARNING tempest.common.ssh [-] Failed to establish authenticated ssh connection to cirros@172.24.4.82 ([Errno 113] No route to host). Number attempts: 1. Retry after 2 seconds.

http://logs.openstack.org/28/140128/4/check/check-tempest-dsvm-neutron-full/440ec4e/logs/tempest.txt.gz

Tags: ipv6
description: updated
tags: added: ipv6
description: updated
Changed in neutron:
assignee: nobody → Sridhar Gaddam (sridhargaddam)
Changed in neutron:
assignee: Sridhar Gaddam (sridhargaddam) → nobody
Changed in neutron:
assignee: nobody → Sean M. Collins (scollins)
Changed in neutron:
importance: Undecided → Medium
status: New → Confirmed
Changed in neutron:
status: Confirmed → In Progress
Revision history for this message
tguenther (thomas-guenther) wrote :

Today I was evaluating dual stack on the Juno release. I can confirm the same issue.
My setup is one external network with two subnets (one v4 and one v6). If I set the gateway for the router with the UUID of the external network I see the same trace above mentioned in my l3_agent.log

It seems that the L3 agent is not capable to deal with two subnets configured for an external network.

Changed in neutron:
status: In Progress → Incomplete
assignee: Sean M. Collins (scollins) → nobody
importance: Medium → Undecided
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for neutron because there has been no activity for 60 days.]

Changed in neutron:
status: Incomplete → Expired
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.