Implement DVR-aware announcement of fixed IP's in neutron-dynamic-routing

Bug #1775250 reported by Ryan Tidwell
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
Wishlist
Ryan Tidwell

Bug Description

The current implementation of neutron-dynamic-routing is compatible with DVR, but is not optimized for DVR. It currently announces next-hops for all tenant subnets through the central router on the network node. Announcing next-hops via the FIP gateway on the compute node was never implemented due to the pre-requisite of having DVR fast-exit in place for packets to be routed through the FIP namespace properly. With DVR fast-exit now in place, it's time to consider adding DVR-aware /32 and/or /128 announcements for fixed IP's using the FIP gateway as the next-hop.

Changed in neutron:
importance: Undecided → Wishlist
Miguel Lavalle (minsel)
tags: added: rfe-confirmed
removed: rfe
Revision history for this message
Ryan Tidwell (ryan-tidwell) wrote :

Just adding a little more context:

This was initially within the scope of the initial implementation for mitaka. However, we realized that DVR fast-exit was required to actually have packets forwarded through the FIP namespace. I've had the code for this floating around for a while but never proposed it for review since it seemed pointless to push code that would just cause network traffic to black-hole. The changes I have (and am close to deploying internally) involve:

1. adding an attribute to the bgp-speaker extension to allow toggling of DVR-aware announcements
2. adding a method to https://github.com/openstack/neutron-dynamic-routing/blob/master/neutron_dynamic_routing/db/bgp_db.py for looking up DVR fixed IP routes
3. adding a line here https://github.com/openstack/neutron-dynamic-routing/blob/master/neutron_dynamic_routing/db/bgp_db.py#L478 to include the DVR fixed IP routes
4. subscribing to PORT_UPDATE events to be able to push a route update to the appropriate agents when a live migration occurs

Obviously we don't have to hash out the details here and what I have right now will be iterated on, but I just wanted to share my sense of the scope of the changes involved.

Revision history for this message
Miguel Lavalle (minsel) wrote :

@Ryan,

Thanks for the additional context. It seems like a sensible next step. We will discuss this RFE in the next drivers meeting.

I am assuming you will propose the same code you will be testing in your employer's internal deployment, correct?

tags: added: rfe-triaged
removed: rfe-confirmed
Revision history for this message
Ryan Tidwell (ryan-tidwell) wrote :

Correct. The first patch set to be proposed would be what I've posted internally. Obviously that is only a starting point and can be iterated and improved upon based on reviewer feedback.

Revision history for this message
Miguel Lavalle (minsel) wrote :

This RFE was reviewed and approved during today's drivers meeting

tags: added: rfe-approved
removed: rfe-triaged
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to neutron-dynamic-routing (master)

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

Changed in neutron:
assignee: nobody → Ryan Tidwell (ryan-tidwell)
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to neutron-dynamic-routing (master)

Reviewed: https://review.openstack.org/581098
Committed: https://git.openstack.org/cgit/openstack/neutron-dynamic-routing/commit/?id=69e9888b0159ba3c9af09e1eceb48df76e4be839
Submitter: Zuul
Branch: master

commit 69e9888b0159ba3c9af09e1eceb48df76e4be839
Author: Ryan Tidwell <email address hidden>
Date: Tue May 29 12:40:30 2018 -0500

    Implement DVR-aware fixed IP lookups

    This change adds DVR-aware announcements for routable fixed IP's
    to be sent, thereby routing traffic directly to the appropriate
    compute node instead of the centralized router on the network node.

    Change-Id: I3aecdd7979dba97dab12a6550655c90a57f56cb3
    Partial-Bug: #1775250

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

Fix proposed to branch: stable/rocky
Review: https://review.opendev.org/686225

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

Reviewed: https://review.opendev.org/686225
Committed: https://git.openstack.org/cgit/openstack/neutron-dynamic-routing/commit/?id=032486a3a4a3279c824b5e78f7c13c6086a680d4
Submitter: Zuul
Branch: stable/rocky

commit 032486a3a4a3279c824b5e78f7c13c6086a680d4
Author: Ryan Tidwell <email address hidden>
Date: Tue May 29 12:40:30 2018 -0500

    Implement DVR-aware fixed IP lookups

    This change adds DVR-aware announcements for routable fixed IP's
    to be sent, thereby routing traffic directly to the appropriate
    compute node instead of the centralized router on the network node.

    Conflicts:
        neutron_dynamic_routing/db/bgp_db.py

    Change-Id: I3aecdd7979dba97dab12a6550655c90a57f56cb3
    Partial-Bug: #1775250
    (cherry picked from commit 69e9888b0159ba3c9af09e1eceb48df76e4be839)

tags: added: in-stable-rocky
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.