我有我的服务器设置了几个公共IP地址,networkingconfiguration如下(与示例IP):
为eth0
\ - br0 - 1.1.1.2
| - [VM 1的eth0]
| | - 1.1.1.3
| \ - 1.1.1.4
\ - [VM 2的eth0]
\ - 1.1.1.5
我的问题是,如何为实际的物理服务器和虚拟机设置不同规则的iptables? 我不介意让虚拟机做自己的iptables,但是我希望br0拥有不同的规则。 现在,我只能让所有事情都完成,而不是所期望的行为(正如br0所显示的那样)。
谢谢!
由于您已经为br0分配了一个IP地址,它实际上是您的服务器的“真实”networking接口。 你可以在你的服务器上创buildiptables规则,不pipe你的networking接口是被命名为br0还是eth0。 也就是说,只要写你的服务器的防火墙iptables规则,就好像你的networking接口是普通的vanilla eth0(除了它被命名为br0)。
不必担心必须编写你的iptables规则来显式地允许stream量join到桥接br0的虚拟接口,因为(这是一个关键点), iptables规则不能明确地过滤或影响网桥上的stream量。 原因在于网桥在链路层(L2)上工作,而iptables在高层networking层(通常是L3和L4)上运行(大部分)。 一个可能有用的心理图像是:桥接function几乎完全像一个networking集线器,所有的桥接接口都被插入。
如果你想过滤通过桥梁的stream量,你应该看看ebtables ,但是你不太可能需要。 将网桥作为networking基础设施的一部分(如集线器或交换机)简单地对待,并为networking上的每个主机(无论是真实的还是虚拟的)创build一个iptables防火墙脚本,这是非常自然和方便的。