在托管环境中具有 1+X 个公共 IP 地址的专用根服务器上,运行带有 Xen 3.2 的 Debian Lenny,我想安装多个 domU。由于托管公司的要求,桥接网络路由不是一种选择。他们建议使用路由设置,但据我所知,这需要在 dom0 上花费两个公共 IP,而我无法承受。
在我的设置中,X 个 domU 将具有面向公众的 IP 地址,并且应该可以通过网络访问。其他 domU 应位于私有子网中(例如 10.0.0.1)。。/192.168.。) 并且无法从外部访问。同一私有子网中的 domU 应该能够相互访问,但不能访问其他私有子网中的 domU。如果所有流量(包括具有公共 IP 地址的 domU)都通过可以充当防火墙(iptables?)的 dom0 进行路由,那就更好了。
有没有人有与我类似的设置并愿意分享一些配置文件和技巧?
答案1
您应该在 dom0 上设置两个网桥。您可以使用标准条目来/etc/network/interfaces
实现这一点。假设您的真实网卡是 eth0(并且它后面有一个 DHCP 服务器)并且您已经bridge-utils
安装。该文件可能如下所示:
auto br0
iface br0 inet dhcp
bridge_ports eth0
bridge_maxwait 0
auto br1
iface br1 inet static
bridge_ports none
bridge_maxwait 0
address 192.168.0.1
netmask 255.255.255.0
您/etc/xen/xend-config.sxp
可以使用 network-brigde 和 vif-bridge 进行配置。在每个 domU 配置文件中,您可以选择是否希望它具有直接外部访问权限(通过 br0)或是否应仅通过 br1 进行访问。为此,您可以使用如下 vif 行:
vif = ['bridge=br0']
vif = ['bridge=br1']
当然,您仍然必须在 br1 上设置 NAT/伪装,并且 domU 的网络配置应该匹配(即,在我上面的示例中,br0 上的应该使用 DHCP,而 br1 上的应该具有静态 IP)。
答案2
我已经设置了完全相同的东西。我们所做的是 NAT。这绝对是你要找的。你需要在 dom0 中有一个脚本,将公共 IP 的流量 NAT 到适当的私有 IP。你显然可以在该过程中应用防火墙规则。
对于公共 IP 的 NAT,一行就足够了:
iptables -t nat -A PREROUTING -i eth0 -d PUBLICIP -j DNAT --to-destination INTERNALIP
如果愿意,请对每个公共 IP 添加防火墙规则重复此过程。
伪装虚拟机:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
答案3
由于托管公司的要求,桥接网络路由不是一种选择。
我只是想知道,我不知道这是否会起作用,但你有没有研究过使用代理 arp方法?