Xen 主机和 Xen 客户机是否可以共享相同的 IP(尽管端口不同)?
我们有一个公共 IP,并且希望 Xen 主机(仅作为主机,没有其他角色)和 Xen 客户机都使用它。
谢谢。
答案1
为实现此目的,请将公共 IP 分配给host
系统。然后将所需的端口从host
一个系统转发到guest
另一个系统。
假设您的guest
是一个 Web 服务器,那么您需要将从的 80 端口转发到host
的 80端口guest
,这样对公网 IP 上 80 端口的每个请求都将被转发到的 80 端口guest
。
假设您已将公共 IP 分配给 eth0,并且您的guest
IP 是 192.168.1.2,那么您必须告诉host
它应该执行 NAT/MASQUERADE,以便虚拟机可以访问互联网。您还必须告诉host
它应该将哪些端口转发到哪个 IP 地址。您可以参考以下脚本。
#!/bin/sh
GUEST_IP=192.168.1.2
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
### Port Forwarding ###
### web server
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to $GUEST_IP:80
### mail server
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to $GUEST_IP:25
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 143 -j DNAT --to $GUEST_IP:143
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 110 -j DNAT --to $GUEST_IP:110
前两个命令启用 Nat/Masquerad'inghost
### Port Forwarding ###
您可以在此处输入所需的规则。这将指示host
将特定端口转发到特定目标 IP 地址上的特定目标端口。
答案2
您应该将虚拟机视为真实机器。您的网络中不应该有两台具有相同 IP 的机器。但是,如果您的目标是隐藏虚拟化环境的存在,则可以使用一些桥接、NAT、端口转发。