Xen: não é possível obter Dom0 e as DomUs para pingar um ao outro

1

Instalamos uma configuração do Xen (4.1) e não conseguimos que o Dom0 e as DomUs se comuniquem (façam ping uns com os outros). As DomUs podem fazer ping entre si, mas não com Dom0, e o Dom0 não pode efetuar ping nas DomUs. Tentamos muitas coisas diferentes seguindo o que podíamos encontrar na rede, incluindo algumas soluções que haviam sido propostas neste site (veja abaixo), mas estamos presos ...

Aqui está a nossa configuração: temos dois domínios convidados:

  • VM1, com ID 3
  • test2, com ID 4

Estamos tentando vinculá-los de uma forma de ponte, como no link , mas não conseguimos para fazer isso.

Aqui estão os ifconfigs:

Do Dom0:

# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:26:22:45:33:59  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1 
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B) 
          Interrupt:35 Base address:0xc000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128 Scope:Host 
          UP LOOPBACK RUNNING  MTU:16436  Metric:1 
          RX packets:460 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:460 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:35512 (35.5 KB)  TX bytes:35512 (35.5 KB) 

lxcbr0    Link encap:Ethernet  HWaddr 9a:b8:f4:95:9f:36  
          inet addr:10.0.3.1  Bcast:10.0.3.255  Mask:255.255.255.0 
          inet6 addr: fe80::98b8:f4ff:fe95:9f36/64 Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:62 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:10287 (10.2 KB) 

wlan0     Link encap:Ethernet  HWaddr 70:1a:04:0d:09:74  
          inet6 addr: fe80::721a:4ff:fe0d:974/64 Scope:Link 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1 
          RX packets:1 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:66 (66.0 B)  TX bytes:0 (0.0 B) 

xenbr0    Link encap:Ethernet  HWaddr 00:26:22:45:33:59  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1 
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B) 

Da VM1:

VM1:~# ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:16:3E:22:99:77  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0 
          inet6 addr: fe80::216:3eff:fe22:9977/64 Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:1478 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:71 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:286514 (279.7 KiB)  TX bytes:5330 (5.2 KiB) 
          Interrupt:26 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128 Scope:Host 
          UP LOOPBACK RUNNING  MTU:16436  Metric:1 
          RX packets:15 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:1680 (1.6 KiB)  TX bytes:1680 (1.6 KiB) 

Do test2:

test2:~# ifconfig  
eth0      Link encap:Ethernet  HWaddr 00:16:3E:6A:81:FF  
          inet addr:192.168.1.203  Bcast:192.168.1.255  Mask:255.255.255.0 
          inet6 addr: fe80::216:3eff:fe6a:81ff/64 Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:1278 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:56 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:242526 (236.8 KiB)  TX bytes:4488 (4.3 KiB) 
          Interrupt:26 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128 Scope:Host 
          UP LOOPBACK RUNNING  MTU:16436  Metric:1 
          RX packets:6 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:0 
          RX bytes:672 (672.0 b)  TX bytes:672 (672.0 b)

Aqui está também o nosso / etc / network / interfaces:

auto lo 
iface lo inet loopback 

auto xenbr0
iface xenbr0 inet static 
        bridge_ports eth0 
        address 192.168.1.1 
        broadcast 192.168.1.255 
        netmask 255.255.255.0 
        gateway 192.168.1.0 

auto eth0 
iface eth0 inet manual

E aqui está o resultado do comando "brctl show", do Dom0:

# brctl show 
bridge name bridge id       STP enabled interfaces 
lxcbr0      8000.feffffffffff   no      vif3.0 
                                        vif4.0 
xenbr0      8000.002622453359   no      eth0 

O que tentamos até agora:

  • dando um endereço IP para eth0 do Dom0:

    ifconfig eth0 192.168.1.1 máscara de rede 255.255.255.0

  • tentamos seguir esta resposta Ponte de rede em dom0 não pode pingar o domU mas não temos nenhuma interface eth1 e nenhuma interface funcionaria.

Alguma sugestão, ajuda?

Obrigado pelas respostas, o brctl addif ... não funciona.

Aqui está o arquivo de configuração da VM1:

