我该如何修复这个错误/不完整的 Xen 路由设置?

我该如何修复这个错误/不完整的 Xen 路由设置?

我有一些以桥接模式配置的 Xen 主机,其虚拟机使用公共或私有 IP:

主持人 #1

  • dom0:3.3.3.71
  • dom1:10.0.2.10
  • dom2:3.3.3.85
  • dom3:10.0.2.11

主持人 #2

  • dom0:3.3.3.72
  • dom1:3.3.3.86
  • dom2:10.0.2.12
  • dom3:10.0.2.13

主持人 #3

  • dom0:3.3.3.73
  • dom1:10.0.2.14
  • dom2:10.0.2.15
  • dom3:3.3.3.87

具有公共 IP(3.3.3.*)的虚拟机可以从 Internet 访问。具有私有 IP 的虚拟机可以从彼此内部访问,这是理想的行为。但是,它们无法访问 Internet,因为本地子网中没有 10.0.2.1 网关。我该如何解决这个问题?

一种解决方案是配置一台具有 10.0.2.1 接口的服务器作为 NAT。但是我不想有任何 SPOF,我希望每台主机都使用分配给 dom0 的公共 IP 地址进行自己的 NAT。

我相信这只是在 dom0 中配置 iptables 的问题。如果这是正确的,怎么做?

答案1

我找到了以下解决方案。我仍然愿意接受好的替代方案和提示。

在每个 Xen 主机上:

echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -m physdev --physdev-in vif5.0 -o eth0 \
    -j SNAT --to-source 3.3.3.71

每个 domU 都有一个私有 IP (10.0.2.*):

route add -net 3.3.3.0 netmask 255.255.255.0 dev eth0
route add default gw 3.3.3.71
route del default gw 10.0.2.1

答案2

为什么您不将需要访问互联网的 DomU 连接到互联网桥?有什么原因吗?

如果您不想这样 - 将连接到互联网的 DomU 之一连接到“私有”网桥,然后在其上安装代理 (squid)。联系该代理...

我认为将 Dom0 连接到互联网不是一个好主意 - 但你有你的理由......

相关内容