neutron metadata ns proxy does not support ssl

Bug #1514424 reported by Özgür Caner
30
This bug affects 4 people
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Medium
Vincent Untz

Bug Description

When SSL is enabled in the neutron metadata agent the neutron metadata ns proxy isn't able to communicate to the neutron metadata agent via the unix domain socket and every request results in a BadStatusLine error:

2015-11-06 16:30:44.060 269669 INFO neutron.wsgi [-] 192.168.0.2 - - [06/Nov/2015 16:30:44] "GET /2009-04-04/meta-data/instance-id HTTP/1.1" 500 343 12.021586
2015-11-06 16:30:56.064 269669 INFO neutron.wsgi [-] (269669) accepted ('192.168.0.2', 50879)
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy [-] Unexpected error.
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy Traceback (most recent call last):
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy File "/usr/lib/python2.7/dist-packages/neutron/agent/metadata/namespace_proxy.py", line 56, in __call__
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy req.body)
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy File "/usr/lib/python2.7/dist-packages/neutron/agent/metadata/namespace_proxy.py", line 88, in _proxy_request
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy connection_type=agent_utils.UnixDomainHTTPConnection)
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1569, in request
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy (response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1316, in _request
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy (response, content) = self._conn_request(conn, request_uri, method, body, headers)
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy File "/usr/lib/python2.7/dist-packages/httplib2/__init__.py", line 1285, in _conn_request
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy response = conn.getresponse()
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy File "/usr/lib/python2.7/httplib.py", line 1051, in getresponse
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy response.begin()
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy File "/usr/lib/python2.7/httplib.py", line 415, in begin
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy version, status, reason = self._read_status()
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy File "/usr/lib/python2.7/httplib.py", line 379, in _read_status
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy raise BadStatusLine(line)
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy BadStatusLine: ''
2015-11-06 16:30:56.071 269669 ERROR neutron.agent.metadata.namespace_proxy

It seems that the neutron metadata ns proxy does not support SSL for the communication.

Gary Kotton (garyk)
Changed in neutron:
importance: Undecided → Medium
status: New → Confirmed
tags: added: l3-ipam-dhcp
Revision history for this message
Özgür Caner (oc-b) wrote :

Fixed this issue patching the /usr/lib/python2.7/dist-packages/neutron/agent/linux/utils.py file, enabling always SSL:

 * changed super class of UnixDomainHTTPConnection from HTTPConnection to HTTPSConnection

 * wrapped unix domain socket into a SSL socket

Changed in neutron:
assignee: nobody → Cedric Brandily (cbrandily)
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/245945

Changed in neutron:
assignee: Cedric Brandily (cbrandily) → Vincent Untz (vuntz)
status: Confirmed → In Progress
Revision history for this message
Alex Stafeyev (astafeye) wrote :

How can enable ssl pls ?
nova_metadata_protocol = http in /etc/neutron/metadata_agent.ini ?

tnx

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

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

commit 7a306e2918775ebb94d9e1408aaa2b7c3ed26fc6
Author: Vincent Untz <email address hidden>
Date: Tue Nov 17 17:47:56 2015 +0100

    Ensure metadata agent doesn't use SSL for UNIX socket

    The communication between the ns metadata proxy and the metadata agent
    is pure HTTP, and should not switch to HTTPS when neutron is using SSL.

    We're therefore telling wsgi.Server to forcefully disable SSL in that
    case.

    Change-Id: I2cb9fa231193bcd5c721c4d5cf0eb9c16e842349
    Closes-Bug: #1514424

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

Fix proposed to branch: stable/mitaka
Review: https://review.openstack.org/297673

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

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/297675

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

Reviewed: https://review.openstack.org/297673
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=005d49d2f092039660a44896217a5c245dcc4685
Submitter: Jenkins
Branch: stable/mitaka

commit 005d49d2f092039660a44896217a5c245dcc4685
Author: Vincent Untz <email address hidden>
Date: Tue Nov 17 17:47:56 2015 +0100

    Ensure metadata agent doesn't use SSL for UNIX socket

    The communication between the ns metadata proxy and the metadata agent
    is pure HTTP, and should not switch to HTTPS when neutron is using SSL.

    We're therefore telling wsgi.Server to forcefully disable SSL in that
    case.

    Change-Id: I2cb9fa231193bcd5c721c4d5cf0eb9c16e842349
    Closes-Bug: #1514424
    (cherry picked from commit 7a306e2918775ebb94d9e1408aaa2b7c3ed26fc6)

tags: added: in-stable-mitaka
Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/neutron 8.1.0

This issue was fixed in the openstack/neutron 8.1.0 release.

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/314250

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron (master)
Download full text (36.9 KiB)

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

commit a323769143001d67fd1b3b4ba294e59accd09e0e
Author: Ryan Moats <email address hidden>
Date: Tue Oct 20 15:51:37 2015 +0000

    Revert "Improve performance of ensure_namespace"

    This reverts commit 81823e86328e62850a89aef9f0b609bfc0a6dacd.

    Unneeded optimization: this commit only improves execution
    time on the order of milliseconds, which is less than 1% of
    the total router update execution time at the network node.

    This also

    Closes-bug: #1574881

    Change-Id: Icbcdf4725ba7d2e743bb6761c9799ae436bd953b

commit 7fcf0253246832300f13b0aa4cea397215700572
Author: OpenStack Proposal Bot <email address hidden>
Date: Thu Apr 21 07:05:16 2016 +0000

    Imported Translations from Zanata

    For more information about this automatic import see:
    https://wiki.openstack.org/wiki/Translations/Infrastructure

    Change-Id: I9e930750dde85a9beb0b6f85eeea8a0962d3e020

commit 643b4431606421b09d05eb0ccde130adbf88df64
Author: OpenStack Proposal Bot <email address hidden>
Date: Tue Apr 19 06:52:48 2016 +0000

    Imported Translations from Zanata

    For more information about this automatic import see:
    https://wiki.openstack.org/wiki/Translations/Infrastructure

    Change-Id: I52d7460b3265b5460b9089e1cc58624640dc7230

commit 1ffea42ccdc14b7a6162c1895bd8f2aae48d5dae
Author: OpenStack Proposal Bot <email address hidden>
Date: Mon Apr 18 15:03:30 2016 +0000

    Updated from global requirements

    Change-Id: Icb27945b3f222af1d9ab2b62bf2169d82b6ae26c

commit b970ed5bdac60c0fa227f2fddaa9b842ba4f51a7
Author: Kevin Benton <email address hidden>
Date: Fri Apr 8 17:52:14 2016 -0700

    Clear DVR MAC on last agent deletion from host

    Once all agents are deleted from a host, the DVR MAC generated
    for that host should be deleted as well to prevent a buildup of
    pointless flows generated in the OVS agent for hosts that don't
    exist.

    Closes-Bug: #1568206
    Change-Id: I51e736aa0431980a595ecf810f148ca62d990d20
    (cherry picked from commit 92527c2de2afaf4862fddc101143e4d02858924d)

commit eee9e58ed258a48c69effef121f55fdaa5b68bd6
Author: Mike Bayer <email address hidden>
Date: Tue Feb 9 13:10:57 2016 -0500

    Add an option for WSGI pool size

    Neutron currently hardcodes the number of
    greenlets used to process requests in a process to 1000.
    As detailed in
    http://lists.openstack.org/pipermail/openstack-dev/2015-December/082717.html

    this can cause requests to wait within one process
    for available database connection while other processes
    remain available.

    By adding a wsgi_default_pool_size option functionally
    identical to that of Nova, we can lower the number of
    greenlets per process to be more in line with a typical
    max database connection pool size.

    DocImpact: a previously unused configuration value
               wsgi_default_pool_size is now used to a...

tags: added: neutron-proactive-backport-potential
Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/neutron 9.0.0.0b1

This issue was fixed in the openstack/neutron 9.0.0.0b1 development milestone.

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

Reviewed: https://review.openstack.org/297675
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=c93064c55842e3b2810ae2b6a04f508a434c8abb
Submitter: Jenkins
Branch: stable/liberty

commit c93064c55842e3b2810ae2b6a04f508a434c8abb
Author: Vincent Untz <email address hidden>
Date: Tue Nov 17 17:47:56 2015 +0100

    Ensure metadata agent doesn't use SSL for UNIX socket

    The communication between the ns metadata proxy and the metadata agent
    is pure HTTP, and should not switch to HTTPS when neutron is using SSL.

    We're therefore telling wsgi.Server to forcefully disable SSL in that
    case.

    Change-Id: I2cb9fa231193bcd5c721c4d5cf0eb9c16e842349
    Closes-Bug: #1514424
    (cherry picked from commit 7a306e2918775ebb94d9e1408aaa2b7c3ed26fc6)

tags: added: in-stable-liberty
Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote : Fix included in openstack/neutron 7.1.1

This issue was fixed in the openstack/neutron 7.1.1 release.

tags: removed: neutron-proactive-backport-potential
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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