Wie gebe ich meinen KVM-Gästen Netzwerkkonnektivität?

Wie gebe ich meinen KVM-Gästen Netzwerkkonnektivität?

Ich habe keine Ahnung von KVM und der gesamten Idee der Virtualisierung, habe aber seit einigen Tagen darüber gelesen und in den letzten Stunden damit herumgespielt.

Erstellen, Installieren, Klonen usw. ... alles scheint großartig. Aber die Gäste, die ich einrichte, erhalten die Meldung „Netzwerk nicht erreichbar“, wenn ich versuche, 8.8.8.8 anzupingen.

Ich verwende CentOS 6.5 für Host und Gäste.

ifconfig auf dem Gast:

lo    Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Mir ist klar, dass hier wahrscheinlich das Problem liegt. Ich nehme an, es müsste ein eth0-Gerät geben. Warum gibt es das nicht?

Code installieren:

virt-install \
--virt-type kvm \
--name sebweb2 \
--ram 16384 \
--cdrom /var/ISOs/CentOS-6.5-x86_64-minimal.iso \
--disk /var/lib/libvirt/images/sebweb2.img,format=qcow2 \
--network bridge=br0 \
--nographics \
--os-type linux \
--os-variant rhel6 \
--vcpus 12

ifconfig des Hosts:

br0   Link encap:Ethernet  HWaddr 16:AC:2D:A6:98:40
      inet addr:xxx.yyy.zzz.217  Bcast:xxx.yyy.zzz.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:92172 errors:0 dropped:0 overruns:0 frame:0
      TX packets:58463 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:5428257 (5.1 MiB)  TX bytes:71953860 (68.6 MiB)

eth0  Link encap:Ethernet  HWaddr 16:AC:2D:A6:98:40
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:117592 errors:0 dropped:0 overruns:0 frame:0
      TX packets:79097 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:8766798 (8.3 MiB)  TX bytes:73073312 (69.6 MiB)
      Memory:fbc00000-fbd00000

lo    Link encap:Local Loopback
      inet addr:127.0.0.1  Mask:255.0.0.0
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:92 errors:0 dropped:0 overruns:0 frame:0
      TX packets:92 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:8172 (7.9 KiB)  TX bytes:8172 (7.9 KiB)

virbr0 Link encap:Ethernet  HWaddr 51:54:00:39:CA:A7
      inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:128 (128.0 b)  TX bytes:0 (0.0 b)

vnet0 Link encap:Ethernet  HWaddr 54:FE:00:F1:31:95
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:256 errors:0 dropped:0 overruns:1 carrier:0
      collisions:0 txqueuelen:500
      RX bytes:0 (0.0 b)  TX bytes:20835 (20.3 KiB)

vnet1 Link encap:Ethernet  HWaddr 54:FE:00:CD:CD:C4
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:11 errors:0 dropped:0 overruns:0 frame:0
      TX packets:1307 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:500
      RX bytes:2722 (2.6 KiB)  TX bytes:110215 (107.6 KiB)

Gibt es noch weitere relevante Informationen, die ich angeben sollte?

Danke!

Antwort1

Wenn „ifconfig -a“ auf dem Gast kein eth0 anzeigt, führen Sie „virt-manager“ auf dem Host aus, um eine nette GUI zum Bearbeiten der Parameter der virtuellen Maschine zu erhalten, anstatt dies über die Befehlszeile zu tun. Über diese GUI können Sie bei Bedarf eine Netzwerkschnittstelle hinzufügen.

Sobald Sie ein eth0 auf dem Gast haben, müssen Sie die Parameter der Schnittstelle in der Datei /etc/sysconfig/network-scripts/ifcfg-eth0 angeben. Achten Sie darauf, ein Standard-Gateway mit dem Schlüsselwort „GATEWAY“ anzugeben. Hier ist ein Beispiel für ein ifcfg-Skript zur manuellen Angabe von Parametern (im Gegensatz zur Verwendung von DHCP). Sie müssen natürlich die richtigen Werte für IPADDR, NETWORK, NETMASK und GATEWAY für Ihr Netzwerk angeben.

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.1.110
NETWORK=192.168.1.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

Um die Änderungen an ifcfg-eth0 wirksam zu machen, führen Sie „service network restart“ aus.

Antwort2

Führen Sie „brctl show“ auf dem Host aus

um zu überprüfen, ob Ihre VM mit der Brücke br0 verbunden ist, und da Ihre br0 eine öffentliche IP hat (nehme ich an, da Sie es kommentiert haben), weisen Sie Ihrer Gast-VM mit dem richtigen Gateway eine öffentliche IP zu.

oder

Entfernen Sie Ihre virtuelle Schnittstelle von br0 und fügen Sie sie zu virbr0 hinzu.

auf dem Host

brctl delif br0 vifname 

brctl addif virbr0 vifname 

Aktivieren Sie DHCP auf Ihrem Gast, indem SieBOOTPROTO=dhcp.

Sie erhalten die IP-Adresse 192.168.122.0 und sollten von außen zugreifen können, vorausgesetzt, Sie haben die richtigen NAT-Regeln von libvirt erstellt.

verwandte Informationen