DNS extension broken for provider networks

Bug #1787534 reported by Daniele Venzano
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Confirmed
Undecided
Unassigned

Bug Description

Following these instructions:
https://docs.openstack.org/neutron/queens/install/controller-install-option1-ubuntu.html

Plus these:
https://docs.openstack.org/neutron/queens/admin/config-dns-int.html

makes my neutron-server crash on startup with this error:

2018-08-17 08:42:02.306 800458 ERROR neutron.api.extensions [req-afd067df-249f-4092-9bf5-ca660b11292d - - - - -] Unable to process extensions (auto-allocated-topology, dns-integration) because the configured plugins do not satisfy their requirements. Some features will not work as expected.
2018-08-17 08:42:02.306 800458 ERROR neutron.service [req-afd067df-249f-4092-9bf5-ca660b11292d - - - - -] Unrecoverable error: please check log for details.: ExtensionsNotFound: Extensions not found: ['auto-allocated-topology', 'dns-integration'].
2018-08-17 08:42:02.306 800458 ERROR neutron.service Traceback (most recent call last):
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/service.py", line 86, in serve_wsgi
2018-08-17 08:42:02.306 800458 ERROR neutron.service service.start()
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/service.py", line 62, in start
2018-08-17 08:42:02.306 800458 ERROR neutron.service self.wsgi_app = _run_wsgi(self.app_name)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/service.py", line 289, in _run_wsgi
2018-08-17 08:42:02.306 800458 ERROR neutron.service app = config.load_paste_app(app_name)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/common/config.py", line 122, in load_paste_app
2018-08-17 08:42:02.306 800458 ERROR neutron.service app = loader.load_app(app_name)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/oslo_service/wsgi.py", line 353, in load_app
2018-08-17 08:42:02.306 800458 ERROR neutron.service return deploy.loadapp("config:%s" % self.config_path, name=name)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
2018-08-17 08:42:02.306 800458 ERROR neutron.service return loadobj(APP, uri, name=name, **kw)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
2018-08-17 08:42:02.306 800458 ERROR neutron.service return context.create()
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
2018-08-17 08:42:02.306 800458 ERROR neutron.service return self.object_type.invoke(self)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 144, in invoke
2018-08-17 08:42:02.306 800458 ERROR neutron.service **context.local_conf)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line 55, in fix_call
2018-08-17 08:42:02.306 800458 ERROR neutron.service val = callable(*args, **kw)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 31, in urlmap_factory
2018-08-17 08:42:02.306 800458 ERROR neutron.service app = loader.get_app(app_name, global_conf=global_conf)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 350, in get_app
2018-08-17 08:42:02.306 800458 ERROR neutron.service name=name, global_conf=global_conf).create()
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
2018-08-17 08:42:02.306 800458 ERROR neutron.service return self.object_type.invoke(self)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 144, in invoke
2018-08-17 08:42:02.306 800458 ERROR neutron.service **context.local_conf)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line 55, in fix_call
2018-08-17 08:42:02.306 800458 ERROR neutron.service val = callable(*args, **kw)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/auth.py", line 47, in pipeline_factory
2018-08-17 08:42:02.306 800458 ERROR neutron.service app = loader.get_app(pipeline[-1])
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 350, in get_app
2018-08-17 08:42:02.306 800458 ERROR neutron.service name=name, global_conf=global_conf).create()
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
2018-08-17 08:42:02.306 800458 ERROR neutron.service return self.object_type.invoke(self)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 146, in invoke
2018-08-17 08:42:02.306 800458 ERROR neutron.service return fix_call(context.object, context.global_conf, **context.local_conf)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line 55, in fix_call
2018-08-17 08:42:02.306 800458 ERROR neutron.service val = callable(*args, **kw)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/api/v2/router.py", line 25, in _factory
2018-08-17 08:42:02.306 800458 ERROR neutron.service return pecan_app.v2_factory(global_config, **local_config)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/pecan_wsgi/app.py", line 47, in v2_factory
2018-08-17 08:42:02.306 800458 ERROR neutron.service startup.initialize_all()
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/pecan_wsgi/startup.py", line 41, in initialize_all
2018-08-17 08:42:02.306 800458 ERROR neutron.service ext_mgr.extend_resources("2.0", attributes.RESOURCE_ATTRIBUTE_MAP)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/api/extensions.py", line 376, in extend_resources
2018-08-17 08:42:02.306 800458 ERROR neutron.service self._check_faulty_extensions(unloadable_extensions)
2018-08-17 08:42:02.306 800458 ERROR neutron.service File "/usr/lib/python2.7/dist-packages/neutron/api/extensions.py", line 396, in _check_faulty_extensions
2018-08-17 08:42:02.306 800458 ERROR neutron.service extensions=list(faulty_extensions))
2018-08-17 08:42:02.306 800458 ERROR neutron.service ExtensionsNotFound: Extensions not found: ['auto-allocated-topology', 'dns-integration'].

