如何使sysctl网桥设置在重新启动后保持不变?

我正在设置一个用于软件演示目的的笔记本。 该机具有8GB内存,Core i7 Intel CPU,128GB SSD,运行Ubuntu 12.04 LTS 64bit。 笔记本电脑用作KVM主机,运行less数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 

我的理解是,这应该使这些设置在重新启动时保持。 我testing了一下,惊奇的发现了以下几点:

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

所有的默认值都回来了!

是。 我可以使用一些kludgy“绕过”,比如将/sbin/sysctl -p /etc/sysctl.conf放入主机的/etc/rc.local但我宁愿“正确地做”。 我误解了手册页,还是有什么我错过了?

感谢任何提示。

– 扎克

我在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

只有这样才能设置参数?!

这太令人沮丧了。 我正在build立一个HA系统,我需要重新启动net.bridge.X设置!


所以我想我find了一个解决scheme…

看来和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 

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