我一直在 Centos 6.4 上研究 KVM 虚拟机,但我的虚拟机上没有互联网连接,我发现了一些奇怪的事情:
启动机器后,iptables 在 FORWARD 链中有规则,允许流量通过虚拟机,一切正常。然而,当我运行时service iptables restart
,它看起来像是从/etc/sysconfig/iptables
(拒绝所有转发的默认设置)中提取配置规则,因此,我已经被降级为要么在物理主机上完全删除防火墙,要么重新启动以添加转发规则,所以它又起作用了。
编辑:
事实上,我可以自己修改防火墙规则以允许它,但这不是这个问题的重点。我更关注以下问题#1:
我的问题是:
- 在什么时候(或通过什么机制)添加这些 FORWARD 规则?
- 如何在不重新启动计算机的情况下恢复 FORWARD 规则?
坦率地说,我什至不知道从哪里开始寻找这个问题。我发现这一页上面说要修改/etc/sysctl.conf
以下变量,据称这些变量会使 netfilter 忽略桥接连接的流量:
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
问题是我的sysctl.conf
已经这样设置了,而 netfilter 仍然做它的事情,愉快地阻止虚拟机的所有内容。