
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.