kvm & ldquo; default & rdquo; Сеть NAT не работает

Я только что создал виртуальную машину с использованием qemu-kvm. Хост и гость - Ubuntu 16.04 LTS. Однако у гостя нет доступа к Интернету. Я могу ping хозяин от гостя или ping гостя от хозяина. Вот вывод из ifconfig хоста

eno1 Link encap:Ethernet HWaddr 6c:0b:84:98:06:a3 inet addr:10.7.202.66 Bcast:10.7.202.255 Mask:255.255.255.0 inet6 addr: fe80::5388:4cd6:d475:94ca/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:41093 errors:0 dropped:0 overruns:0 frame:0 TX packets:100041 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7514291 (7.5 MB) TX bytes:117854779 (117.8 MB) Interrupt:20 Memory:f7c00000-f7c20000 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:65536 Metric:1 RX packets:377404 errors:0 dropped:0 overruns:0 frame:0 TX packets:377404 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1034501784 (1.0 GB) TX bytes:1034501784 (1.0 GB) virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:3539 errors:0 dropped:0 overruns:0 frame:0 TX packets:953 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:240370 (240.3 KB) TX bytes:141550 (141.5 KB)

И вот результат из virsh net-dumpxml default:

<network> <name>default</name> <uuid>f4a19eaf-dbfa-46a5-bc9a-ccdc809363be</uuid> <forward dev='eno1' mode='nat'> <nat> <port start='1024' end='65535'/> </nat> <interface dev='eno1'/> </forward> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:3e:46:10'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network>

И вывод из хоста route -n:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 10.7.202.251 0.0.0.0 UG 100 0 0 eno1 10.7.202.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1 10.22.224.196 10.7.202.251 255.255.255.255 UGH 100 0 0 eno1 169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eno1 192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0

Я также включил net.ipv4.ip_forward=1 в /etc/sysctl.conf.

Может ли кто-нибудь предложить что-нибудь еще?

4
задан 28 November 2017 в 05:19

2 ответа

Вам нужно настроить macvtap с вашего хоста, чтобы позволить вашему клиенту иметь интернет-соединение, которое в вашем случае имеет вашу конфигурацию NAT для хостов только для гостевого подключения.

Кроме того, я вам посоветовал чтобы установить virt-manager, чтобы узнать основную концепцию и настройки KVM, тогда вы можете сделать это в CLI в следующий раз.

Для вашей справки у меня есть соединение от хоста к гостевому соединению, эта конфигурация NAT с virtio.

Теперь для вашей гостевой виртуальной машины для подключения настройте macvtap, но сначала вам нужно создать отдельное мостовое соединение здесь, а затем и macvtap.

К моменту его настройки вы должны иметь эту конфигурацию сети.

This is my host to guest connection [!d5]

Другой был бы гостевым xml-файлом, который находился в /etc/libvirt/qemu/guest.xml - но не редактируйте, что он служит только как ссылка

This is my host to guest connection [!d5]

Я не разбираюсь в части CLI, но здесь что я сделал, чтобы этот случай работал.

Надеюсь, это поможет.

3
ответ дан 18 July 2018 в 02:27

Вам нужно настроить macvtap с вашего хоста, чтобы позволить вашему клиенту иметь интернет-соединение, которое в вашем случае имеет вашу конфигурацию NAT для хостов только для гостевого подключения.

Кроме того, я вам посоветовал чтобы установить virt-manager, чтобы узнать основную концепцию и настройки KVM, тогда вы можете сделать это в CLI в следующий раз.

Для вашей справки у меня есть соединение от хоста к гостевому соединению, эта конфигурация NAT с virtio.

Теперь для вашей гостевой виртуальной машины для подключения настройте macvtap, но сначала вам нужно создать отдельное мостовое соединение здесь, а затем и macvtap.

К моменту его настройки вы должны иметь эту конфигурацию сети.

This is my host to guest connection [!d5]

Другой был бы гостевым xml-файлом, который находился в /etc/libvirt/qemu/guest.xml - но не редактируйте, что он служит только как ссылка

This is my host to guest connection [!d5]

Я не разбираюсь в части CLI, но здесь что я сделал, чтобы этот случай работал.

Надеюсь, это поможет.

3
ответ дан 24 July 2018 в 17:34
  • 1
    Вы уверены, что вам нужны две сетевые карты? Mine работает только с одним сетевым адаптером, сетевой источник устанавливается по умолчанию NAT и модель устройства, установленная в virtio. – user68186 28 November 2017 в 07:55
  • 2
    У меня много гостевых виртуальных машин, и я разделил их на свои мосты, но вы можете использовать их так, как вы этого хотите, и будете работать над одной конфигурацией для многих виртуальных машин. Просто я делаю это для разделения для более быстрой изоляции, если у меня возникнут проблемы с ним. – Yien 28 November 2017 в 09:20
  • 3
    Благодарим вас за подробный ответ, хотя мой оригинальный вопрос действительно является причиной того, что моя настройка сети NAT не работает. Я, наконец, понял, что это действительно сработало, но у меня не было правильной настройки прокси. Я обновил настройки прокси-сервера в / etc / environment, и сеть NAT работает нормально. Я не могу использовать другие настройки сети, потому что это не разрешено ИТ-подразделениями компании. – Sunnyrain 7 February 2018 в 01:07

Другие вопросы по тегам:

Похожие вопросы: