我正在设置一个测试实验室的情况,其中多台计算机将具有相同的 IP 地址,因此它们需要 VLAN 分离。例如,一组虚拟机将具有 IP 192.168.1.200、192.168.1.201 等。另一组虚拟机也将具有相同的 IP。
我想为每个虚拟机提供 NAT 映射,以便每个虚拟机都可以公开访问。我正在使用带有 iptables 的 Ubuntu 11.04。
注意:我通常是 Windows 管理员,但 Linux 是更好的解决方案。
所以基本上我希望 iptables NAT 映射指向特定接口并允许多个重复 IP 共存。
使用单个 Ubuntu 设备可以实现这一点吗?我正在使用虚拟网络结构,因此在所有这些设备之间没有物理网络设备。
下面是一个表示它的图表:
我的 NAT 规则可能是这样的:
iptables -t nat -I PREROUTING -d 72.73.74.75 -j DNAT --to-destination 192.168.1.200 -o eth1.5
iptables -t nat -I POSTROUTING -s 192.168.1.200 -j SNAT --to-source 72.73.74.75 -i eth1.5
-i 和 -o 似乎只适用于公共 NIC,因此我无法完全使用它。例如,在 POSTROUTING (SNAT) 中使用 -i 会出现此错误:无法将 -i 与 POSTROUTING 一起使用。-o 对 DNAT 的作用相同。
关于如何实现这一目标,有什么建议吗?
答案1
您需要使用第二个 NAT 来解决您的问题---在任一 VLAN 上创建具有不同 IP 的第 4 个 VM,并让它执行第二层 NAT 以访问第 4 个 VM 的 VLAN 上的实际主机。当然,您也可以在 Ubuntu SPF 上创建这些第 4 个 VM。
然而我不得不问一个问题:为什么你想这样做吗---你能只有两个 Ubuntu 盒子吗,一个在 5 上,一个在 6 上?