configurar o kvm em uma interface sem fio em uma máquina laptop

14

Estou tentando configurar o KVM na máquina host do ubuntu 14.04 .

  1. Eu uso uma interface sem fio para acessar a Internet na minha máquina. Eu configurei a interface sem fio no meu /etc/networks/interfaces como abaixo.

    auto wlan0
    iface wlan0 inet static
    address 192.168.1.9
    netmask 255.255.255.0
    gateway 192.168.1.1
    wpa-ssid My_SSID
    wpa-psk SSID_Password
    dns-nameservers 8.8.8.8
    dns-search lan
    dns-domain lan
    
  2. Eu verifiquei se minha máquina está disponível para virtualização e este comando confirma que meu hardware suporta virtualização.

    egrep '(vmx|svm)' /proc/cpuinfo
    
  3. Eu instalei os pacotes necessários para a virtualização kvm como abaixo.

    apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder
    
  4. Também instalei o pacote bridge utils para configurar a rede de bridge para o meu kvm .

    apt-get install bridge-utils
    
  5. Modifiquei o meu /etc/network/interfacespara permitir a rede em ponte como abaixo.

    auto br0
    iface br0 inet static
    address 192.168.1.40
    network 192.168.1.0
    netmask 255.255.255.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8
    dns-search lan
    dns-domain lan
    bridge_ports wlan0
    bridge_stp 0ff
    bridge_fd 0
    bridge_maxwait 0
    wpa-ssid my_ssid
    wpa-psk ssid_password
    
  6. Após a etapa acima, eu posso ping 192.168.1.40e também pude ver que br0 e virbr0 estão listados na saída do ifconfig -acomando. Também consigo acessar a Internet sem problemas com minha interface sem fio.

  7. No entanto, após a etapa acima, se eu tentar adicionar outro sistema operacional usando o ubuntu-vm-buildercomando, não consigo adicionar um novo sistema operacional. Este é o comando que eu uso para adicionar um novo sistema operacional.

    sudo ubuntu-vm-builder kvm trusty \
    --domain rameshpc \
    --dest demo1 \
    --hostname demo1 \
    --arch amd64 \
    --mem 1024 \
    --cpus 4 \
    --user ladmin \
    --pass password \
    --bridge br0 \
    --ip 192.168.1.40 \
    --mask 255.255.255.0 \
    --net 192.168.1.0 \
    --bcast 192.168.1.255 \
    --gw 192.168.1.1 \
    --dns 8.8.8.8 \
    --components main,universe \
    --addpkg acpid \
    --addpkg openssh-server \
    --addpkg linux-image-generic \
    --libvirt qemu;///system;  
    

Vi que a configuração de uma rede em ponte usando uma interface sem fio é bastante complicada, conforme discutido nesta pergunta. No entanto, como a resposta descreve, é possível usar um dispositivo de encapsulamento. Eu tentei a opção conforme sugerido neste link. Mas não consegui fazê-lo funcionar.

Ramesh
fonte

Respostas:

17

Como alguém disse certa vez: Nada é impossível no Linux TM , eu poderia alcançar o kvm no meu host com uma rede em ponte através de uma interface sem fio.

Estes são os passos que segui para realizar o mesmo.

  1. Eu instalei o virt-managerpacote para gerenciar a instalação com mais eficiência. Eu instalei como abaixo.

    sudo apt-get install virt-manager
    
  2. Agora, crie uma nova sub-rede usando a GUI do Virt Manager, conforme destacado abaixo. Esta é basicamente uma sub-rede da nossa rede host existente.

    insira a descrição da imagem aqui

  3. Depois de definir esta nova sub-rede , verifique se a rede está disponível e execute ping em alguns sites para verificar a conectividade da rede.

  4. Além disso, verifique as informações de roteamento utilizando routecomando e certifique-se wlan0e virbr2não tem o mesmo destino.

  5. Agora, o passo final para fazê-lo funcionar é emitir o comando abaixo. Aqui 192.168.1.9 é o endereço da máquina host.

    arp -i wlan0 -Ds 192.168.1.9 wlan0 pub
    
  6. Após a etapa acima, consegui instalar com êxito um sistema operacional convidado do Fedora usando o virt-manager.

