configurar kvm en una interfaz inalámbrica en una máquina portátil


14

Estoy tratando de configurar KVM en ubuntu 14.04 host machine.

  1. Utilizo una interfaz inalámbrica para acceder a Internet en mi máquina. He configurado la interfaz inalámbrica en mi /etc/networks/interfaces como a continuación.

    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. Verifiqué si mi máquina está disponible para la virtualización y este comando confirma que mi hardware es compatible con la virtualización.

    egrep '(vmx|svm)' /proc/cpuinfo
    
  3. Instalé los paquetes necesarios para la virtualización de kvm como se muestra a continuación.

    apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder
    
  4. También instalé el paquete de utilidades de puente para configurar la red de puente para mi kvm .

    apt-get install bridge-utils
    
  5. Modifiqué mi /etc/network/interfacespara permitir la red puenteada de la siguiente manera.

    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. Después del paso anterior, puedo ping 192.168.1.40y también pude ver que hay br0 y virbr0 en la salida del ifconfig -acomando. También puedo acceder a Internet sin ningún problema con mi interfaz inalámbrica.

  7. Sin embargo, después del paso anterior, si intento agregar otro sistema operativo usando el ubuntu-vm-buildercomando, no puedo agregar un nuevo sistema operativo. Este es el comando que uso para agregar un nuevo sistema operativo.

    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;  
    

He visto que configurar una red en puente usando una interfaz inalámbrica es bastante complicado como se discutió en esta pregunta. Sin embargo, como lo describe la respuesta, es posible usar un dispositivo de túnel. He probado la opción como se sugiere en este enlace. Pero no pude hacerlo funcionar.

Respuestas:


17

Como alguien dijo correctamente una vez: Nada es imposible en Linux TM , podría lograr el kvm en mi host con una red puenteada a través de una interfaz inalámbrica.

Estos son los pasos que seguí para lograr lo mismo.

  1. Instalé el virt-managerpaquete para administrar la instalación de manera más eficiente. Lo instalé como a continuación.

    sudo apt-get install virt-manager
    
  2. Ahora, cree una nueva subred utilizando la GUI de Virt Manager como se resalta a continuación. Esto es básicamente una subred de nuestra red de host existente.

    ingrese la descripción de la imagen aquí

  3. Después de configurar esta nueva subred , verifique si la red está disponible y haga ping en algunos sitios para verificar la conectividad de la red.

  4. Además, verifique la información de enrutamiento utilizando routecomandos y asegurarse wlan0y virbr2no tiene el mismo destino.

  5. Ahora, el paso final para que funcione es emitir el siguiente comando. Aquí 192.168.1.9 es la dirección de la máquina host.

    arp -i wlan0 -Ds 192.168.1.9 wlan0 pub
    
  6. Después del paso anterior, pude instalar con éxito un sistema operativo invitado Fedora usando virt-manager.

Referencias

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


2
Tuve que habilitar el proxy ARP en la interfaz:sudo sysctl net.ipv4.conf.wlan0.proxy_arp=1
Leon Van Zyl

1
En lugar de las arpinstrucciones del comando del Paso 5 aquí, utilicé las instrucciones bajo "El futuro está aquí ..." en specman1.wordpress.com/2014/01/02/… con éxito. echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arpy echo 1 > /proc/sys/net/ipv4/conf/virbr1/proxy_arp (no estoy diciendo necesariamente que las arpinstrucciones del comando del Paso 5 aquí no funcionarán; solo digo que no las
usé

No pude hacerlo funcionar ... cada artículo dice algo diferente, ninguno es lo suficientemente claro como para seguirlo. Host Linux invitado de Windows.
TetraDev

0

Según los documentos de KVM, no es posible usar un puente con una NIC inalámbrica. No sé la razón por la que, aunque solía conectar al invitado en VirtualBox.

He pasado algunas horas para descubrir cómo conectar al invitado a la red inalámbrica del host y descubrí que la forma más fácil de hacerlo es utilizando un dispositivo TAP. La única desventaja de este método es que no puede usar DHCP en el invitado y debe proporcionarle manualmente una dirección IP desde la subred de la red inalámbrica (lo que puede causar conflictos o inconvenientes de IP en caso de implementar muchas máquinas virtuales).

Estos son los pasos para conectar al invitado en la red inalámbrica del host utilizando un dispositivo TAP:

0 / Habilitar el enrutamiento IPv4 para el kernel de Linux

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

1 / Cree un dispositivo tap llamado tap0 accesible desde el usuario invitado (Reemplace con su nombre de usuario) sin sudo:

sudo ip tuntap add mode tap tap0 user guest

2 / Asigne una dirección IP al dispositivo tap0 (no tiene que ser desde la subred de la red inalámbrica):

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

3 / Use parprouted(puede que tenga que instalarlo) para implementar el puente de arp proxy que permite conectar el Ethernet invitado detrás de la NIC inalámbrica del host.

sudo parprouted wlan0 tap0

(Reemplace wlan0 con la interfaz inalámbrica de su host)

4 / Agregar algunas entradas de tablas de enrutamiento para permitir que los paquetes viajen a través de los extremos del dispositivo táctil:

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

En el invitado, asigne una dirección IP estática desde la subred de la red inalámbrica del host. Por ejemplo, si su wlan0 está en 192.168.1.0/24, el invitado se puede configurar con

sudo ip addr add 192.168.1.30/24 dev eth0

(eth0 es la NIC de su invitado)

o permanentemente en / etc / network / interfaces con:

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

Lanza a tu invitado con:

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

Ahora el ping funciona entre todas las máquinas conectadas en su red inalámbrica y los invitados.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.