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

我有一些configuration为桥接模式的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的虚拟机可以在彼此之间到达,这是一个理想的行为。 但是,由于本地子网中没有10.0.2.1网关,因此无法访问Internet。 我怎样才能解决这个问题?

一种解决scheme是将一个具有10.0.2.1接口的服务器configuration为NAT。 然而,我不想要任何SPOF,我希望每个主机使用分配给dom0的公共IP地址来做自己的NAT。

我相信这只是在dom0中configurationiptables的问题。 如果这是正确的,怎么样?

我find了以下解决scheme。 我仍然开放给好的select和暗示。

在每个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 

在具有私有IP(10.0.2。*)的每个domU上:

 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 

你有没有任何理由不把需要访问互联网的DomU连接到互联网桥呢?

如果你不想这样做 – 连接到互联网的DomU连接到“私人”桥梁,然后安装一个代理(鱿鱼)。 联系代理…

我不认为把Dom0连接到互联网是一个好主意 – 但是你会有你的理由…