← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1740450] Re: Restarting l3 agent results in lost of centralized fip in snat ns

 

Reviewed:  https://review.openstack.org/555952
Committed: https://git.openstack.org/cgit/openstack/neutron/commit/?id=64028a389ff904f15e471b44bd5b3979c5db2cd2
Submitter: Zuul
Branch:    master

commit 64028a389ff904f15e471b44bd5b3979c5db2cd2
Author: Swaminathan Vasudevan <SVasudevan@xxxxxxxx>
Date:   Fri Mar 23 15:11:13 2018 -0700

    DVR: Restarting l3 agent loses centralized fip ip on qg-interface
    
    When l3 agent is restarted on a dvr_snat node that is configured
    for L3_HA and has a centralized FloatingIP configured to the
    qg-interface in the snat_namespace, that FloatingIP is not
    re-configured to the qg-interface when agent starts.
    
    The reason being, the cidr is not being retrieved from the
    keepalived instance and only retrieved from the
    centralized_fip_cidr_set.
    
    If 'L3_HA' is configured we need to retrieve it from the keepalived
    instance.
    
    This patch fixes the problem by retrieving the cidrs from the
    keepalived instance for the qg-interface.
    
    Change-Id: I848a20d06e2d344503a4cb1776dbe2617d91bc41
    Closes-Bug: #1740450


** Changed in: neutron
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1740450

Title:
  Restarting l3 agent results in lost of centralized fip in snat ns

Status in neutron:
  Fix Released

Bug description:
  Reproduce steps:
  l3 agent mode:
      network node:dvr_snat
      compute node:dvr_no_external
  1、Create dvr+ha.
  2、Set router gateway and add router interface.
  3、Create vm and associate fip.
  4、Restart l3 agent.
  5、Restart l3 agent again.

  After step 3, fip can be found in snat ns on network node.
  After step 4, fip can not be found in snat ns on network node.
  After step 5, fip can be found again in snat ns on network node.

  The reason may be that for ha router, router cidrs should be seek from keepalived instance, not from device.
  Adding following code in [1] can solve this problem:
      def _get_centralized_fip_cidr_set(self, device):
          """Returns the fip_cidr set for centralized floatingips."""
          return set(self._get_cidrs_from_keepalived(device.name))

  [1]https://github.com/openstack/neutron/blob/master/neutron/agent/l3/dvr_edge_ha_router.py

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1740450/+subscriptions


References