[Linux-cluster] lack of IP collision check in ip.sh
Antal Ferenc
Antal.Ferenc at ulx.hu
Thu Oct 15 13:53:40 UTC 2009
Hi,
/usr/share/cluster/ip.sh in rgmanager-2.0.46-1.el5 does not check
presence of the IP address on the network before it brings up the IP
address. There is a possibility when IP address remains up on nodeA and
IP resource sets the same IP address on nodeB during a failover causing
IP collision on the network.
I opened a bugzilla case about it with 526647 bugID.
I would like to know opinions about this. Have you experienced problems
regarding this?
Does it worth to fix it?
I am thinking about this change in it:
--- /usr/share/cluster/ip.sh.orig 2009-06-11 20:44:31.000000000 +0000
+++ /usr/share/cluster/ip.sh 2009-10-15 10:34:39.000000000 +0000
@@ -652,6 +652,13 @@
ocf_log info "Removing IPv6 address $addr from $dev"
fi
+ if [ "$1" = "add" ]; then
+ ocf_log notice "Pinging addr ${addr%%/*} from dev $dev"
+ if ping_check inet6 ${addr%%/*} $dev; then
+ ocf_log err "IPv6 address collision ${addr%%/*}"
+ return 1
+ fi
+ fi
/sbin/ip -f inet6 addr $1 dev $dev $addr
[ $? -ne 0 ] && return 1
@@ -722,6 +729,13 @@
ocf_log info "Removing IPv4 address $addr from $dev"
fi
+ if [ "$1" = "add" ]; then
+ ocf_log notice "Pinging addr ${addr%%/*} from dev $dev"
+ if ping_check inet ${addr%%/*} $dev; then
+ ocf_log err "IPv4 address collision ${addr%%/*}"
+ return 1
+ fi
+ fi
/sbin/ip -f inet addr $1 dev $dev $addr
[ $? -ne 0 ] && return 1
Thanks in advance, Ferenc
More information about the Linux-cluster
mailing list