Basically trying to have basic DNS resolution with provider-only networks (no l3 router) makes neutron crash. I don't know if that is accepted behaviour, but anyway it should be documented that this configuration is not possible.

I'm using queens on Ubuntu 16 via their cloud archive, deployment done by hand.

See also:
https://ask.openstack.org/en/question/99865/has-anyone-seen-extensions-not-found-auto-allocated-topology-dns-integration-when-you-add-dns-to-the-ml2-extension_drivers/ (where an outdated fix is proposed as a code change)

-----------------------------------
Release: 12.0.4.dev63 on 2018-08-14 12:30
SHA: 7acefb0c7fbb5057879a2edadd43423275993bc3
Source: https://git.openstack.org/cgit/openstack/neutron/tree/doc/source/admin/config-dns-int.rst
URL: https://docs.openstack.org/neutron/queens/admin/config-dns-int.html

Revision history for this message
Pawel Suder (pasuder) wrote :

Hello,

Thank you for your update,

I would like to ask few questions:

- could you provide configuration of Neutron and other related services, please?
- do you have Designate configured and running?

Thank you,
Paweł

Revision history for this message
Daniele Venzano (venza) wrote :

I do not have Designate.

The configuration is as follows (I followed the tutorial):

Please note thet if I put "router" in service_plugins at line 4 without changing anything anywhere else, the error disappears and VM see each other via the hostname.

neutron.conf
------------
  1 [DEFAULT]
  2 auth_strategy = keystone
  3 core_plugin = ml2
  4 service_plugins =
  5 allow_overlapping_ips = true
  6
  7 dns_domain = a.b
  8 host = bfeb
  9 api_workers = 4
 10 enable_dvr = false
 11
 12 transport_url = rabbit://guest:xxx
 13
 14 notify_nova_on_port_status_changes = true
 15 notify_nova_on_port_data_changes = true
 16
 17 [agent]
 18 root_helper = sudo /usr/bin/neutron-rootwrap /etc/neutron/rootwrap.conf
 19
 20 [database]
 21 connection = xxx
 22
 23 [keystone_authtoken]
 24 auth_url = http://bfeb:5000
 25 auth_version = 3
 26 memcached_servers = localhost:11211
 27 auth_type = password
 28 project_domain_name = Default
 29 user_domain_name = Default
 30 project_name = service
 31 username = neutron
 32 password = xxx
 33
 34 [nova]
 35 auth_url = http://bfeb:5000
 36 auth_type = password
 37 auth_version = 3
 38 project_domain_name = Default
 39 user_domain_name = Default
 40 region_name = RegionOne
 41 project_name = service
 42 username = nova
 43 password = xxx
 44
 45 [oslo_messaging_notifications]
 46 driver = messagingv2

ml2_conf.ini
------------
  1 [DEFAULT]
  2
  3
  4 [ml2]
  5 type_drivers = flat,vlan,vxlan
  6 tenant_network_types =
  7 mechanism_drivers = linuxbridge
  8 extension_drivers = port_security,dns
  9
 10 [ml2_type_flat]
 11 flat_networks = provider
 12
 13 [securitygroup]
 14 firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
 15 enable_security_group = true
 16 enable_ipset = true
 17

linuxbridge_agent.ini
---------------------
  1 [DEFAULT]
  2
  3 [linux_bridge]
  4 physical_interface_mappings = provider:eno2
  5
  6 [vxlan]
  7 enable_vxlan = false
  8
  9 [securitygroup]
 10 enable_security_group = true
 11 firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver

Revision history for this message
Satish Patel (satish-txt) wrote :

Adding following in /etc/neutron/neutron.conf fix my designate error. now sure why do we need this setting if i am not using any l3-agent or tenant based networking. I am using vlan based provider where my Physical router is my gateway.

service_plugins = router

Changed in neutron:
status: New → Confirmed
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.