Route on public_interface gets lost when using nova-network

Bug #1179443 reported by Jesse Pretorius
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Expired
Undecided
Unassigned

Bug Description

Environment: Ubuntu 12.04.2 LTS, Folsom packages

When utilising nova-network on a public_interface that has no IP Address assigned on the compute node, the route defined on the interface is lost whenever the last floating IP is removed from the interface.

To replicate the issue, define the public_interface as a manual interface with the public network and default route applied as post-up commands. On ubuntu it would be in /etc/network/interfaces, something like this:

auto eth0
iface eth0 inet manual
  post-up route add -net xxx.yyy.zzz.0/23 eth0
  post-up route add default gw xxx.yyy.zzz.1 eth0

Then in /etc/nova/nova.conf there would be the line:

public_interface=eth0

When adding a floating IP to this interface, an ip address is added to the interface using 'ip addr add' by a combination of the following two files (on Ubuntu):

/usr/share/pyshared/nova/network/l3.py
/usr/share/pyshared/nova/network/linux_net.py

When the floating IP is removed from the interface, the same two files process the removal using 'ip addr del' and in doing so also result in the loss of the network and default routes. This can be replicated by simply adding an ip address on that interface using 'ip addr add', then 'ip addr del' for the same IP - the issuing 'route -n' or 'ip route' to confirm the route's demise.

In our environment where we are not allocating a public IP address to the compute host this results in the loss of connectivity for any instances with a floating IP as the default route is lost.

Tags: nova-network
description: updated
Jiajun Liu (ljjjustin)
Changed in nova:
assignee: nobody → Jiajun Liu (ljjjustin)
status: New → Confirmed
Revision history for this message
Jesse Pretorius (jesse-pretorius) wrote :

My hack to workaround this problem for now is documented here:
https://github.com/odyssey4me/nova-network/blob/folsom/files/default/l3.py.python-nova.2012.2.3-0ubuntu2~cloud0
https://github.com/odyssey4me/nova-network/blob/folsom/files/default/linux_net.py.python-nova.2012.2.3-0ubuntu2~cloud0

I'm happy to prepare this as a code submission, but would prefer comment on whether it's suitable before I do so.

Revision history for this message
Jiajun Liu (ljjjustin) wrote :

yes, all right.

Changed in nova:
assignee: Jiajun Liu (ljjjustin) → nobody
Changed in nova:
assignee: nobody → Jesse Pretorius (jesse-pretorius)
Changed in nova:
assignee: Jesse Pretorius (jesse-pretorius) → nobody
tags: added: nova-network
Revision history for this message
Markus Zoeller (markus_z) (mzoeller) wrote : Cleanup EOL bug report

This is an automated cleanup. This bug report has been closed because it
is older than 18 months and there is no open code change to fix this.
After this time it is unlikely that the circumstances which lead to
the observed issue can be reproduced.

If you can reproduce the bug, please:
* reopen the bug report (set to status "New")
* AND add the detailed steps to reproduce the issue (if applicable)
* AND leave a comment "CONFIRMED FOR: <RELEASE_NAME>"
  Only still supported release names are valid (LIBERTY, MITAKA, OCATA, NEWTON).
  Valid example: CONFIRMED FOR: LIBERTY

Changed in nova:
status: Confirmed → Expired
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.