Referências

http://specman1.wordpress.com/2014/01/02/wireless-bridging-virtual-machines-kvm/ /superuser/694929/wireless-bridge-on-kvm-virtual-machine

Ramesh
fonte
2
Eu tive que ativar o proxy ARP na interface:sudo sysctl net.ipv4.conf.wlan0.proxy_arp=1
Leon Van Zyl
1
Em vez das arpinstruções de comando da Etapa 5 aqui, usei as instruções em "O futuro está aqui ..." em specman1.wordpress.com/2014/01/02/… com sucesso. echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arpe echo 1 > /proc/sys/net/ipv4/conf/virbr1/proxy_arp (não estou dizendo necessariamente os Passo 5 arpinstruções de comando aqui não vai funcionar;. Eu só estou dizendo que eu não usá-los)
DBank
Não consegui fazê-lo funcionar ... cada artigo diz algo diferente, nenhum é claro o suficiente para seguir. Convidado do Windows host do Linux.
TetraDev 10/04/19
0

De acordo com os documentos da KVM, não é possível usar uma ponte com uma NIC sem fio. Não sei o motivo pelo qual, embora eu costumava conectar o convidado no VirtualBox.

Passei algumas horas para descobrir como conectar o convidado à rede sem fio do host e descobri que a maneira mais fácil de fazer isso é usando um dispositivo TAP. A única desvantagem desse método é que você não pode usar o DHCP no convidado e precisa fornecer manualmente um endereço IP a partir da sub-rede da rede sem fio (o que pode causar conflitos ou inconvenientes de IP no caso de implantar muitas VMs).

Aqui estão as etapas para conectar o convidado na rede sem fio do host usando um dispositivo TAP:

0 / Ativar roteamento IPv4 para o kernel do Linux

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

1 / Crie um dispositivo de toque chamado tap0 acessível a partir do usuário convidado (Substitua pelo seu nome de usuário) sem o sudo:

sudo ip tuntap add mode tap tap0 user guest

2 / Atribua um endereço IP ao dispositivo tap0 (não precisa ser da sub-rede da rede sem fio):

sudo ip addr add 10.10.10.10/24 dev tap0
sudo ip link set tap0 up

3 / Use parprouted(pode ser necessário instalá-lo) para implementar a ponte arp do proxy, que permite fazer a ponte da Ethernet do convidado atrás da NIC sem fio do host.

sudo parprouted wlan0 tap0

(Substitua wlan0 pela interface sem fio do seu host)

4 / Adicionando algumas entradas de tabelas de roteamento para permitir que os pacotes viajem pelas extremidades do dispositivo de toque:

sudo iptables -A INPUT -i tap0 -j ACCEPT
sudo iptables -A FORWARD -i tap0 -j ACCEPT
sudo iptables -A FORWARD -o tap0 -j ACCEPT

No convidado, atribua um endereço IP estático da sub-rede de rede sem fio do host. Por exemplo, se sua wlan0 estiver em 192.168.1.0/24, o convidado poderá ser configurado com

sudo ip addr add 192.168.1.30/24 dev eth0

(eth0 é a placa de rede do seu convidado)

ou permanentemente em / etc / network / interfaces com:

auto eth0
iface eth0 inet static
  address 192.168.1.30
  netmask 255.255.255.0
  network 192.168.1.0
  broadcast 192.168.1.255
  gateway 192.168.1.25

Inicie seu convidado com:

kvm -hda guest.img -m 512 -net nic -net tap,ifname=tap0,script=no

Agora, o ping funciona entre todas as máquinas conectadas na sua rede sem fio e os convidados.

Karim Manaouil
fonte