Como devo configurar o Xen para permitir vários intervalos de IP diferentes nos domUs?

Como devo configurar o Xen para permitir vários intervalos de IP diferentes nos domUs?

Estou tentando fazer o Xen rodar em uma configuração onde os domUs têm um IP completamente diferente do dom0 (não no mesmo intervalo de rede).Esta respostafez tudo funcionar dentro do mesmo intervalo/24, mas não com IPs completamente não relacionados.

/etc/network/interfaces do dom0:

# The primary interface.
# The configuration is done in the bridge.
auto eth0

# The bridge for Xen to use.
auto xenbr0
iface eth0 inet static
        bridge_ports eth0
        address 188.165.X.Y
        netmask 255.255.255.0
        network 188.165.X.0
        broadcast 188.165.X.255
        gateway 188.165.X.254

ponte do dom0 ( brctl show):

bridge name     bridge id               STP enabled     interfaces
eth0            8000.00259022aab2       no              peth0
                                                        vif1.0

/etc/network/interfaces do domU:

# The primary network interface
auto eth0
iface eth0 inet static
    address 91.121.A.B
    gateway 188.165.X.254
    netmask 255.255.255.0

Também tentei diferentes máscaras de rede na configuração do domU. Como devo configurar para permitir que o domU se conecte à rede de maneira funcional?

Responder1

Presumo que 91.121.xx seja roteado pela Internet para o gateway no gateway 188.165.X.254

O gateway então precisa de uma rota para 91.121.xx ir para o host da VM em 188.165.XY

Isso significa que qualquer tráfego que tente chegar a 91.121.xx terminará no seu servidor Xen.

Na pergunta anterior, todas as interfaces estavam na mesma rede e, portanto, tudo poderia ser conectado à interface principal - esta é uma conexão de camada 2.

Porém, neste caso, os convidados estão em uma rede diferente da do host. Precisamos de uma conexão roteada da camada 3.

Duas coisas precisam acontecer no host

1) Precisa de uma interface na rede 91.121.xx 2) Precisa se tornar um roteador

Para (1) temos uma configuração de rede semelhante à anterior, porém a interface física é mantida fora da ponte. Criamos uma interface de ponte para as máquinas virtuais se conectarem, mas atribuímos a ela seu próprio endereço separado da interface eth0:

auto lo br0 eth0

iface lo inet loopback

iface br0 inet static
        bridge_ports none
        address 91.121.x.1
        netmask 255.255.255.0

iface eth0 inet static
       address 188.165.X.Y
       netmask 255.255.255.0
       network 188.165.X.0
       broadcast 188.165.X.255
       gateway 188.165.X.254

Assim que isso acontecer, o servidor terá duas interfaces e poderá atuar como um roteador. Isso está desativado por padrão. Altere /etc/sysctl.confe certifique-se de que a seguinte linha esteja descomentada:

 net.ipv4.ip_forward=1

Você pode ativar isso temporariamente na linha de comando com o seguinte, mas a alteração acima é necessária para sobreviver a uma reinicialização:

 sysctl -w net.ipv4.ip_forward=1

Agora o servidor roteará os pacotes que chegam na eth0 destinados a 91.121.xx para fora da interface br0. Então agora precisamos conectar o vms a esta interface. É exatamente como você faz normalmente, apenas colocando aqui para completar:

No .cfg:

 vif = ['bridge=br0, mac=00:16:3E:12:16:19']

No arquivo de interfaces domU:

auto eth0
iface eth0 inet static
    address 91.121.A.B
    gateway 91.121.x.x (this is the dom0 br0 interface address)
    netmask 255.255.255.0

Você pode testar se tudo está funcionando corretamente na ponte fazendo ping 91.121.x.xde domU para ping dom0 e ping 91.121.x.254para ping domU de dom0. Em seguida, execute ping na interface externa do dom0 do domu:188.165.X.Y

O primeiro ping prova que a ponte está funcionando e o segundo prova que o roteamento está funcionando.

informação relacionada