From: Michael Tremer Date: Tue, 14 Apr 2015 12:31:50 +0000 (+0000) Subject: ipv6: When auto-configuration is enabled, forwarding must be disabled X-Git-Tag: 007~31^2~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a4cd1796602e8ba287dd21031590aecd3260690c;p=network.git ipv6: When auto-configuration is enabled, forwarding must be disabled --- diff --git a/src/functions/functions.ipv6 b/src/functions/functions.ipv6 index 32ba81ae..55540527 100644 --- a/src/functions/functions.ipv6 +++ b/src/functions/functions.ipv6 @@ -27,6 +27,12 @@ function ipv6_device_autoconf_enable() { sysctl_set "net.ipv6.conf.${device}.accept_ra" 1 sysctl_set "net.ipv6.conf.${device}.autoconf" 1 + + log INFO "Enabled IPv6 auto-configuration on '${device}'" + + # Disable IPv6 forwarding which cannot be used when the + # device is using IPv6 auto-configuration. + ipv6_device_forwarding_disable "${device}" } function ipv6_device_autoconf_disable() { @@ -35,6 +41,30 @@ function ipv6_device_autoconf_disable() { sysctl_set "net.ipv6.conf.${device}.accept_ra" 0 sysctl_set "net.ipv6.conf.${device}.autoconf" 0 + + log INFO "Disabled IPv6 auto-configuration on '${device}'" + + # Enable IPv6 forwarding again + ipv6_device_forwarding_enable "${device}" + + # Automatically disable privacy extensions + ipv6_device_privacy_extensions_disable "${device}" +} + +function ipv6_device_forwarding_enable() { + local device="${1}" + + sysctl_set "net.ipv6.conf.${device}.forwarding" 1 + + log INFO "Enabled IPv6 forwarding on '${device}'" +} + +function ipv6_device_forwarding_disable() { + local device="${1}" + + sysctl_set "net.ipv6.conf.${device}.forwarding" 0 + + log INFO "Disabled IPv6 forwarding on '${device}'" } # Enable IPv6 RFC3041 privacy extensions if desired