我正在设置一台笔记本电脑用于软件演示。该机器有 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
重新启动机器,一切都按预期工作。