[RFE] Networking L2 Gateway does not work with DVR

Bug #1463784 reported by Maruti Kamat
20
This bug affects 3 people
Affects Status Importance Assigned to Milestone
networking-l2gw
Fix Released
Undecided
Ofer Ben-Yacov
neutron
Invalid
Wishlist
Unassigned

Bug Description

Currently, networking L2 gateway solution cannot be used with a DVR. If a virtual machine is in one subnet and the bare metal server is in another, then it makes sense to allow DVR configured on the compute node to route the traffic from the VM to the bare metal server.

Maruti Kamat (marutik)
summary: - Networking L2 Gateway does not work with DVR
+ [RFE] Networking L2 Gateway does not work with DVR
Maruti Kamat (marutik)
tags: added: rfe
Changed in networking-l2gw:
assignee: nobody → Ofer Ben-Yacov (ofer-benyacov)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to networking-l2gw (master)

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

Changed in networking-l2gw:
status: New → In Progress
Revision history for this message
Ofer Ben-Yacov (ofer-benyacov) wrote :

This is the error that we get in neutron CLI when we try to create L2 Gateway Connection with DVR enabled:

(neutron) l2-gateway-connection-create gw1 private --default-segmentation-id 10
L2 Agent for host '' could not be found.

Revision history for this message
Ofer Ben-Yacov (ofer-benyacov) wrote :

Stack Trace:

2016-05-31 11:15:32.859 ERROR oslo_messaging.rpc.dispatcher [req-581d49df-7a09-4d83-9a22-efa58234743a None None] Exception during message handling: L2 Agent for host '' could not be found.
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher Traceback (most recent call last):
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 138, in _dispatch_and_reply
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher incoming.message))
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 185, in _dispatch
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher return self._do_dispatch(endpoint, method, ctxt, args)
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher File "/usr/local/lib/python2.7/dist-packages/oslo_messaging/rpc/dispatcher.py", line 127, in _do_dispatch
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher result = func(ctxt, **new_args)
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher File "/opt/stack/networking-l2gw/networking_l2gw/services/l2gateway/ovsdb/data.py", line 51, in update_ovsdb_changes
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher self.ovsdb.update_ovsdb_changes(context, ovsdb_data)
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher File "/opt/stack/networking-l2gw/networking_l2gw/services/l2gateway/ovsdb/data.py", line 85, in update_ovsdb_changes
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher self._handle_l2pop(context, ovsdb_data.get('new_remote_macs'))
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher File "/opt/stack/networking-l2gw/networking_l2gw/services/l2gateway/ovsdb/data.py", line 312, in _handle_l2pop
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher agent_l2_pop_enabled = self._get_agent_by_mac(context, mac)
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher File "/opt/stack/networking-l2gw/networking_l2gw/services/l2gateway/ovsdb/data.py", line 280, in _get_agent_by_mac
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher agent_l2_pop_enabled = self._get_agent_details_by_host(context, host)
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher File "/opt/stack/networking-l2gw/networking_l2gw/services/l2gateway/ovsdb/data.py", line 302, in _get_agent_details_by_host
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher host=host)
2016-05-31 11:15:32.859 TRACE oslo_messaging.rpc.dispatcher L2AgentNotFoundByHost: L2 Agent for host '' could not be found.

Changed in neutron:
status: New → In Progress
importance: Undecided → Wishlist
tags: added: rfe-approved
removed: rfe
Revision history for this message
vikas (vikas-d-m) wrote :

@ofer, if a port belongs to a network, which is a part of l2-gateway-connection,
we are extracting host from the portbindings.HOST_ID in port attribute.
we are looking for L2 agent enabled with vxlan in the host, if not found we will raise an exception
saying "L2 Agent for host '' could not be found".

this code is introduced for l2gateway working with ESXi compute nodes [1], where the l2 agent is different from ovs agent.
[1] https://review.openstack.org/#/c/292816/

