← Back to team overview

yahoo-eng-team team mailing list archive

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

 

Public bug reported:

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

** Affects: neutron
     Importance: Undecided
         Status: New


** Tags: l3-ha

** Description changed:

  Reproduce steps:
  l3 agent mode:
-     network node:dvr_snat
-     compute node:dvr_no_external
+     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 mybe that for ha router, router cidrs should be seek from keepalived instance, not from device.
+ 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))
+     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

-- 
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:
  New

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


Follow ups