Как предоставить гостевому KVM-устройству сетевое подключение?

Как предоставить гостевому KVM-устройству сетевое подключение?

Я полный новичок в KVM и всей идее виртуализации, но читаю об этом уже пару дней и играюсь с этим последние несколько часов.

Создание, установка, клонирование и т. д. все выглядит замечательно. Но гостевые системы, которые я создаю, заканчиваются с "сетью, недоступной", когда я пытаюсь пинговать 8.8.8.8

Я использую CentOS 6.5 как в качестве хоста, так и в качестве гостя.

ifconfig на гостевой машине:

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)

Я понимаю, что проблема, вероятно, именно здесь - должно быть устройство eth0, как я предполагаю? Почему его нет?

код установки:

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 хоста:

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)

Какую еще важную информацию мне следует предоставить?

Спасибо!

решение1

Если "ifconfig -a" на гостевой машине не показывает eth0, то запустите "virt-manager" на хосте, чтобы получить удобный графический интерфейс для редактирования параметров виртуальной машины вместо того, чтобы делать это в командной строке. Через этот графический интерфейс вы можете добавить сетевой интерфейс, если он вам нужен.

После того, как у вас есть eth0 на гостевой машине, вам нужно будет указать параметры интерфейса в файле /etc/sysconfig/network-scripts/ifcfg-eth0 . Обязательно укажите шлюз по умолчанию с ключевым словом "GATEWAY". Вот пример скрипта ifcfg для ручного указания параметров (в отличие от использования DHCP). Вам, конечно, нужно будет указать правильные значения IPADDR, NETWORK, NETMASK и GATEWAY для вашей сети.

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

Чтобы изменения в ifcfg-eth0 вступили в силу, выполните команду «service network restart».

решение2

сделать "brctl show" на хосте

чтобы убедиться, что ваша виртуальная машина подключена к мосту br0, и поскольку у вашей br0 есть публичный IP-адрес (я предполагаю, поскольку вы это прокомментировали), назначьте публичный IP-адрес вашей гостевой виртуальной машине с соответствующим шлюзом.

или

удалите ваш виртуальный интерфейс из br0 и добавьте его в virbr0.

на хосте

brctl delif br0 vifname 

brctl addif virbr0 vifname 

включите DHCP на гостевой машине, установивBOOTPROTO=dhcp.

Вы получите IP-адрес 192.168.122.0 и сможете получить доступ наружу, при условии, что у вас есть правильные правила NAT, созданные libvirt.

Связанный контент