Ponte de rede KVM com duas NICs

5

Saudações

Estou tentando criar uma rede de ponte com o KVM e não estou chegando a lugar nenhum. Há docs e tutoriais sobre o assunto, mas todos parecem entrar em conflito ou não fornecem informações suficientes. Eu queria saber se alguém pode me dar uma visão geral de alto nível de como fazer isso funcionar. Eu provavelmente posso trabalhar os detalhes sozinho (configurando as interfaces, adicionando rotas, etc), eu só preciso de ajuda no quadro geral: como tudo está interconectado.

Eu tenho um servidor RHEL5 com o KVM instalado e em execução. Possui duas NICs físicas, eth0 e eth1 na mesma VLAN. Eu gostaria de usar eth1 para todo o tráfego entre os convidados e o resto da rede e reservar eth0 para gerenciamento de host, migrações de convidados, etc., se possível. Eu não sou exigente sobre qual deles obtém a rota padrão, embora seria bom se pudéssemos torná-lo eth0. Todos os convidados terão IPs estáticos. Eu preferiria que quando um novo convidado fosse adicionado, a configuração de rede só precisaria ser definida de dentro do próprio convidado. Basicamente, eu quero isso:

eth0: todo o tráfego de host | eth1: todo o tráfego de visitantes

Aberto a qualquer outra sugestão, se isso não for possível ou se for difícil / difícil. Ponteiros para documentação existente podem não ser úteis, já que eu já trabalhei com tudo o que existe.

Obrigado por qualquer ajuda.

Atualizar

Ok, aqui está o que eu tenho até agora:

  • eth0 é configurado com um endereço IP estático de acordo com o normal. Não há surpresas lá.
  • br0 é criado como uma ponte sem endereço IP
  • eth1 é criado sem endereço IP. É adicionado à ponte br0.
  • a instância da VM está configurada para usar br0 e tem um endereço IP estático configurado

Usando essa configuração, posso conectar-me a máquinas externas de dentro do guest, mas os pacotes destinados ao convidado nunca o fazem. Aqui está o que minha configuração parece até agora:

# cat /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=none
ONBOOT=YES

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# host-only interface
DEVICE=eth0
TYPE=Ethernet
HWADDR=00:23:7D:E1:1F:22
IPADDR=10.8.91.18
NETMASK=255.255.252.0
GATEWAY=10.8.91.254
BOOTPROTO=none
ONBOOT=yes

# cat /etc/sysconfig/network-scripts/ifcfg-eth1
# guest-only interface
DEVICE=eth1
TYPE=Ethernet
BRIDGE=br0
HWADDR=00:23:7d:e1:1f:26
BOOTPROTO=NONE
ONBOOT=YES

(virbr0 is the default kvm/libvirt NAT bridge, it's not being used here)
# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.00237de11f26       no              vnet0
                                                        eth1
virbr0          8000.000000000000       yes

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.122.0   *               255.255.255.0   U     0      0        0 virbr0
10.8.88.0       *               255.255.252.0   U     0      0        0 eth0
169.254.0.0     *               255.255.0.0     U     0      0        0 eth0
default         10.8.91.254     0.0.0.0         UG    0      0        0 eth0

Aqui está a seção relevante da definição XML libvirt do convidado:

<interface type='bridge'>
  <mac address='54:52:00:76:94:73'/>
  <source bridge='br0'/>
</interface>

Atualização 2

Ok, acho que estou pronto. Fui enganado pelo fato de meu sistema operacional convidado (SLES 11, que não estou familiarizado) ter um conjunto bastante restritivo de regras de firewall por padrão. Uma vez que o firewall foi esvaziado, posso fazer conexões para dentro e para fora.

    
por Eil 07.04.2010 / 16:49

2 respostas

0

Suponho que você saiba como configurar uma ponte na parte superior de uma NIC, então basicamente tudo que você precisa é configurar duas pontes sobre as duas NICs e ativar as VMs para se conectar à ponte certa. Venha para pensar sobre isso, um dos NICs pode ficar sem uma ponte, uma vez que os convidados não terão necessidade de usá-lo.

Essa foi uma descrição geral do problema do jeito que eu vejo. Você pode, por favor, mostrar o que você fez até agora, para que possamos tentar encontrar o erro que você cometeu, se houver um claro

    
por 07.04.2010 / 17:16
1

Eu tenho um cenário semelhante com o Ubuntu 12.04.02 como servidor OS.
Meu convidado atualmente está executando o CentOS.
O servidor tem 4 NICs e eu quero executar eth0 somente para o servidor, use eth1 para iSCSI para o armazenamento e eth2 e eth3 para os guests.
Eth0, eth2 e eth3 se conectam à mesma lan.

Não sei se descobri corretamente como configurar as interfaces.
As descrições que encontrei até agora lidam apenas com 1 NIC no servidor.

Atualmente eu configurei o eth0 com IP dhcp, pois uso uma reserva fixa no servidor dhcp.
Minha ponte para eth2 é chamada br2

Eu configurei eth2 e br2 da seguinte forma

auto  eth2  
iface eth2 inet manual  

auto  br2  
iface br2 inet manual  
  bridge_ports   eth2  
  netmask   255.255.255.0  
  network   192.168.168.0  
  gateway   192.168.168.1  
  broadcast 192.168.168.255  
  bridge_stp     off  
  bridge_fd      0  
  bridge_maxwait 0  

e

 brctl addif br2 eth2  

As interfaces eth2 e br2 são criadas sem um IP como esperado.
Os convidados também solicitam seu endereço usando o dhcp.

    
por 07.05.2013 / 14:50