Roteamento de rede no kvm

5

Há muita configuração usada para a rede Kvm. Mas eu não sou capaz de chegar ao hóspede do anfitrião ou do lado de fora. Estou trabalhando no Ubuntu 11.04. No convidado eu tenho um WindowsXp com dhcp.

Eu quero que o convidado esteja na mesma rede do host. Eu tentei usar aliases de ip

Eu configurei rede em ponte em / etc / network / interfaces

auto eth0
iface eth0 inet manual

auto eth0:1
iface eth0:1 inet static
address 192.168.0.11
netmask 255.255.255.0

auto br0
iface br0 inet static
         address 192.168.0.10
         netmask 255.255.255.0
         gateway 192.168.0.1
         bridge_ports eth0
         bridge_stp off
         bridge_fd 0
         bridge_maxwait 0
Em seguida,

alterou a rede padrão em /etc/libvirtd/qemu/network/default.xml

<network>
<name>default</name>
<uuid>831a93e1-0b84-0b0e-9ca2-23c407983968</uuid>
<forward mode='route'/>
<bridge name='virbr0' stp='on' delay='0' />
 <ip address='192.168.122.1' netmask='255.255.255.0'>
  <dhcp>
    <range start='192.168.122.100' end='192.168.122.254' />
    <host mac='52:54:00:7c:df:88' name='vm' ip='192.168.122.99' />
  </dhcp>
</ip>
</network>

a rede em /etc/libvirt/qemu/vm.xml

<interface type='network'>
  <mac address='52:54:00:7c:df:88'/>
  <source network='default'/>
  <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

o convidado do dhcp pega o ip correto. finalmente direcionar o tráfego de interfaces externas para internas e para trás

sudo iptables -t nat -A PREROUTING -d 192.168.0.11 -j DNAT --to-destination 192.168.122.99

sudo iptables -t nat -A POSTROUTING -d 192.168.122.99 -j SNAT --to-source 192.168.0.11

Então, no final, a configuração é esta:

$> brctl show
bridge name          bridge id      STP enabled interfaces
br0             8000.0026b902076d   no      eth0
virbr0          8000.fe54007cdf88   yes     vnet0

$> route
Tabella di routing IP del kernel
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     *               255.255.255.0   U     0      0        0 br0
192.168.0.0     *               255.255.255.0   U     0      0        0 eth0
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
link-local      *               255.255.0.0     U     1000   0        0 br0
default         192.168.0.1     0.0.0.0         UG    100    0        0 br0

$> ifconfig

br0       Link encap:Ethernet  HWaddr 00:26:b9:02:07:6d  
      indirizzo inet:192.168.0.10  Bcast:192.168.0.255  Maschera:255.255.255.0

eth0      Link encap:Ethernet  HWaddr 00:26:b9:02:07:6d  
      indirizzo inet6: fe80::226:b9ff:fe02:76d/64 Scope:Link

eth0:1    Link encap:Ethernet  HWaddr 00:26:b9:02:07:6d  
      indirizzo inet:192.168.0.11  Bcast:192.168.0.255  Maschera:255.255.255.0

virbr0    Link encap:Ethernet  HWaddr fe:54:00:7c:df:88  
      indirizzo inet:192.168.122.1  Bcast:192.168.122.255  Maschera:255.255.255.0

vnet0     Link encap:Ethernet  HWaddr fe:54:00:7c:df:88  
      indirizzo inet6: fe80::fc54:ff:fe7c:df88/64 Scope:Link

o que está errado? Ou como posso configurar um convidado visível fora do host?

    
por nevios 18.05.2011 / 13:46

2 respostas

7

Eu encontrei isso há um tempo atrás. Mas parece não haver maneira de configurar a ponte em uma interface de alias, como eth0:1 . Use a interface real eth0 .

auto eth0
iface eth0 inet static

auto br0
iface br0 inet static
     bridge_ports eth0
     address 192.168.0.10
     netmask 255.255.255.0
     gateway 192.168.0.1
     broadcast 192.168.0.255
     bridge_stp off
     bridge_fd 0
     bridge_maxwait 0

Além disso, os valores endereço , máscara de rede , gateway e transmissão são a configuração mínima que uma interface deve ter . Pode funcionar com menos valores, mas pode causar um comportamento de rede estranho.

Como eu ainda lembro, você não precisa editar default.xml. Você só precisa confirmar que cada convidado do KVM tem sua configuração de interface de rede de acordo com suas necessidades.

<interface type='bridge'>
  <mac address='00:01:b4:02:00:db'/> # change per guest
  <source bridge='br0'/>             # the name of your source bridge
  <target dev='vnet0'/>              # the name, the network interface has for the guest
</interface>

A configuração é complexa para cobrir todas as variedades aqui, como o DHCP versus a configuração estática. Você checou a documentação do Ubuntu sobre o KVM ? Me ajudou muito a entrar nisso.

    
por 18.05.2011 / 14:35
7

Por que não configurar o convidado para usar o br0? Em vez de configurá-lo com uma "rede", você pode configurá-lo com uma "ponte" e anexar a VM a br0. exemplo:

<interface type='bridge'>
<source bridge='br0'/>
<mac address='00:16:3e:1a:b3:4a'/>
</interface>

Desta forma, o convidado receberá um IP da rede externa e poderá contatar o trabalho e hospedar através dele.

NOTA: No entanto, a desvantagem de usar uma ponte é que você não verá o endereço IP do cliente de conexões para sua VM. Em vez disso, o endereço IP do host da ponte será registrado no apache, auth.log, etc em uma VM linux e de forma semelhante em uma VM do Windows.

    
por 18.05.2011 / 13:52