Ask Your Question
0

Stein - Kolla - Neutron router ports are down - TooManyExternalNetworks

asked 2019-10-22 14:59:53 -0500

LaurentDumont gravatar image

Hi everyone,

I am seeing a strange issue with Stein and creating multiple external networks. Here is a brief rundown of the setup.

I create the following ressources through Terraform. I've also been able to reproduce the issue by creating the ressources manually.

Scenario 1: 1) One network+subnet (EXT) marked as external with X vlan configured on physnet1. This is expected to be used as the SNAT for a router and floating IPs. Not marked as shared.
2) One network+subnet (PROV) marked as external with Y vlan configured on physnet1. Not currently in use on any qrouters. Not marked as shared. Initially not marked as external, but I encountered the issue when I set it as "external" to test it
3) Create one router with SNAT and the external network set as the EXT network.
4) The router is created within Openstack but is never created on the Controllers namespaces. All port are marked as down.
5) I've attached the logs.
6) If I clear the gateway from the router, the router is spawned and the interfaces come up. 7) If I re-add the gateway with the EXT network. The router goes down and the interfaces are deleted.

2019-10-22 18:52:27.199 49 ERROR neutron.agent.l3.agent [-] Router 'b6dba893-1454-4c0f-9088-e61edef31902' is not compatible with this agent.: RouterNotCompatibleWithAgent: Router 'b6dba893-1454-4c0f-9088-e61edef31902' is not compatible with this agent. 2019-10-22 18:52:27.199 49 ERROR neutron.agent.l3.agent Traceback (most recent call last): 2019-10-22 18:52:27.199 49 ERROR neutron.agent.l3.agent   File "/var/lib/kolla/venv/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 710, in
_process_routers_if_compatible 2019-10-22 18:52:27.199 49 ERROR neutron.agent.l3.agent     self._process_router_if_compatible(router) 2019-10-22 18:52:27.199 49 ERROR neutron.agent.l3.agent   File "/var/lib/kolla/venv/lib/python2.7/site-packages/neutron/agent/l3/agent.py", line 551, in
_process_router_if_compatible 2019-10-22 18:52:27.199 49 ERROR neutron.agent.l3.agent     router_id=router['id']) 2019-10-22 18:52:27.199 49 ERROR neutron.agent.l3.agent RouterNotCompatibleWithAgent: Router 'b6dba893-1454-4c0f-9088-e61edef31902' is not compatible with this agent. 2019-10-22 18:52:27.199 49 ERROR neutron.agent.l3.agent  2019-10-22 18:52:27.200 49 DEBUG neutron.agent.l3.agent [-] Payload:

2019-10-22 18:52:20.296 31 ERROR oslo_messaging.rpc.server [req-f62c802f-d047-45d7-a3eb-b40e8c44f6ae
- - - - -] Exception during message handling: TooManyExternalNetworks: More than one external network exists. 2019-10-22 18:52:20.296 31 ERROR oslo_messaging.rpc.server   File "/var/lib/kolla/venv/lib/python2.7/site-packages/neutron/api/rpc/handlers/l3_rpc.py", line 254, in get_external_network_id 2019-10-22 18:52:20.296 31 ERROR oslo_messaging.rpc.server     net_id = self.plugin.get_external_network_id(context) 2019-10-22 18:52:20.296 31 ERROR oslo_messaging.rpc.server   File "/var/lib/kolla/venv/lib/python2.7/site-packages/neutron/db/external_net_db.py", line 149, in get_external_network_id 2019-10-22 18:52:20.296 31 ERROR oslo_messaging.rpc.server TooManyExternalNetworks: More than one external network exists.

The Terraform resources creation :

resource "openstack_networking_network_v2" "INT-NETWORK" {
  name                  = "INT-NETWORK"
  admin_state_up        = "true"
  description           = "Internal Network - VXLAN ...
(more)
edit retag flag offensive close merge delete

3 answers

Sort by » oldest newest most voted
0

answered 2019-12-07 05:21:27 -0500

chalans gravatar image

updated 2019-12-07 05:23:41 -0500

Hello,

We have the same problem after an upgrade from Rocky to Stein ... Floating IP port remain down . After waiting for some minutes, the port become Up .. Also with a restart of L3_Agent , the port become up immediatly.

If i create directly on provider network (no vxlan + FIP) i have no problem So you are true the problem was on L3_agent

PS : can you contact me directly on my email adress schalans@gmail.com , maybe we can help us . (if you are french , n'hésite pas à écrire en français ;) )

Greeting

edit flag offensive delete link more

Comments

Salut!

I'll reach out by email - the comment character limit is a bit agressive!

LaurentDumont gravatar imageLaurentDumont ( 2019-12-09 16:46:45 -0500 )edit
0

answered 2019-10-29 09:55:00 -0500

zzu_david gravatar image

This is a bug in version Stein.

Temporary solution

update file /usr/lib/python2.7/site-packages/neutron/db/external_net_db.py line 148.

original file

def get_external_network_id(self, context):

    nets = self.get_networks(context, {extnet_apidef.EXTERNAL: [True]})

    if len(nets) > 1:

        raise n_exc.TooManyExternalNetworks()

    else:

        return nets[0]['id'] if nets else None

update to :

def get_external_network_id(self, context):

    nets = self.get_networks(context, {extnet_apidef.EXTERNAL: [True]})

    if len(nets) > 300:

        raise n_exc.TooManyExternalNetworks()

    else:

        return nets[0]['id'] if nets else None

and then restart your neutron-server and neutron-l3-agent.

edit flag offensive delete link more
0

answered 2019-10-23 22:14:26 -0500

LaurentDumont gravatar image

For anyone else curious - I've opened a bug with the Neutron team and there seem to be an issue with Neutron itself. As somewhat of a workaround, you can restar the "neutron_l3_agent" to allow the namespaces to spawn and the ports to go Active.

https://bugs.launchpad.net/neutron/+bug/1849392 (https://bugs.launchpad.net/neutron/+b...)

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Get to know Ask OpenStack

Resources for moderators

Question Tools

3 followers

Stats

Asked: 2019-10-22 14:59:53 -0500

Seen: 177 times

Last updated: Dec 07 '19