KVM: Netzwerkeinstellungen auf einem Laptop

Servus zusammen, auf meinem Laptop habe ich KVM unter OS 11.3_64 laufen. Mit dem Netzwerk habe ich aber noch Probleme. Da mein Laptop die Netzwerkverbindungen nicht mit ifup usw. verwaltet, sondern mit KNetworkmanager, kann ich auch nicht mit Yast eine Bridge einrichten, die von KVM dann sicht- und nutzbar wäre. Kurz gesagt: hat jemand einen Tip für mich, wie ich meinen KVM-Gast mit Netzwerk versorge, egal ob ich grad per WLAN oder per LAN am Netz hänge? Im Grunde würde es mir sogar reichen, wenn der Gast den Wirt sehen könnte. Der Rest der Welt ist nicht ganz so wichtig in meinem Fall. Danke für Tips! -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

On Tuesday, January 11, 2011 11:13:34 Andre Tann wrote:
Kurz gesagt: hat jemand einen Tip für mich, wie ich meinen KVM-Gast mit Netzwerk versorge, egal ob ich grad per WLAN oder per LAN am Netz hänge?
Im Anhang findest Du meine qemu-if{up,down}. Meine VMs haben jede 2 Interfaces. Im Host sind diese als qiX und qeX sichtbar. Mit brctl addbr wird ein neuer virtueller Switch angelegt, q0 für die qeX und q1 für die qiX. Die VMs werden gestartet mit: ... -net nic,vlan=0,model=virtio,macaddr=$MACEXT \ -net tap,vlan=0,name=ext,ifname=$IFNAMEEXT,$IFUP,$IFDOWN \ -net nic,vlan=1,model=virtio,macaddr=$MACINT \ -net tap,vlan=1,name=int,ifname=$IFNAMEINT,$IFUP,$IFDOWN \ ... Die Variablen werden im Startscript vorher berechnet aus einer Maschinennummer, die für jede VM eindeutig ist: IFNAMEEXT=qe$MACHNR IFNAMEINT=qi$MACHNR MACEXT=E0:23:DA MACINT=F0:23:DA MACEXT="$MACEXT:$(printf %02X:%02X:%02X $(( (MACHNR>>16)&0xff )) \ $(( (MACHNR>>8)&0xff )) $(( MACHNR&0xff )))" MACINT="$MACINT:$(printf %02X:%02X:%02X $(( (MACHNR>>16)&0xff )) \ $(( (MACHNR>>8)&0xff )) $(( MACHNR&0xff )))" Anschließend konfigurierst Du den Notebook als Masquerading Router und schon kommst Du aus der VM ins Internet. Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net

Servus Torsten, Torsten Förtsch, Dienstag 11 Januar 2011:
Im Anhang findest Du meine qemu-if{up,down}.
Vielen Dank! Ist das ne Spezial-Konstruktion von Dir? Ich denke, ich komm damit zurecht. Aber ein Normaluser könnte damit vielleicht überfordert sein. Sprich: ich frage mich, ob es einen Weg mit weniger Handarbeit für die Standard-Fälle auch gäbe. Falls nicht, dann arbeite ich mich durch Deine Skripte, das krieg ich schon hin. Danke+Gruß! -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

On Tuesday, January 11, 2011 17:33:47 Andre Tann wrote:
Ich habe vor einem Vierteljahr begonnen, mich mit KVM zu beschäftigen. Die Doku ist recht verstreut, habe ich den Eindruck. Außerdem ist KVM ein sehr aktives Projekt, will sagen, es ändert sich ständig. Als ich mit meinen Scripten fast fertig war, habe ich folgendes Buch gefunden: http://qemu-buch.de/de/index.php/QEMU-KVM-Buch/_Inhaltsverzeichnis Sicherlich nicht die aktuellste Information, aber für den Einstieg hätte es mir sehr geholfen, hätte ich es früher entdeckt.
Sprich: ich frage mich, ob es einen Weg mit weniger Handarbeit für die Standard-Fälle auch gäbe.
Es gibt inzwischen eine Reihe von Fensterprogrammen, die VMs mehr oder weniger ausführlich konfigurieren können. Falls Du sowas meinst. Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

Torsten Förtsch, Dienstag 11 Januar 2011:
Ich meine an sich weniger Fensterprogramme, sondern mehr so etwas wie eine Option "VM immer mit dem Netz verbinden, egal wie". Denn es ist ja keine exotische Konstellation, daß man das Netz des Wirts nutzen möchte, egal ob sich das Interface mal ändert (Kabel, WLAN, UMTS...) Am Wochenende werd ich dazu kommen mir das mal einzurichten, und ggf. meld ich mich nochmal. Vielen Dank einstweilen! -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

