add a new eventscript : 99.routing that is used to add static routes to
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Tue, 7 Oct 2008 00:03:30 +0000 (11:03 +1100)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Tue, 7 Oct 2008 00:03:30 +0000 (11:03 +1100)
interfaces when they are activated (an ip address is added during
takeip)

config/events.d/99.routing [new file with mode: 0755]

diff --git a/config/events.d/99.routing b/config/events.d/99.routing
new file mode 100755 (executable)
index 0000000..dd0a6c3
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+# script to add entries to the routing table after we have performed a
+# take ip event
+# (when we do a "releaseip" event and remove an ip address from an interface
+#  the kernel might automatically remove associated entries from
+#  the routing table. This is where we add them back)
+#
+# Routes to add are defined in /etc/ctdb/static-routes.
+# Syntax is :
+# IFACE NET/MASK GATEWAY
+#
+# Example
+# bond1 10.3.3.0/24 10.0.0.1
+
+. $CTDB_BASE/functions
+loadconfig ctdb
+
+[ -f $CTDB_BASE/static-routes ] || {
+    exit 0
+}
+
+cmd="$1"
+shift
+PATH=/usr/bin:/bin:/usr/sbin:/sbin:$PATH
+
+case $cmd in 
+     takeip)
+       iface=$1
+       cat $CTDB_BASE/static-routes | egrep "^$iface " | while read IFACE DEST GW; do
+               ip route add $DEST via $GW 2>/dev/null >/dev/null
+       done
+
+       ;;
+
+esac
+
+exit 0