Возможно ли, чтобы хост Xen и гость Xen использовали один и тот же IP-адрес (хотя и с разными портами)?
У нас есть один общедоступный IP-адрес, и мы хотим, чтобы его использовали как хост Xen (только как хост, никакой другой роли), так и гость Xen.
Спасибо.
Для этого назначьте общедоступный IP-адрес host
система. Затем перенаправьте требуемый порт из host
система для guest
система.
Предположим, ваш guest
является веб-сервером, вам необходимо перенаправить порт 80 из host
в порт 80 из guest
так что каждый запрос на порт 80 на общедоступном IP-адресе будет перенаправлен на порт 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'ing на host
### Port Forwarding ###
Здесь вы задаете столько правил, сколько вам нужно. Это говорит host
для переадресации определенных портов на определенные порты назначения на определенных IP-адресах назначения.
Вы должны думать о виртуализированной машине как о реальной машине. В вашей сети не должно быть двух машин с одинаковым IP. Но вы можете использовать какой-нибудь мост, NAT, переадресацию портов, если ваша цель - скрыть присутствие виртуализированной среды.