Você não pode usar uma interface de ponte para encaminhar o tráfego entre sub-redes. Pontes são destinadas a unir duas redes de camada 2, não duas sub-redes (que são a camada 3). Você precisa rotear o tráfego entre as redes. Bem, tecnicamente você poderia conectá-los, mas exige que você adicione uma regra de roteamento a todos os hosts em ambas as sub-redes, informando que eles podem se comunicar diretamente com a outra sub-rede. Isso é muito complicado e duvido é o que você quer fazer.
Assim, o tráfego de roteamento. Basicamente você tem que transformar sua caixa de hipervisor em um pequeno roteador. Você precisa informar que qualquer tráfego de entrada para determinadas portas deve ser encaminhado para sua instância virtualizada. Então, quando a instância virtualizada responder, a caixa do hipervisor modificará o tráfego para parecer que o tráfego veio de si mesmo. Isso é feito via DNAT.
iptables -t nat -I PREROUTING -i eth0 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 172.0.0.2
Esta regra diz que qualquer tráfego proveniente de eth0
para as portas TCP 80 & 443 e encaminhá-lo para 172.0.0.2
(altere 172.0.0.2
para o IP do seu servidor da web virtualizado).
Agora, você precisa salvar esta regra para que, quando reinicializar o sistema, ele volte. Esta parte irá variar. Existe um pacote iptables-persistent
no Ubuntu que permite fazer /etc/init.d/iptables-persistent save
. Mas se você estiver usando outra coisa para gerenciar seu firewall, precisará usá-lo.