Servus Torsten, Torsten Förtsch, Dienstag 11 Januar 2011:
Dieser Schritt ist hier schon ein Problem. Nehmen wir an, ich möchte die VM an das WLAN-Device wlan0 hängen. Also muß ich doch eine Bridge konfigurieren, die an wlan0 gebunden ist, richtig? # brctl addbr brwlan0 # brctl addif brwlan0 wlan0 can't add wlan0 to bridge brwlan0: Operation not supported Die Bridge ist aber da: # brctl show bridge name bridge id STP enabled interfaces brwlan0 8000.000000000000 no Am allerliebsten wäre mir ohnehin, wenn VM und Host sich ein Netzwerk teilen würden, welches mit der Außenwelt nichts zu tun hat. Dazu wiederum brauche ich - meiner Vorstellung nach - ein virtuelles Netzwerkdevice, sagen wir eth2, welches keine Hardware-Entsprechung hat, aber eine IP-Adresse in einem ungenutzen Bereich. Hast Du da nochmal einen Tip für mich? Meine Fragen sind vermutlich nicht ganz klar, weil auch meine Vorstellung von dem, was ich machen muß, nicht ganz klar ist. Das versuch ich mir gerade zu erarbeiten. -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

Am Sat, 15 Jan 2011 17:29:07 +0100 schrieb Andre Tann <atann@alphasrv.net>:
Das ist /dev/tun0, oder auch /dev/tap0 -Dieter -- Dieter Klünter | Systemberatung http://dkluenter.de GPG Key ID:DA147B05 53°37'09,95"N 10°08'02,42"E -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

On Saturday, January 15, 2011 17:29:07 Andre Tann wrote:
Also, wenn Du aus den VMs das Internet nicht sehen willst, ist es ganz einfach: 1) bridge auf dem Host erzeugen und konfigurieren: brctl addbr br0 ip addr add 192.168.234.1/24 dev br0 ip link set br0 up Nun sollte "ping 192.168.234.1" schon funktionieren. 2) qemu ... -net nic,model=virtio,macaddr=$MAC -net tap,ifname=vm0 qemu startet und holt sich ein neues tap-Interface, das er vm0 nennt. Dann ruft er /etc/qemu-ifup auf, das als "$1" den Interfacenamen erhält. Jetzt musst Du das virtuelle Kabel an beiden Enden einstöpseln: ip link set "$1" up brctl addif br0 "$1" "$1" ist bei obigem qemu-Aufruf "vm0". 3) Wenn Du dann "eth0" in der VM sagen wir als "192.168.234.2" konfigurierst: ip addr add 192.168.234.1/24 dev eth0 ip link set eth0 up sollte vom Host aus auch "ping 192.168.234.2" und von der VM aus "ping 192.168.234.1" funktionieren. Firewalls musst Du natürlich ausschalten. Das was VMware "host-only networking" nennt, sollte dann schon tun. Du musst also kein real existierendes Interface mit der Bridge verbinden. Übrigens musst Du qemu als Root starten, wenn Du obiges Verfahren benutzen willst. Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

Servus Torsten, Torsten Förtsch, Samstag 15 Januar 2011:
Also, wenn Du aus den VMs das Internet nicht sehen willst, ist es ganz einfach:
KVM ist wirklich klasse. Als ich mich durch Deine Hinweise gewühlt habe (die letztlich funktioniert haben), bin ich noch auf folgende Möglichkeit gestoßen: qemu ... -net nic -net user Dann baut KVM von ganz alleine ein privates Netzwerk mit DHCP, DNS und Nat in das Netz des Hosts auf. Sehr hilfreich hierzu diese Webseite: http://www.linux-kvm.org/page/Networking Das war die Option, die ich kürzlich meinte: das ist ein Standard-Fall, das muß ohne viel Handarbeit gehen. Soweit für die Akten, falls mal jemand anderes vor diesem Problem steht. Vielen Dank für die Hilfe! -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

