Ponte sem fio na máquina virtual KVM

4

Eu tenho um host VM (KVM) conectado a um roteador sem fio. Eu gostaria que os convidados virtuais estivessem no mesmo domínio de broadcast do host; isto é, recebe seu IP do DHCP do roteador. (= Ponte de camada 2)

De acordo com a documentação do KVM , é impossível: Important Note: Unfortunately, wireless interfaces cannot be attached to a Linux host bridge, so if your connection to the external network is via a wireless interface ("wlanX"), you will not be able to use this mode of networking for your guests. (eu tentei mesmo assim, e de fato, isso não acontece trabalho :))

Existem alguns recursos na Internet que sugerem como fazer uma interface roteada e funciona para mim. Mas é a Camada 3 e os convidados residem em uma sub-rede IP diferente.

No entanto, eu usei o VirtualBox no passado - e bridging wireless funciona lá.

Eu encontrei a pergunta de superusuário sobre o VirtualBox, que explica: Many virtual machine programs come with a special "bridge" or "filter" driver which attaches to existing network interfaces and allows the program to send and receive packets (Ethernet frames) directly .

Esse é exatamente o resultado que eu quero - virtualização KVM com ponte Ethernet (Camada 2). Infelizmente, parece que o libvirt / KVM não inclui um driver. Mas eu suponho que isso pode ser alcançado com alguma outra ferramenta Unix.

    
por Zvika 30.12.2013 / 18:33

3 respostas

2

A documentação oficial é muito pessimista. Como sempre, alguém inteligente descobriu: você encontra as instruções (longas) para fazer isso aqui . Eu tentei, é uma coisa fácil.

Editar:

Não sei por que a primeira solução postada no artigo acima mencionado não funciona para você, foi para mim e você não fornece informações extras. Ainda assim, você pode querer considerar uma solução alternativa, aqui , fornecida por Bohdi Zazen, que usa proxy -arp. Eu nunca tentei isso (o sol n.1 funcionou para mim, então qual era o ponto), mas você pode dar uma chance.

    
por 30.12.2013 / 19:06
2

Eu tinha exatamente o mesmo requisito que o Zvika. By the way, o seu post sobre o assunto é excelente. A alternativa que encontrei é essa: configurar uma rede roteada no KVM no intervalo 192.168.1.160/28 (assim, terceira tentativa do dedoimedo, o "hacker sujo") e então, ao invés de criar um proxy ARP do jeito do Zvika, usei parprutado , que está disponível no Ubuntu / Mint como um pacote com o mesmo nome. Com parprouted, você pode simplesmente digitar:

sudo parprouted virbr1 wlan0

et voilà, o tráfego funciona nos dois sentidos de / para a VM guest e os outros dispositivos na rede 192.168.1.0/24, bem como para / de sistemas externos (por exemplo, sites da Internet) se essa rede estiver atrás de um NAT.

Isso foi difícil, de qualquer forma, passei dias pesquisando sobre esse assunto e nenhuma fonte foi tão clara quanto a entrada do blog de Zvika !!

    
por 27.06.2015 / 15:35
1

Não é "adaptador sem fio" não suporta bridging. É o ponto de acesso e o protocolo WiFi host-to-ap. Quando você estabelece uma conexão, autentica o MAC do seu adaptador. O protocolo tem um espaço para três MACs: participantes autenticados imediatos e terceiro - para qualquer ponto final atrás do AP. Assim, a estação móvel WiFi poderia enviar pacotes para qualquer MAC, mas somente usar seu próprio MAC como endereço de origem. Você não pode enviar nenhum pacote com outra fonte MAC que esteja autenticado - o AP irá rejeitar esse pacote.

Existe também o protocolo WiFi capaz de bridging verdadeira, chamado WDS. Isso é feito permitindo-se quatro endereços MAC no pacote: dois - participantes autenticados imediatos, ou seja, pontos de ligação ponte e pontos de dois pontos (origem e destino) cujo pacote está sendo transferido pela ponte WiFi.

Leia aqui link sobre isso.

É uma pena que o WDS não esteja bem padronizado, e cada fornecedor o avalia sozinho de uma maneira incompartível. Somente se a aliança WiFi for mais ... organização orientada para o usuário, eles farão as especificações melhor e poderemos fazer conexões de Wi-Fi aqui e ali, entre soluções arbitrárias de fornecedores e, de fato, entre máquinas convidadas e rede sem fio! / p>

Proxy-ARP não é a solução L2, mas é a solução ROUTING, ou seja, L3. Ele engana os dois lados para que você possa ter a mesma sub-rede aqui e ali, mas ainda assim isso é roteamento e, a propósito, isso estraga a rede. Veja a tabela MAC em qualquer máquina para ver o que está acontecendo: todos os MACs para "esse lado" são MAC do nosso roteador proxy-arp.

Para uma verdadeira solução L2, você pode experimentar o recurso "MAC NAT" do Linux, que é configurado com o utilitário ebtables. Como essa é a única solução L2 verdadeira que conheço, acho que é usada pelo VirtualBox. No entanto, basicamente se parece com o proxy-arp. Você certamente deve ser capaz de implementar isso com o KVM e o libvirt.

    
por 06.12.2015 / 19:46