diff options
author | Bill Nottingham <notting@redhat.com> | 2002-03-11 22:10:08 +0000 |
---|---|---|
committer | Bill Nottingham <notting@redhat.com> | 2002-03-11 22:10:08 +0000 |
commit | 83c5f7d06c0bcb45a71c3ccc3f513903d38242c2 (patch) | |
tree | beee53d8b6c6f263afe5e626d00e2fe4f25d6ff4 /sysconfig/network-scripts | |
parent | 29b25f0b3f86cf0fa72bb1fc24cd99f5b96cd12c (diff) | |
download | initscripts-83c5f7d06c0bcb45a71c3ccc3f513903d38242c2.tar initscripts-83c5f7d06c0bcb45a71c3ccc3f513903d38242c2.tar.gz initscripts-83c5f7d06c0bcb45a71c3ccc3f513903d38242c2.tar.bz2 initscripts-83c5f7d06c0bcb45a71c3ccc3f513903d38242c2.tar.xz initscripts-83c5f7d06c0bcb45a71c3ccc3f513903d38242c2.zip |
initial support for setting source addresses, for LVS
Diffstat (limited to 'sysconfig/network-scripts')
-rwxr-xr-x | sysconfig/network-scripts/ifup | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup index 012f982e..604757d3 100755 --- a/sysconfig/network-scripts/ifup +++ b/sysconfig/network-scripts/ifup @@ -210,13 +210,23 @@ else else SCOPE= fi - + + if [ -n "$SRCADDR" ]; then + SRC="src $SRCADDR" + else + SRC= + fi + if ! LC_ALL=C ip addr ls ${REALDEVICE} | grep -q "${IPADDR}/${PREFIX}" ; then if ! ip addr add ${IPADDR}/${PREFIX} \ brd ${BROADCAST:-+} dev ${REALDEVICE} ${SCOPE} label ${DEVICE}; then echo $"Error adding address ${IPADDR} for ${DEVICE}." fi fi + + if [ -n "$SRCADDR" ]; then + sysctl -w "net.ipv4.conf.${REALDEVICE}.arp_filter=1" >/dev/null 2>&1 + fi # update ARP cache of neighboring computers arping -q -A -c 1 -I ${REALDEVICE} ${IPADDR} @@ -225,16 +235,16 @@ else # Add a route for the subnet. Replace any existing route. if [ "${ISALIAS}" = no ]; then - ip route replace ${NETWORK}/${PREFIX} dev ${REALDEVICE} + ip route replace ${NETWORK}/${PREFIX} ${SRC} dev ${REALDEVICE} fi # Set a default route. if [ -z "${GATEWAYDEV}" -o "${GATEWAYDEV}" = "${REALDEVICE}" ]; then # set up default gateway if [ -n "${GATEWAY}" -a "`ipcalc --network ${GATEWAY} ${NETMASK} 2>/dev/null`" = "NETWORK=${NETWORK}" ]; then - ip route add default via ${GATEWAY} + ip route add default via ${GATEWAY} ${SRC} elif [ "${GATEWAYDEV}" = "${DEVICE}" ]; then - ip route add default dev ${REALDEVICE} + ip route add default ${SRC} dev ${REALDEVICE} fi fi fi |