如何使 sysctl 网桥设置在重启后保留?

如何使 sysctl 网桥设置在重启后保留?

我正在设置一台笔记本电脑用于软件演示。该机器有 8GB RAM、Core i7 Intel CPU、128GB SSD,并运行 Ubuntu 12.04 LTS 64 位。该笔记本电脑用作 KVM 主机并运行几个 KVM 客户机。

所有此类客户机都使用virbr0默认桥接器。为了使它们能够使用多播相互通信,我在主机中添加了以下内容/etc/sysctl.conf,如下所示

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

随后man sysctl(8),我发布了以下内容:

sudo /sbin/sysctl -p /etc/sysctl.conf

我的理解是,这应该会使这些设置在重新启动后保持不变。我对其进行了测试,并惊讶地发现了以下内容:

root@sdn1 :/proc/sys/net/bridge# more *tables
::::::::::::::
bridge-nf-call-arptables
::::::::::::::
1
::::::::::::::
bridge-nf-call-ip6tables
::::::::::::::
1
::::::::::::::
bridge-nf-call-iptables
::::::::::::::
1

所有默认设置都将恢复!

是的。我可以使用一些笨拙的“解决方法”,例如将 放入/sbin/sysctl -p /etc/sysctl.conf主机/etc/rc.local,但我宁愿“正确执行”。我是否误解了手册页,或者我是否错过了什么?

谢谢任何提示。

-- 扎克

答案1

我在 Ubuntu 14.04.1 上也遇到了这个问题

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

重启时未设置!!!

我必须手动执行:

sudo brctl show

sudo sysctl -p

这样参数才设置好?!

这太令人沮丧了。我正在设置 HA 系统,需要在重启时设置 net.bridge.X!!!


所以我想我找到了一个解决方案......

看起来与 ufw 存在一些冲突。

编辑/etc/sysctl.conf并注释掉:

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

编辑/etc/ufw/sysctl.conf并将此行附加到末尾(请注意斜线,而不是点......):

net/bridge/bridge-nf-call-ip6tables = 0
net/bridge/bridge-nf-call-iptables = 0
net/bridge/bridge-nf-call-arptables = 0

重新启动机器,一切都按预期工作。

相关内容