aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2011-04-19 15:45:18 +0200
committerHarald Hoyer <harald@redhat.com>2011-04-19 16:03:02 +0200
commitca41cf92981b079cbebffb59a508556f4d1f9c28 (patch)
tree9b500485e8fb908ff352c8885f5acf5035ec165b
parentac07916b8f0a84c62fce6c1a4094fd80caa4a687 (diff)
downloadinitscripts-ca41cf92981b079cbebffb59a508556f4d1f9c28.tar
initscripts-ca41cf92981b079cbebffb59a508556f4d1f9c28.tar.gz
initscripts-ca41cf92981b079cbebffb59a508556f4d1f9c28.tar.bz2
initscripts-ca41cf92981b079cbebffb59a508556f4d1f9c28.tar.xz
initscripts-ca41cf92981b079cbebffb59a508556f4d1f9c28.zip
fix sysctl calls with VLAN (mostly breaking IPv6)
[Bill Nottingham <notting@redhat.com>: updated patch] sysctl uses "." as the path delimiter. VLAN uses "." as the id delimiter. initscripts does absolutely nothing to resolve this conflict. The end result is that all sysctl calls on VLAN if:s will just fail (silently for extra bonus as the scripts pipe to /dev/null). With legacy IP this isn't a big deal as the sysctl use is very sparse. For IPv6 however, the shit really hits the fan as you can't even disable address autoconfiguration without sysctl. https://bugzilla.redhat.com/show_bug.cgi?id=665601
-rwxr-xr-xsysconfig/network-scripts/ifdown-ipv66
-rwxr-xr-xsysconfig/network-scripts/ifup-eth2
-rwxr-xr-xsysconfig/network-scripts/ifup-ipv68
-rw-r--r--sysconfig/network-scripts/network-functions1
-rw-r--r--sysconfig/network-scripts/network-functions-ipv610
5 files changed, 14 insertions, 13 deletions
diff --git a/sysconfig/network-scripts/ifdown-ipv6 b/sysconfig/network-scripts/ifdown-ipv6
index c73b65c2..792e1743 100755
--- a/sysconfig/network-scripts/ifdown-ipv6
+++ b/sysconfig/network-scripts/ifdown-ipv6
@@ -69,9 +69,9 @@ if [ $? != 0 -a $? != 11 ]; then
fi
# Switch some sysctls to secure mode
-ipv6_exec_sysctl -w net.ipv6.conf.$DEVICE.forwarding=0 >/dev/null 2>&1
-ipv6_exec_sysctl -w net.ipv6.conf.$DEVICE.accept_ra=0 >/dev/null 2>&1
-ipv6_exec_sysctl -w net.ipv6.conf.$DEVICE.accept_redirects=0 >/dev/null 2>&1
+ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.forwarding=0 >/dev/null 2>&1
+ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.accept_ra=0 >/dev/null 2>&1
+ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.accept_redirects=0 >/dev/null 2>&1
# Test status of tun6to4 device
ipv6_test_device_status tun6to4
diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth
index fa0f91b2..b3628e77 100755
--- a/sysconfig/network-scripts/ifup-eth
+++ b/sysconfig/network-scripts/ifup-eth
@@ -280,7 +280,7 @@ else
fi
if [ -n "$SRCADDR" ]; then
- sysctl -w "net.ipv4.conf.${REALDEVICE}.arp_filter=1" >/dev/null 2>&1
+ sysctl -w "net.ipv4.conf.${SYSCTLDEVICE}.arp_filter=1" >/dev/null 2>&1
fi
# update ARP cache of neighboring computers
diff --git a/sysconfig/network-scripts/ifup-ipv6 b/sysconfig/network-scripts/ifup-ipv6
index 1dc14560..24a2e307 100755
--- a/sysconfig/network-scripts/ifup-ipv6
+++ b/sysconfig/network-scripts/ifup-ipv6
@@ -127,9 +127,9 @@ else
ipv6_local_auto=0
fi
fi
-ipv6_exec_sysctl -w net.ipv6.conf.$DEVICE.forwarding=$ipv6_local_forwarding >/dev/null 2>&1
-ipv6_exec_sysctl -w net.ipv6.conf.$DEVICE.accept_ra=$ipv6_local_auto >/dev/null 2>&1
-ipv6_exec_sysctl -w net.ipv6.conf.$DEVICE.accept_redirects=$ipv6_local_auto >/dev/null 2>&1
+ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.forwarding=$ipv6_local_forwarding >/dev/null 2>&1
+ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.accept_ra=$ipv6_local_auto >/dev/null 2>&1
+ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.accept_redirects=$ipv6_local_auto >/dev/null 2>&1
# Set IPv6 MTU, if given
if [ -n "$IPV6_MTU" ]; then
@@ -145,7 +145,7 @@ fi
# Enable IPv6 RFC3041 privacy extensions if desired
if [ "$IPV6_PRIVACY" = "rfc3041" ]; then
- ipv6_exec_sysctl -w net.ipv6.conf.$DEVICE.use_tempaddr=2 >/dev/null 2>&1
+ ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.use_tempaddr=2 >/dev/null 2>&1
if [ $? -ne 0 ]; then
echo $"Cannot enable IPv6 privacy method '$IPV6_PRIVACY', not supported by kernel"
fi
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
index 7469092c..6ae73706 100644
--- a/sysconfig/network-scripts/network-functions
+++ b/sysconfig/network-scripts/network-functions
@@ -121,6 +121,7 @@ source_config ()
[ -z "$DEVICETYPE" ] && DEVICETYPE=`echo ${DEVICE} | sed "s/[0-9]*$//"`
[ -z "$REALDEVICE" -a -n "$PARENTDEVICE" ] && REALDEVICE=$PARENTDEVICE
[ -z "$REALDEVICE" ] && REALDEVICE=${DEVICE%%:*}
+ [ -z "$SYSCTLDEVICE" ] && SYSCTLDEVICE=${REALDEVICE/.//}
if [ "${DEVICE}" != "${REALDEVICE}" ]; then
ISALIAS=yes
else
diff --git a/sysconfig/network-scripts/network-functions-ipv6 b/sysconfig/network-scripts/network-functions-ipv6
index 33f8c59d..f9cb5500 100644
--- a/sysconfig/network-scripts/network-functions-ipv6
+++ b/sysconfig/network-scripts/network-functions-ipv6
@@ -1138,9 +1138,9 @@ ipv6_add_tunnel_device() {
fi
# Set sysctls proper (regardless "default")
- ipv6_exec_sysctl -w net.ipv6.conf.$device.forwarding=1 >/dev/null 2>&1
- ipv6_exec_sysctl -w net.ipv6.conf.$device.accept_ra=0 >/dev/null 2>&1
- ipv6_exec_sysctl -w net.ipv6.conf.$device.accept_redirects=0 >/dev/null 2>&1
+ ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.forwarding=1 >/dev/null 2>&1
+ ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.accept_ra=0 >/dev/null 2>&1
+ ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.accept_redirects=0 >/dev/null 2>&1
if [ -n "$addressipv6local" ]; then
# Setup P-t-P address
@@ -1334,13 +1334,13 @@ ipv6_set_mtu() {
ipv6_test testonly || return 2
# Check whether key exists
- ipv6_exec_sysctl net.ipv6.conf.$device.mtu >/dev/null 2>&1
+ ipv6_exec_sysctl net.ipv6.conf.$SYSCTLDEVICE.mtu >/dev/null 2>&1
if [ $? -ne 0 ]; then
return 3
fi
# Set value
- ipv6_exec_sysctl -w net.ipv6.conf.$device.mtu=$ipv6_mtu >/dev/null 2>&1
+ ipv6_exec_sysctl -w net.ipv6.conf.$SYSCTLDEVICE.mtu=$ipv6_mtu >/dev/null 2>&1
return 0
}