Revision history for this message
Ofer Ben-Yacov (ofer-benyacov) wrote :

@vikas, this should not be a problem.
the code looks for port with host which is None *AND* port['device_owner'] that is dvr, so VM ports on the compute node will still raise the exception.

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

Reviewed: https://review.openstack.org/312593
Committed: https://git.openstack.org/cgit/openstack/networking-l2gw/commit/?id=483109a9f3d68f47dc4f1a7701e82c9971e3e57c
Submitter: Jenkins
Branch: master

commit 483109a9f3d68f47dc4f1a7701e82c9971e3e57c
Author: Ofer Ben-Yacov <email address hidden>
Date: Wed May 4 18:01:45 2016 +0300

    enabling L2GW to work with DVR

    In DVR mode no host IP is associated with the L3 Agent because
    the router is configured on all the Compute Nodes and on the Network Node.
    To overcome this problem we look for L3 Agent that is running on the Network Node,
    resolve the hostname of the Network Node to get its IP address and use it to
    configure the destination IP needed for neutron port location information.

    Closes-Bug: 1463784

    Change-Id: I2595c714ede896baa7726ceec793de9a7a29e6b2

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

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

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

Reviewed: https://review.openstack.org/348122
Committed: https://git.openstack.org/cgit/openstack/networking-l2gw/commit/?id=379f84a0d74cdaf41412064147569f78a0032f90
Submitter: Jenkins
Branch: stable/mitaka

commit 379f84a0d74cdaf41412064147569f78a0032f90
Author: Ofer Ben-Yacov <email address hidden>
Date: Wed May 4 18:01:45 2016 +0300

    enabling L2GW to work with DVR

    In DVR mode no host IP is associated with the L3 Agent because
    the router is configured on all the Compute Nodes and on the Network Node.
    To overcome this problem we look for L3 Agent that is running on the Network Node,
    resolve the hostname of the Network Node to get its IP address and use it to
    configure the destination IP needed for neutron port location information.

    Closes-Bug: 1463784

    Change-Id: I2595c714ede896baa7726ceec793de9a7a29e6b2
    (cherry picked from commit 483109a9f3d68f47dc4f1a7701e82c9971e3e57c)

tags: added: in-stable-mitaka
Revision history for this message
Ihar Hrachyshka (ihar-hrachyshka) wrote :

I assume that can be closed on neutron side, l2gw seems to handle it on their side.

Revision history for this message
Swaminathan Vasudevan (swaminathan-vasudevan) wrote : RE: [Bug 1463784] Re: [RFE] Networking L2 Gateway does not work with DVR

Yes this can be closed.

Sent via the Samsung Galaxy S7 edge, an AT&T 4G LTE smartphone
-------- Original message --------From: Ihar Hrachyshka <email address hidden> Date: 3/9/17 12:55 PM (GMT-08:00) To: <email address hidden> Subject: [Bug 1463784] Re: [RFE] Networking L2 Gateway does not work with DVR
I assume that can be closed on neutron side, l2gw seems to handle it on
their side.

--
You received this bug notification because you are subscribed to a
duplicate bug report (1563879).
https://bugs.launchpad.net/bugs/1463784

Title:
  [RFE] Networking L2 Gateway does not work with DVR

Status in networking-l2gw:
  Fix Released
Status in neutron:
  In Progress

Bug description:
  Currently, networking L2 gateway solution cannot be used with a DVR.
  If a virtual machine is in one subnet and the bare metal server is in
  another, then it makes sense to allow DVR configured on the compute
  node to route the traffic from the VM to the bare metal server.

To manage notifications about this bug go to:
https://bugs.launchpad.net/networking-l2gw/+bug/1463784/+subscriptions

Revision history for this message
Armando Migliaccio (armando-migliaccio) wrote :

No worked required on the neutron side at this point.

Changed in neutron:
status: In Progress → Invalid
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.