@@ -50,13 +50,16 @@ ip_set() {
dhcp|dhcp-noaddr|stateless|static)
[[ -d "/proc/sys/net/ipv6" ]] || modprobe ipv6
sysctl -q -w "net.ipv6.conf.$interface_sysctl.disable_ipv6=0"
- [[ $IP6 == "static" ]]
- sysctl -q -w "net.ipv6.conf.$interface_sysctl.accept_ra=$?"
+ if [[ $IP6 == "static" ]]; then
+ sysctl -q -w "net.ipv6.conf.$interface_sysctl.accept_ra=0"
+ else # Accept router advertisements regardless of the forwarding setting
+ sysctl -q -w "net.ipv6.conf.$interface_sysctl.accept_ra=2"
+ fi
;;
no)
[[ -d "/proc/sys/net/ipv6" ]] && sysctl -q -w "net.ipv6.conf.$interface_sysctl.disable_ipv6=1"
;;
- "") # undefined IP6 does not prevent RA's from being received -> nop
+ "") # Having IP6= unset does not prevent router advertisements from being received
;;
*)
report_error "IP6 must be 'dhcp', 'dhcp-noaddr', 'stateless', 'static' or 'no'"