Route on public_interface gets lost when using nova-network
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/
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_
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/
/usr/share/
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.
description: | updated |
Changed in nova: | |
assignee: | nobody → Jiajun Liu (ljjjustin) |
status: | New → Confirmed |
Changed in nova: | |
assignee: | nobody → Jesse Pretorius (jesse-pretorius) |
Changed in nova: | |
assignee: | Jesse Pretorius (jesse-pretorius) → nobody |
tags: | added: nova-network |
My hack to workaround this problem for now is documented here: /github. com/odyssey4me/ nova-network/ blob/folsom/ files/default/ l3.py.python- nova.2012. 2.3-0ubuntu2~ cloud0 /github. com/odyssey4me/ nova-network/ blob/folsom/ files/default/ linux_net. py.python- nova.2012. 2.3-0ubuntu2~ cloud0
https:/
https:/
I'm happy to prepare this as a code submission, but would prefer comment on whether it's suitable before I do so.