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

3

Estou tentando executar o Xen em uma configuração em que os domUs têm um IP completamente diferente do dom0 (não no mesmo intervalo de rede). Esta resposta fez 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

Eu já experimentei diferentes máscaras de rede na configuração do domU. Como devo configurar a coisa para permitir que o domU se conecte à rede de maneira funcional?

    
por Simon 21.07.2014 / 15:19

1 resposta

2

Assumirei que 91.121.x.x é roteado pela Internet para o gateway no gateway 188.165.X.254

O gateway, em seguida, precisa de uma rota para 91.121.x.x para ir para o host da VM em 188.165.X.Y

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

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

No entanto, neste caso, os convidados estão em uma rede diferente do host. Precisamos de uma camada 3 - conexão roteada.

Duas coisas precisam acontecer no host

1) Ele precisa de uma interface na rede 91.121.x.x 2) Ele precisa se tornar um roteador

Para (1), temos uma configuração de rede semelhante a anterior, mas a interface física é mantida fora da ponte. Criamos uma interface de ponte para as máquinas virtuais se conectarem, mas fornecemos a ela o 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

Quando isso ocorrer, o servidor terá duas interfaces e poderá atuar como um roteador. Isso está desativado por padrão. Altere /etc/sysctl.conf e certifique-se de que a linha a seguir não esteja comentada:

 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 irá rotear os pacotes que chegam na eth0 destinados a 91.121.x.x fora da interface br0. Então, agora precisamos unir a vms a essa interface. Isto é exatamente como você normalmente faz, 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 de 91.121.x.x de domU para ping dom0 e ping 91.121.x.254 para pingar domU de dom0. Em seguida, execute ping na interface externa do dom0 a partir de domu: 188.165.X.Y

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

    
por 22.07.2014 / 05:25