eth0 上的多个 IP,桥接至虚拟机和路由

eth0 上的多个 IP,桥接至虚拟机和路由

现在的情况:

我有一台运行 3 个虚拟机的主机。一个 IP 用于 eth0 (xxx.xxx.xxx.239),另一个用于 eth0:1 (yyy.yyy.yyy.35)。这对我来说没问题...

Host (eth0) (xxx.xxx.xxx.239) | 
                              | <- (virbr0) -> |-- VM1 (10.0.0.21)
                                               |-- VM2 (10.0.0.22)
                                               |-- VM3 (10.0.0.23)

...但我想要的是通过一个接口上的外部 IP(yyy.yyy.yyy.35)第二个(10.0.0.23)用于内部目的的接口

Host (eth0) (xxx.xxx.xxx.239) | 
                              | <- (virbr0) -> |-- VM1 (10.0.0.21)
                                               |-- VM2 (10.0.0.22)
                                               |-- VM3 (10.0.0.23)

Host (?!?) (?!?)              |
                              |-- VM3 (yyy.yyy.yyy.35)

如何实现这一点以及我需要哪些 iptable 规则?

提前致谢。

答案1

你最好先做eth0桥梁的一部分,可以说phybr0。然后为您的虚拟机分配一个额外的 NIC,该 NIC 桥接到phybr0. 最后让虚拟机拥有35地址本身分配给它。此外,您的主机随后将运行其xxx.xxx.xxx.239IP 地址phybr0, 并不是eth0。这可能是一个起点:http://www.linux-kvm.org/page/Networking#public_bridge

否则,对于涉及 NAT 的解决方案,请查看iptables DNAT。这相当容易实现,iptables 手册页中的示例就足够了。不过,我首先要意识到 NAT 的局限性。

相关内容