With flatDHCP, nova-network deletes default route, then deletes the ip, puts the ip on bridge and adds default route. But then it deletes the IP on the bridge interface and re-adds the same IP to the same interface. Problem is that once this IP is deleted, route is deleted too. By just adding the IP back again, default route isn't recovered. Example:
2011-09-26 13:50:06,787 DEBUG nova.linux_net [-] Starting Bridge interface for eth0 from (pid=909) ensure_bridge /usr/lib/python2.7/dist-packages/nova/network/linux_net.py:919
2011-09-26 13:50:06,787 DEBUG nova.utils [-] Running cmd (subprocess): sudo brctl addbr br100 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:06,854 DEBUG nova.utils [-] Running cmd (subprocess): sudo brctl setfd br100 0 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:06,903 DEBUG nova.utils [-] Running cmd (subprocess): sudo brctl stp br100 off from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:06,960 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip link set br100 up from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:06,989 DEBUG nova.utils [-] Running cmd (subprocess): sudo brctl addif br100 eth0 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,010 DEBUG nova.utils [-] Running cmd (subprocess): sudo route -n from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,029 DEBUG nova.utils [-] Running cmd (subprocess): sudo route del default gw 192.168.69.1 dev eth0 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,060 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr show dev eth0 scope global from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,081 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr del 192.168.69.107/24 brd 192.168.69.255 scope global dev eth0 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,102 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr add 192.168.69.107/24 brd 192.168.69.255 scope global dev br100 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,122 DEBUG nova.utils [-] Running cmd (subprocess): sudo route add default gw 192.168.69.1 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,134 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr show dev br100 scope global from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,156 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr del 192.168.69.107/24 brd 192.168.69.255 scope global dev br100 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,166 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr add 10.10.0.1/24 brd 10.10.0.255 dev br100 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
2011-09-26 13:50:07,191 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr add 192.168.69.107/24 brd 192.168.69.255 scope global dev br100 from (pid=909) execute /usr/lib/python2.7/dist-packages/nova/utils.py:165
Look at the last five lines.
I can confirm that proposed fix solves the problem for me:
2011-09-26 14:05:24,098 DEBUG nova.linux_net [-] Starting Bridge interface for eth0 from (pid=890) ensure_bridge /usr/lib/ python2. 7/dist- packages/ nova/network/ linux_net. py:931 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- p nova/utils. py:165 python2. 7/dist- nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- packages/ nova/utils. py:165 python2. 7/dist- nova/utils. py:165 python2. 7/dist- packages/ n...
2011-09-26 14:05:24,098 DEBUG nova.utils [-] Running cmd (subprocess): sudo brctl addbr br100 from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,108 DEBUG nova.utils [-] Running cmd (subprocess): sudo brctl setfd br100 0 from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,138 DEBUG nova.utils [-] Running cmd (subprocess): sudo brctl stp br100 off from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,169 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip link set br100 up from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,191 DEBUG nova.utils [-] Running cmd (subprocess): sudo brctl addif br100 eth0 from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,203 DEBUG nova.utils [-] Running cmd (subprocess): sudo route -n from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,214 DEBUG nova.utils [-] Running cmd (subprocess): sudo route del default gw 192.168.69.1 dev eth0 from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,229 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr show dev eth0 scope global from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,243 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr del 192.168.69.107/24 brd 192.168.69.255 scope global dev eth0 from (pid=890) execute /usr/lib/
ackages/
2011-09-26 14:05:24,282 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr add 192.168.69.107/24 brd 192.168.69.255 scope global dev br100 from (pid=890) execute /usr/lib/
packages/
2011-09-26 14:05:24,292 DEBUG nova.utils [-] Running cmd (subprocess): sudo route add default gw 192.168.69.1 from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,302 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr show dev br100 scope global from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,313 DEBUG nova.utils [-] Running cmd (subprocess): sudo route -n from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,325 DEBUG nova.utils [-] Running cmd (subprocess): sudo route del default gw 192.168.69.1 dev br100 from (pid=890) execute /usr/lib/
2011-09-26 14:05:24,353 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr del 192.168.69.107/24 brd 192.168.69.255 scope global dev br100 from (pid=890) execute /usr/lib/
packages/
2011-09-26 14:05:24,374 DEBUG nova.utils [-] Running cmd (subprocess): sudo ip addr add 10.10.0.1/24 brd 10.10.0.255 dev br100 from (pid=890) execute /usr/lib/