Rede sem fio em ponte no KVM. Por que é tão complicado?

8

Uso o VirtualBox (e algumas vezes o VMWare) há anos e nunca tive nenhum problema com os adaptadores de rede virtual, não importando se os físicos estavam conectados ou não.

Também joguei há algum tempo com o KVM em uma instalação com fio e, embora tivesse que editar alguns arquivos de configuração para fazê-lo funcionar, também era possível criar um adaptador em ponte sem grandes problemas.

Hoje eu decidi (erradamente, ao que parece) tentar usar o KVM em um laptop executando o Ubuntu 13.10 e tentei criar uma máquina virtual com rede em ponte através de uma interface sem fio. Foi extremamente doloroso configurar isso.

Depois de seguir todos os tutoriais que encontrei ( por exemplo ) e ter que reiniciar o meu laptop várias vezes para recuperar a conexão, desisti e voltei ao meu antigo e conhecido VirtualBox.

E, na verdade, a primeira coisa que notei quando examinei a documentação oficial do KVM foi que eles desencorajam a tentativa de conectar um adaptador sem fio, pois, segundo eles :

O método mostrado aqui não funcionará com a maioria dos drivers sem fio (todos?), Pois eles não suportam ponte.

Então, minha pergunta é:

  • Como é que eles dizem que a maioria dos adaptadores sem fio não oferece suporte a pontes se ele funciona no VirtualBox e no VMWare apenas "pronto para uso"?
  • E qual é a diferença entre esses hipervisores que o torna tão complicado no KVM, se funciona?
Carles Sala
fonte

Respostas:

10

Antecedentes do KVM

Eu acho que isso se deve em parte às expectativas da KVM. O KVM é antes de tudo um produto de servidor e não um produto de desktop para virtualização. Pode ser usado em qualquer aplicativo, mas definitivamente é mais adequado para uso em um servidor.

Eu o uso em mais de 3 hosts no trabalho, cada um hospedando de 5 a 10 VMs cada, e ele foi executado perfeitamente e é fácil de gerenciar, e basicamente funciona.

Questão 1

Como é que eles dizem que a maioria dos adaptadores sem fio não oferece suporte a pontes se ele funciona no VirtualBox e no VMWare apenas "pronto para uso"?

Acredito que você esteja tirando essa conclusão desse anúncio no site da KVM .

AVISO: O método mostrado aqui não funcionará com a maioria dos drivers sem fio (todos?), Pois eles não oferecem suporte a pontes.

Esta declaração está aqui porque normalmente é o caso. Acredito que esse é o motivo pelo qual, quando você instala o VirtualBox ou o VMWare, normalmente existem módulos do kernel sendo instalados e esses produtos fornecem seu próprio encapsulamento para facilitar o processo. Esses produtos estão basicamente trabalhando em torno desses problemas.

Acredito que esse problema também seja um problema de driver. Os drivers para WiFi no Linux ainda empalidecem em comparação com o suporte fornecido pelos drivers do Windows para o mesmo hardware. Isso é apenas um fato da vida.

NOTA: Eu já tinha placas de rede sem fio no passado que também não consegui colocar no modo de ponte. Normalmente, eu resolvi o problema usando o VirtualBox ou obtendo uma NIC diferente para o meu laptop.

Também destacarei que nem o VirtualBox nem o VMware poderiam fazer isso, pelo menos até versões mais recentes. Veja isso como evidência do KB da VMware:

Se o seu host tiver um adaptador de rede sem fio, não será possível usar a rede em ponte nos hosts Linux no VMware Workstation 5 ou inferior, VMware Server 1.x, qualquer versão do GSX Server, qualquer host no VMware Workstation 3 ou inferior ou no VMware GSX Server 2 ou menos. Sob esses produtos, se você deseja executar máquinas virtuais em um host que usa adaptadores Ethernet sem fio, deve configurar suas máquinas virtuais para usar NAT ou rede somente para host.

Fonte: Usando redes em ponte com uma NIC sem fio (760)

Questão 2

E qual é a diferença entre esses hipervisores que o torna tão complicado no KVM, se funciona?

Não posso realmente esclarecer essa questão em particular, além de dizer que, se fosse fácil, imagino que esse recurso seria ativado. Eu acho que o cerne da questão tem a ver com esse recurso, exigindo que 3 ou mais grupos coordenem seus esforços (fabricante de hardware, desenvolvedores de drivers., Kernel Linux e KVM).

Essas situações geralmente resultam quando você precisa de vários grupos para trabalhar juntos no mundo do código aberto (IMO)!

Então, eu posso configurá-lo ou o quê?

Você pode configurá-lo seguindo as instruções de um desses 2 artigos. A configuração requer o uso de um dispositivo TUN / TAP que pode ser colocado no modo bridge.

slm
fonte
Direita. O VirtualBox falsifica uma "ponte" para a rede sem fio. Ele nunca funcionará para conectar-se a um cliente sem fio, porque o AP rejeitará quadros com endereços MAC que não tenham sido associados a ele.
Michael Hampton
5

O KVM, como qualquer outro software Linux nativo, tenta usar o código existente em vez de reinventar a roda. É isso que o torna muito melhor do que todas as outras soluções, devido à disponibilidade do software para Linux e à velocidade com que ele é atualizado e aprimorado, mas isso também fornece as limitações das outras soluções.

Nesse caso, o culpado é bridge-utils, que funciona configurando a NIC que está sendo conectada em ponte no modo promíscuo. Muitos drivers de NICs sem fio no linux simplesmente não suportam esse modo, mas isso não é culpa da KVM.

Você ainda tem a opção de usar NAT ou OVS ou qualquer outra coisa que o KVM suporte (e há muitas tecnologias disponíveis)

dyasny
fonte
"o culpado é o bridge-utils, que funciona configurando a NIC que está sendo conectada no modo promíscuo". Alguma chance de você ter um link para uma ou mais fontes respeitáveis ​​sobre isso, para adicionar peso a essa reivindicação e / ou fornecer mais leituras para quem quiser saber mais? Obrigado :)
sampablokuper