interligou a rede com kvm

5

Estou tentando conectar uma máquina virtual convidada à minha rede usando o bridging. Eu me deparei com alguns recursos online, mas eles parecem estar desatualizados, lidam com xen ou Ubuntu ou não parecem estar completos. O host está executando o CentOS 5.5 e eu estou usando o libvirt para gerenciar as VMs, então eu uso-o para criar as VMs e iniciá-las e interrompê-las. Eu tenho a ponte criada (br0) e anexei eth0 a ela. A VM não parece obter um endereço IP, quero usar o DHCP para endereços, configurarei uma concessão estática para a VM.

ifconfig do host:

br0   Link encap:Ethernet  HWaddr 00:1A:4D:53:C3:A6  
      inet addr:192.168.1.121  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::21a:4dff:fe53:c3a6/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:5222 errors:0 dropped:0 overruns:0 frame:0
      TX packets:470 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:753743 (736.0 KiB)  TX bytes:47868 (46.7 KiB)

eth0  Link encap:Ethernet  HWaddr 00:1A:4D:53:C3:A6  
      inet6 addr: fe80::21a:4dff:fe53:c3a6/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:103200 errors:0 dropped:0 overruns:0 frame:0
      TX packets:116575 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:13605883 (12.9 MiB)  TX bytes:63269448 (60.3 MiB)
      Interrupt:217 Base address:0xc000 

 eth1 Link encap:Ethernet  HWaddr 00:1B:21:0A:25:AA  
      inet addr:192.168.1.91  Bcast:192.168.1.255  Mask:255.255.255.0
      inet6 addr: fe80::21b:21ff:fe0a:25aa/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:3124648 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1693433 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:100 
      RX bytes:4531121842 (4.2 GiB)  TX bytes:119907573 (114.3 MiB)

 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:27294 errors:0 dropped:0 overruns:0 frame:0
      TX packets:27294 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:34266420 (32.6 MiB)  TX bytes:34266420 (32.6 MiB)

virbr0 Link encap:Ethernet  HWaddr 00:00:00:00:00:00  
       inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
       inet6 addr: fe80::200:ff:fe00:0/64 Scope:Link
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:51332 errors:0 dropped:0 overruns:0 frame:0
       TX packets:89020 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:0 
       RX bytes:2916963 (2.7 MiB)  TX bytes:132997389 (126.8 MiB)

vnet0  Link encap:Ethernet  HWaddr FE:52:00:1A:C8:4F  
       inet6 addr: fe80::fc52:ff:fe1a:c84f/64 Scope:Link
       UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
       RX packets:25 errors:0 dropped:0 overruns:0 frame:0
       TX packets:518 errors:0 dropped:0 overruns:0 carrier:0
       collisions:0 txqueuelen:500 
       RX bytes:4226 (4.1 KiB)  TX bytes:51190 (49.9 KiB)

A saída de brctl show

bridge name bridge id       STP enabled interfaces
br0         8000.001a4d53c3a6       no              vnet0
                                                    eth0
virbr0      8000.000000000000       yes

Saída de route :

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth1
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
169.254.0.0     *               255.255.0.0     U     0      0        0 br0
default         DD-WRT          0.0.0.0         UG    0      0        0 br0

Por fim, aqui está a seção de rede da VM que estou tentando configurar:

<interface type='bridge'>
  <mac address='54:52:00:1a:c8:4f'/>
  <source bridge='br0'/>
</interface>
    
por Chris Gow 06.03.2011 / 02:25

2 respostas

1

O KVM configura sua própria ponte. Esta é a ponte virbr0 . Você deve ser capaz de configurar como isso está em rede.

Na VM, a interface deve aparecer em eth0 e não em bridge. Este será o outro lado do dispositivo vnet0 .

Eu trabalho no Ubuntu, onde o KVM iniciará um servidor DNSMasq para a rede em ponte distribuir endereços DHCP. O KVM também será reproduzido com iptables para configurar o acesso à rede para sua VM.

Tente remover a ponte criada e reiniciar a VM. Eu esperaria obter um endereço no intervalo 192.168.122.0 do que eu vejo da sua configuração.

Eu não gostei de como o KVM estava interagindo com o meu firewall, assim como o meu próprio sistema de rede manual para KVM . Minha configuração usa uma ponte virtual que não está conectada a uma interface Ethernet. A página KVM Networking da comunidade Ubuntu pode ajudá-lo a entender como o KVM está fazendo a rede agora.

EDIT: Eu dei uma segunda olhada na rede em ponte. Não sei por que você tem um endereço 192.168.1.x em eth1 . Você configuração parece muito como eu esperaria. Tente definir um endereço estático na VM para ver se ele pode se comunicar.

Para testar o que está acontecendo com o DHCP, tente executar tcpdump on br0 ou eth0 procurando tráfego DHCP ou qualquer tráfego do endereço% 54:52:00:1a:c8:4f . Em seguida, tente obter um endereço DHCP. Talvez seja necessário ativar o SPT na ponte.

O motivo pelo qual eu fiz minha própria rede foi permitir o acesso às minhas VMs de fora. Eu corro duas pontes, uma das quais hospeda minha DMZ.

    
por 06.03.2011 / 03:21
3

Como você já descobriu, você tem tudo certo ... É um problema de firewall. Você pode contornar isso adicionando uma regra para permitir o tráfego (como você fez), desligar o firewall completamente ou, como fazem nas versões mais recentes do Fedora e do RHEL, adicionar o seguinte ao /etc/sysctl.conf:

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Em seguida, execute sysctl -p para aplicar essas alterações.

    
por 25.07.2011 / 02:40