Rede em ponte com diferentes sub-redes

2

Eu quero virtualizar meu servidor web com lxc / virsh por esse motivo, eu quero passar um IP para o contêiner lxc. Mas meus IPs são de diferentes sub-redes, o que eu tentei (mas não com sucesso):

Rede Virsh:

<interface type='bridge'>
    <source bridge='br0'/>
    <model type='virtio'/>
</interface>

IP 1: xxx.xxx.184.96 (IP do servidor dedicado)

xxx.xxx.37.220 (para LXC)

/ etc / network / interfaces:

auto lo
iface lo inet loopback

# The primary network interface
auto eth0


iface eth0 inet static
        address xxx.xxx.184.96
        netmask 255.255.255.128
        network xxx.xxx.184.0
        broadcast xxx.xxx.184.127
        gateway xxx.xxx.184.1
        # dns-* options are implemented by the resolvconf package, if installed
        dns-nameservers 8.8.8.8 8.8.4.4

iface br0 inet static
        bridge_ports eth0
        bridge_stp on
        address xxx.xxx.37.220
        netmask 255.255.255.255
    
por shim_ 23.11.2013 / 23:06

1 resposta

2

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.

    
por 24.11.2013 / 21:06