我正在使用: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