kernel      = '/boot/vmlinuz-3.2.0-33-generic'
ramdisk     = '/boot/initrd.img-3.2.0-33-generic'

vcpus       = '1'
memory      = '128'

#
#  Disk device(s).
#
root        = '/dev/xvda2 ro'
disk        = [
                  'file:/home/xen/domains/VM1/disk.img,xvda2,w',
                  'file:/home/xen/domains/VM1/swap.img,xvda1,w',
              ]


#
#  Physical volumes
#


#
#  Hostname
#
name        = 'VM1'

#
#  Networking
#
vif         = [ 'ip=192.168.1.2,mac=00:16:3E:22:99:77' ]

#
#  Behaviour
#
on_poweroff = 'destroy'
on_reboot   = 'restart'
on_crash    = 'restart'
    
por Maria 11.12.2012 / 19:25

2 respostas

1

Oh meu, tão velho ... Mas desde que cheguei aqui tentando encontrar uma solução, aqui está uma. Eu acho que seu problema está em "ip = 192.168.1.2" na sua linha vif , mas se eu estiver errado, a resposta é inútil. E mesmo se eu estiver certo, é inútil para pessoas com configurações um pouco diferentes. Portanto, versão longa:

Configuração de rede DomU (tudo o mais não importa): vif=['bridge=xenbr0']

O Bridge é configurado na interface fictícia, composta dessa forma (esses são comandos executados como root):

# modprobe dummy
# ifconfig dummy0 up
# brctl addbr xenbr0
# brctl addif xenbr0 dummy0

Veja como fica depois de iniciar sua VM (você pode ver o vif16.0 da VM conectado à sua ponte):

# brctl show
bridge name     bridge id               STP enabled     interfaces
xenbr0          8000.1a088b6b402f       no              dummy0
                                                        vif16.0

Eu uso DHCP, mas você pode atribuir IPs manualmente. Para xenbr0 para Dom0 e eth0 em DomU para DomU. Não atribua nenhum IP a seus membros da bridge! Isso é importante.

ifconfig para o Dom0 se parece com isso (estatísticas removidas para torná-lo menos volumoso):

dummy0    Link encap:Ethernet  HWaddr 1a:08:8b:6b:40:2f
          inet6 addr: fe80::1808:8bff:fe6b:402f/64 Scope:Link
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1

vif16.0   Link encap:Ethernet  HWaddr fe:ff:ff:ff:ff:ff
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

xenbr0    Link encap:Ethernet  HWaddr 1a:08:8b:6b:40:2f
          inet addr:192.168.2.1  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::1808:8bff:fe6b:402f/64 Scope:Link

E da DomU é assim:

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.2.21  netmask 255.255.255.0  broadcast 192.168.2.255
    inet6 fe80::216:3eff:fe25:e843  prefixlen 64  scopeid 0x20<link>

Pingando Dom0:

PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=0.238 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=0.279 ms

E para o acesso à internet (minha configuração é essencialmente NAT, a sua deve ter acesso à internet nativamente), permitindo que o NAT seja necessário assim:

iptables -t nat -A POSTROUTING -s 192.168.2.0/24 ! -d 192.168.2.0/24 -j MASQUERADE

Para a solução de problemas, use tcpdump -v -i xenbr0 . Isso ajuda muito, já que o Ping bem-sucedido exige que o seu pacote saia e retorne , portanto, não lhe dá nenhuma pista sobre quando é perdido - enquanto sai ou volta.

    
por 20.09.2016 / 04:13
0

Seu arquivo de configuração não especifica a ponte para conectar suas DomUs a. Você pode especificar a ponte na estrofe vif:

vif = [ 'mac=00:16:3E:22:99:77,bridge=xenbr0' ]

Você também pode especificar o endereço IP e outras informações. Consulte Opções de configuração do Xen .

A especificação da ponte na sub-rotina vif faz com que o Xen execute um script no Dom0 depois que o DomU é atribuído a interfaces virtuais. Isso adiciona a interface virtual à ponte especificada.

Por favor, note que podem ser necessários ajustes adicionais na sua configuração de rede para que isso funcione. Usar as opções corretas de configuração do Xen ajudará a simplificar o restante.

    
por 12.12.2012 / 22:37