On Monday, January 17, 2011 09:44:38 Andre Tann wrote:
nicht die schnellste Art, aber geht. Wenn es Dir nicht auf Geschwindigkeit ankommt kannst Du noch viele lustige Dinge machen, z.B. mit Multicast Gruppen ein IP Netz emulieren. Das größte Problem für mich ist im Moment die unzureichende USB Unterstützung. QEMU kann im Moment nur 1.1. Es wird aber daran gearbeitet. Ein weiterer Punkt war für mich, ich wollte die VMs über die VNC Konsole bedienen. So laufen sie unabhängig vom gerade eingeloggten Benutzer und können auch weiter laufen, wenn sich der aktuelle Benutzer ausloggt. Windows war so aber nicht bedienbar, weil der virtuelle Mauszeiger immer dem realen um einige Zentimeter hinterher hinkte. So ist es sehr schwierig, z.B. den Start-Button zu treffen. Hier hilft es, die VM mit den Optionen "-usbdevice tablet" zu starten. Windows wird dann einen neuen Treiber installieren. Fortan klebt der virtuelle Zeiger am realen. Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

Torsten Förtsch, Montag 17 Januar 2011:
Geschwindigkeit ist in diesem Fall egal, das stimmt. Aber gut zu wissen.
Das größte Problem für mich ist im Moment die unzureichende USB Unterstützung. QEMU kann im Moment nur 1.1. Es wird aber daran gearbeitet.
Ich hingegen war erstaunt, wie gut USB funktioniert. Ich habe nämlich im konkreten Fall eine Datev-Installation laufen, die sowohl einen USB-DFÜ-Dongle als auch einen USB-Softwareschutz-Dongle braucht. Läuft einwandfrei.
Ein weiterer Punkt war für mich, ich wollte die VMs über die VNC Konsole bedienen.
Das wäre mein nächste Punkt gewesen, dem ich mich widmen wollte. Aber wenn Du es schon ansprichst: Wenn eine Maschine mit quemu -hda ... -net... gestartet ist, wie kann ich dann die grafische Konsole abhängen und später wieder anhängen, ohne die Maschine abzuwürgen? Und weiter - wie kann ich die Maschine evtl. zwischenzeitlich in den Suspend schicken und später wieder aufwecken?
Ich steuere Windows dann immer gern über rdesktop, denn das läuft immer super, und hat auch nie Übersetzungsfehler, was die Tastatur betrifft. Viele Grüße! -- Andre Tann -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org

On Monday, January 17, 2011 13:47:52 Andre Tann wrote:
Suspend to Disk sollte eigentlich gehen. Ansonsten hilft das Stichwort "Migration" damit kannst Du die Maschine prinzipiell auch einfrieren und später wieder aufwecken. Mir hat das aber bei jedem der Versuche zu lange gedauert. Was hier aber völlig ohne Probleme geht, ist suspend disk/ram des Hosts bei laufenden VMs. Ich behelfe mir damit. Die Experimente, die VM einzufrieren habe ich aufgegeben. Wenn Du einen schnellen Weg findest, wäre ich aber auch interessiert. Spice ist ein Projekt, das sich um Desktop-Virtualisierung mit QEMU kümmert. Das sollte man beobachten. Sowas wie "grafische Konsole abhängen und später wieder anhängen" ist deren Ding. (auch Weiterleitung von Geräten: Du steckst lokal einen USB Stick an und er erscheint in der VM, die in der Firma läuft.) Man sagt zwar, man soll in einer VM keinen NTP betreiben, weil die Uhr zu unregelmäßig läuft. Doch war das hier die einzige Möglichkeit, die ich fand, um wirklich eine synchrone Uhr zu haben. Wenn Du den Host bei laufender VM schlafen legst, solltest Du den NTP Server in der VM mit tinker panic 0 konfigurieren und als Zeitserver den Host eintragen. Das "tinker" erlaubt der VM die Zeit zu synchronisieren, auch wenn größere Sprünge nötig sind. "Shared Folders" habe ich über NFS4 und Samba realisiert. Sicher auch nicht das Beste, aber tut. Spätere Versionen von QEMU enthalten dann mit virtio-9p eine bessere Lösung. Hast Du eigentlich schon KSM entdeckt? Ich habe auf einer Kiste 4 Linux-VMs laufen, von denen jede 2 GB RAM hat. KSM mappt RAM-Seiten gleichen Inhalts auf die selbe physikalische Seite. In diesem Setup spart das fast 3 GB. Torsten Förtsch -- Need professional modperl support? Hire me! (http://foertsch.name) Like fantasy? http://kabatinte.net -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (3)
-
Andre Tann
-
Dieter Kluenter
-
Torsten Förtsch