Richten Sie kvm auf einer drahtlosen Schnittstelle auf einer Laptop-Maschine ein

13

Ich versuche, KVM in Ubuntu 14.04 Host-Maschine einzurichten .

  1. Ich verwende eine drahtlose Schnittstelle, um auf meinem Computer auf das Internet zuzugreifen. Ich habe die drahtlose Schnittstelle in meinem /etc/networks/interfaces wie folgt eingerichtet.

    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. Ich habe überprüft, ob mein Computer für die Virtualisierung verfügbar ist, und dieser Befehl bestätigt, dass meine Hardware die Virtualisierung unterstützt.

    egrep '(vmx|svm)' /proc/cpuinfo
    
  3. Ich habe die erforderlichen Pakete für die KVM- Virtualisierung wie folgt installiert .

    apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder
    
  4. Ich habe auch das Bridge-Utils-Paket installiert, um das Bridge-Netzwerk für mein KVM zu konfigurieren .

    apt-get install bridge-utils
    
  5. Ich habe meine geändert /etc/network/interfaces, um das überbrückte Netzwerk wie folgt zuzulassen.

    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. Nach dem obigen Schritt kann ping 192.168.1.40und kann ich sehen, dass br0 und virbr0 in der Befehlsausgabe aufgeführt sind ifconfig -a. Ich kann auch problemlos mit meiner drahtlosen Schnittstelle auf das Internet zugreifen.

  7. Nach dem obigen Schritt kann ich jedoch ubuntu-vm-builderkein neues Betriebssystem hinzufügen, wenn ich versuche, mit dem Befehl ein anderes Betriebssystem hinzuzufügen. Dies ist der Befehl, mit dem ich ein neues Betriebssystem hinzufüge.

    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;  
    

Ich habe gesehen, dass das Einstellen eines überbrückten Netzwerks über eine drahtlose Schnittstelle recht kompliziert ist, wie in dieser Frage erörtert . Wie die Antwort beschreibt, ist es jedoch möglich, ein Tunnelgerät zu verwenden. Ich habe die in diesem Link vorgeschlagene Option ausprobiert . Aber ich konnte es nicht zum Laufen bringen.

Ramesh
quelle

Antworten:

17

Wie jemand zu Recht einmal sagte, unter Linux TM ist nichts unmöglich , ich könnte die KVM in meinem Host mit einem überbrückten Netzwerk über eine drahtlose Schnittstelle erreichen.

Dies sind die Schritte, die ich befolgt habe, um dasselbe zu erreichen.

  1. Ich habe das virt-managerPaket installiert , um die Installation effizienter zu verwalten. Ich habe es wie folgt installiert.

    sudo apt-get install virt-manager
    
  2. Erstellen Sie nun ein neues Subnetz mit der GUI von Virt Manager (siehe unten). Dies ist im Grunde ein Subnetzwerk unseres bestehenden Hostnetzwerks.

    Bildbeschreibung hier eingeben

  3. Überprüfen Sie nach dem Einstellen dieses neuen Teilnetzwerks , ob das Netzwerk verfügbar ist, und senden Sie einen Ping-Befehl an einige Standorte, um die Netzwerkkonnektivität zu überprüfen.

  4. Überprüfen Sie auch die Routing - Informationen mit routeBefehl und stellen Sie sicher , wlan0und virbr2nicht das gleiche Ziel haben.

  5. Der letzte Schritt, um es zum Laufen zu bringen, besteht darin, den folgenden Befehl auszuführen. Hier ist 192.168.1.9 die Adresse der Hostmaschine.

    arp -i wlan0 -Ds 192.168.1.9 wlan0 pub
    
  6. Nach dem obigen Schritt konnte ich ein Fedora-Gastbetriebssystem mit der erfolgreich installieren virt-manager.

Verweise

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

Ramesh
quelle
2
Ich musste das ARP-Proxying auf der Benutzeroberfläche aktivieren:sudo sysctl net.ipv4.conf.wlan0.proxy_arp=1
Leon Van Zyl
1
Anstelle der arpAnweisungen für den Befehl " Schritt 5" hier habe ich die Anweisungen unter "Die Zukunft ist da ..." unter specman1.wordpress.com/2014/01/02/… mit Erfolg verwendet. echo 1 > /proc/sys/net/ipv4/conf/wlan0/proxy_arpund echo 1 > /proc/sys/net/ipv4/conf/virbr1/proxy_arp (Ich sage nicht unbedingt, dass die arpAnweisungen für Schritt 5 hier nicht funktionieren; ich sage nur, dass ich sie nicht verwendet habe.)
dbank
Ich konnte es nicht zum Laufen bringen ... jeder Artikel sagt etwas anderes, keiner ist klar genug, um zu folgen. Linux-Host Windows-Gast.
TetraDev
0

Laut KVM-Dokumentation ist es nicht möglich, eine Bridge mit einer drahtlosen Netzwerkkarte zu verwenden. Ich kenne den Grund nicht, obwohl ich den Gast auf VirtualBox überbrückt habe.

Ich habe einige Stunden damit verbracht, herauszufinden, wie der Gast mit dem drahtlosen Netzwerk des Hosts verbunden werden kann, und fand heraus, dass dies am einfachsten mit einem TAP-Gerät möglich ist. Der einzige Nachteil dieser Methode ist, dass Sie DHCP für den Gast nicht verwenden können und ihm manuell eine IP-Adresse aus dem drahtlosen Netzwerk-Subnetz zuweisen müssen (was zu IP-Konflikten oder Unannehmlichkeiten führen kann, wenn viele VMs bereitgestellt werden).

Gehen Sie wie folgt vor, um den Gast über ein TAP-Gerät mit dem drahtlosen Netzwerk des Hosts zu verbinden:

0 / IPv4-Routing für den Linux-Kernel aktivieren

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

1 / Erstellen Sie ein Tap-Gerät mit dem Namen tap0, auf das der Benutzer guest (Ersetzen Sie es durch Ihren Benutzernamen) ohne sudo zugreifen kann:

sudo ip tuntap add mode tap tap0 user guest

2 / Weisen Sie dem tap0-Gerät eine IP-Adresse zu (es muss nicht aus dem drahtlosen Netzwerk-Subnetz stammen):

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

3 / Verwenden Sie parprouted(möglicherweise müssen Sie es installieren), um Proxy-Arp-Bridging zu implementieren, mit dem das Gast-Ethernet hinter der drahtlosen Netzwerkkarte des Hosts überbrückt werden kann.

sudo parprouted wlan0 tap0

(Ersetzen Sie wlan0 durch die WLAN-Schnittstelle Ihres Hosts.)

4 / Hinzufügen einiger Routing-Tabelleneinträge, damit Pakete durch die Enden des Tap-Geräts geleitet werden können:

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

Weisen Sie dem Gast eine statische IP-Adresse aus dem drahtlosen Netzwerk-Subnetz des Hosts zu. Wenn Ihr wlan0 beispielsweise auf 192.168.1.0/24 eingestellt ist, kann der Gast mit konfiguriert werden

sudo ip addr add 192.168.1.30/24 dev eth0

(eth0 ist die NIC Ihres Gastes)

oder permanent in / etc / network / interfaces mit:

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

Starten Sie Ihren Gast mit:

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

Jetzt funktioniert das Pingen zwischen allen Computern, die mit Ihrem drahtlosen Netzwerk verbunden sind, und den Gästen.

Karim Manaouil
quelle