Ich versuche, KVM in Ubuntu 14.04 Host-Maschine einzurichten .
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
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
Ich habe die erforderlichen Pakete für die KVM- Virtualisierung wie folgt installiert .
apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder
Ich habe auch das Bridge-Utils-Paket installiert, um das Bridge-Netzwerk für mein KVM zu konfigurieren .
apt-get install bridge-utils
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
Nach dem obigen Schritt kann
ping 192.168.1.40
und kann ich sehen, dass br0 und virbr0 in der Befehlsausgabe aufgeführt sindifconfig -a
. Ich kann auch problemlos mit meiner drahtlosen Schnittstelle auf das Internet zugreifen.Nach dem obigen Schritt kann ich jedoch
ubuntu-vm-builder
kein 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.
quelle
sudo sysctl net.ipv4.conf.wlan0.proxy_arp=1
arp
Anweisungen 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_arp
undecho 1 > /proc/sys/net/ipv4/conf/virbr1/proxy_arp
(Ich sage nicht unbedingt, dass diearp
Anweisungen für Schritt 5 hier nicht funktionieren; ich sage nur, dass ich sie nicht verwendet habe.)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):
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:
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:
Starten Sie Ihren Gast mit:
Jetzt funktioniert das Pingen zwischen allen Computern, die mit Ihrem drahtlosen Netzwerk verbunden sind, und den Gästen.
quelle