qemu-kvm mit Bridge startet nur als root

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

qemu-kvm mit Bridge startet nur als root

Beitrag von alexander_ro » 17.11.2010 23:58:26

Hi Debianer,

jetzt hab ich noch ein Problem mit meinem KVM. Benutzen tu ich Lenny mit dem qemu-kvm Backportpaket. Wenn ich meine Gäste als root starte funktioniert meine Bridge und ich habe Netzzugriff auch von aussen. Starte ich es als normaler User bekomme ich diese Fehlermeldung:

Code: Alles auswählen

alex@isis:~$ kvm HellHound.img -net nic -net tap
could not configure /dev/net/tun: Operation not permitted
Jetzt habe ich im Netz gelesen das man das Problem mit sudo lösen kann. Das habe ich auch versucht aber irgendwie weiss ich nicht für was alles ich root Rechte erlauben muß. Ich wollte diese der kvm Gruppe geben weil ein User der KVM benutzt ja so in diese eingetragen werden muß.

/etc/sudoers

Code: Alles auswählen

%kvm ALL=NOPASSWD: /sbin/ifconfig, /usr/sbin/brctl, /sbin/ip

Code: Alles auswählen

alex@isis:~$ sudo -l
Matching Defaults entries for alex on this host:
    env_reset

User alex may run the following commands on this host:
    (root) NOPASSWD: /sbin/ifconfig, (root) /usr/sbin/brctl, (root) /sbin/ip
Was mache ich denn da noch falsch?

Vielleicht wisst Ihr ja auch eine einfachere Methode den Gästen zu einem vollen Netzzugriff zu verhelfen.

[Edit]
... mir auch noch unklar ist wie das mit virtuellen Netzwerkschnittstellen auf dem Host zusammen zu konfigurieren ist.
Das mit den virtuellen Netzwerkschnittstellen habe ich jetzt gelöst. Man baut einfach der Bridge einen weiteren Stöpsel drann ;-)
also br0:0

Code: Alles auswählen

# Bridge wegen KVM Gästen.
auto br0
iface br0 inet static
  address 10.0.0.100
  network 10.0.0.0
  netmask 255.255.255.0
  broadcast 10.0.0.255
  gateway 10.0.0.1
  bridge_ports all
  bridge_stp off
  bridge_maxwait 0
  bridge_fd 0
  dns-nameserver 194.25.0.52
  dns-search thewebsideoflife.de

# Weitere IP Schnittstelle für das Hostsystem.
auto br0:1
iface br0:1 inet static
  address 10.0.0.99
  network 10.0.0.0
  netmask 255.255.255.0
[/Edit]

Grüße
Alexander

chris001
Beiträge: 17
Registriert: 20.02.2010 16:16:54

Re: qemu-kvm mit Bridge startet nur als root

Beitrag von chris001 » 21.11.2010 01:26:18

Wenn dein User auch in der Gruppe "kvm" ist, dann duerfte das reichen:

Code: Alles auswählen

# /etc/sudoers
%kvm ALL=NOPASSWD: /usr/bin/kvm, /usr/bin/kvm-img
Du schreibst dir ansonsten deine VM-Startscripte selber?

Ich kann dir an der Stelle nur empfehlen "libvirt" und "virt-install" zu installieren und damit zu arbeiten. Du kannst nach der Installation der Software deinen User einfach in die Gruppe "kvm" und "libvirt" eintragen und von da an die VMs per Konsole ueber virsh oder grafisch ueber den virt-manager (extra Paket) verwalten. Das hat den Vorteil das du eine einheitliche Konfiguration in Form von XML-Dateien erhaelst.

Was deine Bridge angeht. Da bin ich mir nicht sicher, ob ich verstehe was du vorhast. Es reicht in der Regel bei einfachen Szenarien, wenn man die Bridge fuer das ersten physikalische Interface einrichtet, um das dahinter liegende Gateway zu erreichen. Du willst ja sicherlich, dass deine VM wie eine normale Maschine in deinem Heim-Netzwerk behandelt wird, richtig?

Im Prinzip hast du das ja schon so umgesetzt, aber nochmal als Beispiel eine Konfiguration:

Code: Alles auswählen

auto br0
iface br0 inet static
	address <ip-hostsystem>
	netmask <netzmaske>
	network <netzadresse>
	broadcast <bcast>
	gateway <heim-router/gw>
	bridge_ports eth0
	bridge_fd 9
	bridge_hello 2
	bridge_maxage 12
	bridge_maxwait 2
	bridge_stp off
Bei der Erstellung deiner VM per KVM sagst du nun einfach, dass du "br0" nutzen willst. Dann geht der Netzwerkverkehr ueber diese. Bei der Installation des Betriebssystems der VM gibt du IP, Mask, und Gatewy deines Heim-Netzwerks an (wie gewohnt!).

alexander_ro
Beiträge: 298
Registriert: 16.01.2006 17:44:21
Lizenz eigener Beiträge: GNU General Public License

Re: qemu-kvm mit Bridge startet nur als root

Beitrag von alexander_ro » 21.11.2010 20:33:07

Danke für Deine Hilfe. Mein User ist in der Gruppe kvm und wenn ich eine VM ohne die -net Optionen starte geht das auch als normaler User. Aber ohne die Optionen geht das Netzwerk nicht und mit den -net Optionen geht das starten nur als root. Wenn ich kvm mit sudo starte dann läuft die VM ja mit root rechten dann kann ich die gleich als root starten ist dann Jacke wie Hose.
Du schreibst dir ansonsten deine VM-Startscripte selber?
Nein keine Scripte ich starte die noch von Hand. Das ist ein realer Internetserver in meiner Firma der läuft immer und wird höchstens mal wegen einem Kernel Update neugestartet. Ich habe nur im Beispiel die IP-Adressen aus der Testumgebung angegeben. Ich wollte erst mal wissen und verstehen wie das mit kvm direkt geht. Wenn man die Hintergründe mal verstanden hat geht Fehlersuchen dann leichter da hier die Verwaltungstools meinst kläglich scheitern wenns klemmt und es ist keine Frage ob es mal klemmt sondern nur wann.

Ob und welche Tools ich dann verwende weiss ich noch nicht. Nur grafische geht nicht der Server hat kein X am laufen.
Was deine Bridge angeht. Da bin ich mir nicht sicher, ob ich verstehe was du vorhast.
Mein Server hat mehrere IP-Adressen die unter Linux dann normal eth0, eth0:0, eth0:1, usw. heissen (virtuelle Netzwerkdevices). Ich war mir jetzt nicht sicher wie das geht wenn man eine Bridge benutzt. Mit Bridge bekommt ja eth0 keine IP-Adresse mehr und wird mit br0 verbunden und die Bridge bekommt dann eine IP-Adresse. Ich habe jetzt für die weiteren Adressen einfach ein br0:0 ... usw angelegt dann höhrt der Server wieder auf alle konfigurierten IP-Adressen und die VM nur auf die die innerhalb der VM konfiguriert sind. Das die Dienste auf dem Server jeweils eigene IP-Adressen haben liegt daran das die bei hoher Last oder ausfällen dynamisch auf andere Server verschoben werden. Bei niedriger Last werden sie auf einem Server zusammengezogen und die anderen Server abgeschaltet (Green Software ;-)).

Alexander

Antworten