When stopping a specific daemon, _all_ routes are flushed
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
quagga (Debian) |
Fix Released
|
Unknown
|
|||
quagga (Ubuntu) |
Fix Released
|
Wishlist
|
Unassigned |
Bug Description
Binary package hint: quagga
This misbehaviour just bit me:
root@fwtest1:~# /etc/init.d/quagga stop ospf6d
Stopping Quagga daemons (prio:0): ospf6d.
Removing all routes made by zebra.
So I'm stopping ospf6d only, but _all_ routes, including the ones installed by still-running processes such as bgpd, ripd, and so on, are removed from the kernel's routing table. That can't be right.
I suggest applying the following patch so that the flushing will only happen if all of the Quagga daemons are stopped:
--- /etc/init.d/quagga 2009-05-06 23:47:31.000000000 +0200
+++ /tmp/quagga.new 2009-07-27 10:30:44.000000000 +0200
@@ -235,8 +235,10 @@
# Stop all daemons at level '0' or 'stop'
stop_prio 0 $2
- echo "Removing all routes made by zebra."
- ip route flush proto zebra
+ if [ -z "$2" ]; then
+ echo "Removing all routes made by zebra."
+ ip route flush proto zebra
+ fi
;;
restart|
Tore
Changed in quagga (Debian): | |
status: | Unknown → New |
Changed in quagga (Debian): | |
status: | New → Fix Released |
Thanks for the patch however what happens when you stop all the domains that you are running for quagga, will you still have routed lying around?
Thanks
chuck