Problema de rede em ponte com o Xen 4.6 e o Ubuntu 16.04

3

Estou tentando configurar uma virtualização Xen no Ubuntu 16.04 e no Xen 4.6.

Meu plano é ter uma rede privada, bem como servidores virtuais com endereços IP públicos que devem ser acessíveis externamente (assim como conectados à rede privada). Meu provedor de hospedagem me fornece 4 IPs adicionais.

Para isso, configurei duas pontes:

# brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.0025907784d4       no              eth0
                                                        vif3.0
                                                        vif3.0-emu
xenbr1          8000.36829b44377f       no              dummy0
                                                        vif3.1
                                                        vif3.1-emu

xenbr0 tem o IP estático público e xenbr1 um privado (192.168.122.1)

Eu configurei a máquina virtual da seguinte maneira

vif=[
 'ip=<virtual server public ip>,mac=02:00:00:c1:fb:49,bridge=xenbr0',
 'ip=192.168.122.6,mac=00:16:3E:59:FC:39,bridge=xenbr1'
 ]

Eu posso conectar-me ao endereço 192.168.122.6, e essa máquina tem acesso à Internet corretamente configurado através do gateway 192.168.122.1. Então tudo está bem aí.

Eu então adiciono o IP público em / etc / network / interfaces no servidor virtual

auto eth0
iface eth0 inet static
    address <public ip>
    netmask 255.255.255.255
    network <public ip substituting .0 at the end>
    broadcast <public ip>
    hwaddress ether 02:00:00:c1:fb:49

E a rede interna (que tem o gateway)

iface eth1 inet static
        address 192.168.122.6
        netmask 255.255.255.0
        network 192.168.122.0
        broadcast 192.168.122.255
        gateway 192.168.122.1

Agora a rota parece com isso

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.122.1   0.0.0.0         UG    0      0        0 eth1
192.168.122.0   *               255.255.255.0   U     0      0        0 eth1

Eu posso pingar o IP do próprio servidor, obviamente - mas não consigo me conectar a ele externamente, ou do próprio servidor xen.

O que estou fazendo de errado?

    
por Kevin Blake 11.06.2016 / 15:10

1 resposta

1

Meu erro parece estar roteando todo o tráfego pela rede privada e via eth1 - xenbr1 - dummy0. eth1 deve ser usado apenas para a rede privada e eth0 para tráfego geral.

Portanto, da eth1 na máquina virtual, remova o gateway em / etc / network / interfaces:

iface eth1 inet static
        address 192.168.122.6
        netmask 255.255.255.0
        network 192.168.122.0
        broadcast 192.168.122.255

E altere a eth0 para incluir rotas estáticas tanto para a máquina host quanto para o gateway do host (tenho certeza de que isso pode ser feito para todo o intervalo, em vez dos 2 IPs individualmente, para simplificar ainda mais isso).

iface eth0 inet static
    address 129.x.x.199
    netmask 255.255.255.0
    broadcast 129.x.x.199
    up route add 23.x.x.94 dev eth0
    up route add 23.x.x.254 dev eth0
    up route add default gw 23.x.x.94
    down route del default gw 23.x.x.254
    down route del 23.x.x.94 dev eth0
    down route del 23.x.x.254 dev eth0

Note que também removi a definição de gateway desta - até que as rotas estáticas sejam adicionadas, o gateway está inacessível (o que deixa a rede incapaz de iniciar).

Agora, todo o tráfego da Internet é encaminhado através da ponte eth0-xenbr0-eth0 e o tráfego privado é encaminhado através do eth1-xenbr1-dummy0.

A tabela de rotas final é assim:

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         23.x.x.254 0.0.0.0         UG    0      0        0 eth0
23.x.x.94 *               255.255.255.255 UH    0      0        0 eth0
23.x.x.254 *               255.255.255.255 UH    0      0        0 eth0
129.0.0.0   *               255.255.255.0   U     0      0        0 eth0
192.168.122.0   *               255.255.255.0   U     0      0        0 eth1

Obrigado a garethTheRed pela sua ajuda!

    
por 14.06.2016 / 00:23