Linux-OPENSUSE 重启后sysctl.conf中ipv6相关配置丢失

Linux-OPENSUSE 重启后sysctl.conf中ipv6相关配置丢失

我正在使用:SUSE Linux Enterprise Server 11 (x86_64) VERSION = 11 PATCHLEVEL = 1

我添加了以下参数/etc/sysctl.conf

net.ipv6.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

冉:

sysctl -p

并通过以下方式检查了值:

/proc/sys/net/ipv4/conf/all/accept_redirects
0

当我重新启动机器时,文件系统'0'又变回了:'1'/proc

cat /proc/sys/net/ipv4/conf/all/accept_redirects
1

sysctl.conf仍有:

net.ipv6.conf.default.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

我已检查以下链接:

Bug 807257 - SuSeFirewall reverts to default sysctl network related settings
http://strugglers.net/~andy/blog/2011/09/04/linux-ipv6-router-advertisements-and-forwarding/
http://marc.info/?l=linux-kernel&m=123617372002934&w=2
http://serverfault.com/questions/270201/sysctl-conf-not-running-on-boot
https://bbs.archlinux.org/viewtopic.php?id=167678
https://bugs.launchpad.net/ubuntu/+source/procps/+bug/50093
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=654585
http://archlinuxarm.org/forum/viewtopic.php?f=9&t=2527
https://bugzilla.novell.com/show_bug.cgi?id=539869

不幸的是,这些链接没有帮助,因为 我的机器中没有这些链接引用的/etc/sysctl.d文件。/etc/init.d/procps

我想知道是什么原因导致/proc/sys/net/ipv6/conf/all/accept_redirects恢复到'1'

谢谢。

答案1

我在 SLES11 SP1 上也看到了这个问题,但在 SP3 上没有看到。

似乎在加载 ipv6 内核模块和在启动期间处理 /etc/sysctl.conf(/etc/init.d/boot.sysctl)之间可能存在竞争条件。否则,ipv6 模块可能无法加载,直到 /etc/init.d/boot.ipconfig 脚本运行(在 boot.sysctl 之后)。有趣的是,这些脚本的顺序在 SP1 和 SP3 中是相同的,尽管在 SP3 上一切正常。

如果您在此 boot.sysctl 中插入“modprobe ipv6”,则 ipv6 设置将按预期保留:

        echo -n "Setting current sysctl status from /etc/sysctl.conf"
        # Force ipv6 module to load
        modprobe ipv6
        sysctl -e -q -p /etc/sysctl.conf

相关内容