grml-sniff: disable IPv6 to avoid neighbor solicitation/multicast traffic
[grml-network.git] / sbin / grml-sniff
index cf41833..cbb8ec1 100755 (executable)
@@ -16,18 +16,13 @@ usage_info()
    einfo "Configure via $CONFIG_FILE - see man 8 grml-sniff" ; eend 0
 }
 
-if ! [ -r "$CONFIG_FILE" ] ; then
-  eerror "$CONFIG_FILE could not be read."
-  exit 1
-fi
-
-. "$CONFIG_FILE"
-
-if [ -z "$BRIDGE_DEVICES" ] ; then
-   eerror "Bridge devices (\$BRIDGE_DEVICES) not set in $CONFIG_FILE"
-   exit 1
+if [ -r "$CONFIG_FILE" ] ; then
+  . "$CONFIG_FILE"
+else
+  ewarn "Could not read $CONFIG_FILE"
 fi
 
+# defaults if unconfigured
 [ -n "$BRCTL" ]          || BRCTL='brctl'
 [ -n "$BRIDGE_NAME" ]    || BRIDGE_NAME='br0'
 [ -n "$BRIDGE_DEVICES" ] || BRIDGE_DEVICES='eth0 eth1'
@@ -50,6 +45,10 @@ case "$1" in
         check4root || exit 1
         einfo "Starting sniffing setup"
         eindent
+
+            einfo "Disabling IPv6 to avoid neighbor solicitation/multicast traffic"
+            echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6
+
             einfo "Creating bridge device"
             brctl addbr "$BRIDGE_NAME"
             eend $?
@@ -103,6 +102,9 @@ case "$1" in
             ifconfig "$BRIDGE_NAME" down || /bin/true
             brctl delbr "$BRIDGE_NAME"
             eend $?
+
+            einfo "Re-enabling IPv6"
+            echo 0 > /proc/sys/net/ipv6/conf/all/disable_ipv6
         eoutdent
    ;;