Para conseguir isso, atribua o ip público ao sistema host
. Em seguida, encaminhe a porta necessária de host
system para guest
system.
Suponha que guest
seja um servidor web, então você precisa encaminhar a porta 80 de host
para a porta 80 de guest
para que cada solicitação para a porta 80 no ip público seja encaminhada para a porta 80 de guest
.
Suponha que você tenha atribuído ip público à eth0 e o ip do seu guest
é 192.168.1.2, então você tem que dizer ao host
que ele deve fazer NAT / MASQUERADE para que as máquinas virtuais tenham acesso à internet. Você também precisa informar host
de quais portas ele deve encaminhar para qual endereço IP. Você pode consultar o script a seguir.
#!/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
Os dois primeiros comandos permitem Nat / Masquerad'ing em host
### Port Forwarding ###
Aqui você coloca quantas regras forem necessárias. Isso informa ao host
para encaminhar certas portas para determinadas portas de destino em determinados endereços IP de destino.