Рейтинг:0

Мостовая сеть с libvirt и KVM с физическим интерфейсом Ethernet, подключенным к мосту

флаг uy

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

Выявились две проблемы:

  1. сетевые настройки не сохраняются после перезагрузки системы;
  2. на виртуальной гостевой машине второй сетевой адаптер не может подключиться к маршрутизатору, сетевое подключение не отображается

Я создал новый мост на хосте

sudo ip link добавить мост типа hostbr0
sudo ip link показать тип моста
# 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
# ссылка/эфир 52:54:00:8a:2e:73 brd ff:ff:ff:ff:ff:ff
# 8: mpqemubr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
# ссылка/эфир 52:54:00:87:65:df brd ff:ff:ff:ff:ff:ff
# 9: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
# ссылка/эфир 02:42:e9:8e:81:fc brd ff:ff:ff:ff:ff:ff
# 10: hostbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
# ссылка/эфир 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff

У меня на хосте два сетевых интерфейса, оба подключены к роутеру с выходом в интернет.

имя -v
#44~20.04.2-Ubuntu SMP Вт, 26 октября, 18:07:44 UTC 2021

ls -l /sys/класс/сеть/ | grep pci
# enp4s0 -> ../../devices/pci0000:00/0000:00:1c.5/0000:04:00.0/net/enp4s0
# enp5s0 -> ../../devices/pci0000:00/0000:00:1c.7/0000:05:00.0/net/enp5s0

DHCP-сервер на моем маршрутизаторе подключен к Интернету. Конфигурация:

Пул IP-адресов: 192.168.0.1–192.168.0.254

Шлюз по умолчанию: 192.168.0.1

хост enp4s0: 192.168.0.11

hostbr0 enp5s0: 192.168.0.10

Я прикрепил enp5s0 физическое устройство к мосту:

sudo ip link set enp5s0 вверх
sudo ip link set enp5s0 master hostbr0
IP-адрес sudo добавить dev hostbr0 192.168.2.2/24
IP-адрес показать hostbr0
#10: hostbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN #group default qlen 1000
# ссылка/эфир 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff
# inet 192.168.2.2/24 глобальная область видимости hostbr0
# valid_lft навсегда

Чтобы сделать конфигурацию постоянной, я изменил /etc/сеть/интерфейсы. Как видите у меня уже есть несколько настроенных интерфейсов и добавлен новый enp5s0

# /etc/сеть/интерфейсы
авто вот
iFace Lo Inet Loopback

сопоставление горячего подключения
        скрипт grep
        карта eth1

iface eth1 инет dhcp

авто eth0
iface eth0 инет статический
    адрес 10.152.187.1
    сетевая маска 255.255.255.0

авто wlan0
  iface wlan0 инет статический
    адрес 192.168.1.1
    сетевая маска 255.255.255.0
    вверх /sbin/iwconfig wlan0 режим TTTTTT && /sbin/iwconfig wlan0 enc
ограниченный ключ && /sbin/iwconfig wlan0 [Y] XXXXXXXX && /sbin/iwconfig
wlan0 идентификатор SSSSSSSS

авто eth1


# Указываем, что физический интерфейс, который должен быть подключен к мосту
# следует настроить вручную, чтобы избежать конфликтов с NetworkManager
iface enp5s0 инет руководство
# Настройки моста hostbr0
авто hostbr0
iface hostbr0 инет статический
    bridge_ports enp5s0
        адрес 192.168.2.11
        широковещательный 192.168.2.255
        сетевая маска 255.255.255.0
        шлюз 192.168.0.11

Рекомендуется отключить сетевой фильтр:

судо нано /etc/sysctl.d/99-netfilter-bridge.conf
# net.bridge.bridge-nf-call-ip6tables = 0
# net.bridge.bridge-nf-call-iptables = 0
# net.bridge.bridge-nf-call-arptables = 0

# загружаем настройки прописанные в файле
sudo modprobe br_netfilter

# для автоматической загрузки модуля при загрузке
судо нано /etc/modules-load.d/br_netfilter.conf
# br_netfilter

# загружаем настройки в 99-netfilter-bridge.conf
sudo sysctl -p /etc/sysctl.d/99-netfilter-bridge.conf

Затем я создал новую виртуальную сеть в либвирт

# создаем новую виртуальную сеть
sudo nano /tmp/host-bridged-network.xml
# <сеть>
# <name>host-bridge-network</name>
# <режим пересылки="мост" />
# <имя моста="hostbr0" />
# </ сеть>

sudo virsh net-define /tmp/host-bridged-network.xml
sudo virsh net-start host-bridged-network
sudo virsh net-autostart host-bridged-network
sudo virsh нет-лист
# Имя Состояние Автозапуск Постоянное
# --------------------------------------------- --------
# по умолчанию активен да да
# host-bridged-network активен yes yes

virsh net-edit по умолчанию
# <сеть>
# <name>по умолчанию</name>
# <uuid>96dc6685-2006-4d88-9239-20f0b263f14b</uuid>
# <режим пересылки='nat'/>
# <имя моста='virbr0' stp='on' delay='0'/>
# <mac-адрес='52:54:00:8a:2e:73'/>
# <ip-адрес='192.168.122.1' сетевая маска='255.255.255.0'>
# <dhcp>
# <диапазон start='192.168.122.2' end='192.168.122.254'/>
# </dhcp>
# </ip>
# </ сеть>

virsh net-edit host-bridged-network
# <сеть>
# <name>host-bridge-network</name>
# <uuid>762ec061-5a3d-417e-81ae-e06a920e0b13</uuid>
# <режим пересылки='мост'/>
# <имя моста='hostbr0'/>
# </ сеть>

Некоторая информация об окончательной конфигурации моего хоста:

# на хосте
IP-маршрут
# по умолчанию через 192.168.0.1 dev enp4s0 proto dhcp metric 100 
# 10.139.212.0/24 dev mpqemubr0 proto kernel scope link src 10.139.212.1 linkdown 
# 169.254.0.0/16 dev virbr0 scope link metric 1000 linkdown 
# 172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
# 192.168.0.0/24 dev enp4s0 proto kernel scope link src 192.168.0.11 metric 100 
# 192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown 

IP-ссылка
# 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
# ссылка/петля 00:00:00:00:00:00 brd 00:00:00:00:00:00
# 2: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel состояние UP режим DEFAULT group default qlen 1000
# ссылка/эфир 50:3e:aa:0c:97:02 brd ff:ff:ff:ff:ff:ff
# 3: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master hostbr0 состояние UP режим DEFAULT group default qlen 1000
# ссылка/эфир 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff
# 4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
# ссылка/эфир 52:54:00:8a:2e:73 brd ff:ff:ff:ff:ff:ff
# 5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000
# ссылка/эфир 52:54:00:8a:2e:73 brd ff:ff:ff:ff:ff:ff
# 8: mpqemubr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000
# ссылка/эфир 52:54:00:87:65:df brd ff:ff:ff:ff:ff:ff
# 9: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default 
# ссылка/эфир 02:42:e9:8e:81:fc brd ff:ff:ff:ff:ff:ff
# 10: hostbr0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
# ссылка/эфир 18:31:bf:cc:08:61 brd ff:ff:ff:ff:ff:ff

Затем я добавил в гостевую виртуальную машину Ubuntu 20.04 два сетевых интерфейса: По умолчанию и хост-мост-сеть. Гость запускается как обычно, я вижу сетевое окружение в файловом менеджере Nemo (только гостевой узел). Интерфейс enp5s0 не может подключиться, Ubuntu пытается установить соединение, но всегда терпит неудачу. Системное сообщение: «Активация сетевого подключения не удалась» для enp5s0 интерфейс. По умолчанию либвирт сеть отображается как enp9s0 и работает корректно.

На хосте этот интерфейс отображается как неуправляемый.

Мои вопросы:

Какие диапазоны адресов следует назначать виртуальным сетям?

hostbr0 не создается после перезагрузки системы, значит проблема в настройке?

У меня также есть DHCP-сервер, инициализированный на хосте, в настоящее время он не используется. Может лучше удалить?

Должен ли я добавить обе сети на гостевую машину: По умолчанию, хост-мост-сеть или только хост-мост-сеть?

Физический сетевой интерфейс с мостовым соединением должен быть подключен к маршрутизатору? Или он выполняет все функции на хосте, а вторая сетевая карта предоставляет Интернет через сеть NAT?

Пожалуйста, предложите улучшения в назначении адресов, я подозреваю, что что-то не так в моей конфигурации

Doug Smythies avatar
флаг gn
какая версия Ubuntu является вашим хост-компьютером? Я спрашиваю, потому что вы все еще используете `/etc/network/interfaces`. Создавать виртуальную сеть мне не имеет смысла, просто поставить все в свою локалку через host bridge.
Alexander avatar
флаг uy
Моя Ubuntu имеет следующую версию 44 ~ 20.04.2-Ubuntu SMP Вт, 26 октября, 18:07:44 UTC 2021
Doug Smythies avatar
флаг gn
Я имею в виду версию дистрибутива Ubuntu, то есть `lsb_release -a`.В любом случае, если это 20.04.3, то я не понимаю, почему вы используете файл `/etc/network/interfaces`, так как он больше не используется.
Alexander avatar
флаг uy
Модули LSB недоступны, идентификатор распространителя: Ubuntu, описание: Ubuntu, 20.04.3 LTS, выпуск: 20.04, кодовое имя: focus. Я использую его, чтобы сделать мост постоянным между перезагрузками в соответствии с указанной инструкцией. Как создать хост-мост на основе физического сетевого адаптера?
Doug Smythies avatar
флаг gn
[это] (https://netplan.io/examples/#configuring-network-bridges) помогает? Я могу попробовать написать ответ, но не только сейчас. В вашей ссылке есть некоторые ошибки, на мой взгляд.
Doug Smythies avatar
флаг gn
[Здесь] (https://ubuntuforums.org/showthread.php?t=2461631&p=14036896#post14036896) я сделал это на своем сервере Ubuntu 20.04.3.
Alexander avatar
флаг uy
Мне удалось установить простой мост, глядя на ваши ссылки. Как только я сделаю всю настройку, я размещу ее здесь как ответ на мой собственный ответ (это будет скоро)
Рейтинг:0
флаг uy

Это моя окончательная конфигурация, я установил DHCP-сервер на маршрутизаторе, который назначает IP-адреса всем виртуальным машинам, а также хосту. Общий ресурс Samba отлично работает с этой конфигурацией.

Я предпочитаю устанавливать постоянные IP-адреса хосту и виртуальным машинам через DHCP-сервер на маршрутизаторе, подключенном к Интернету.

  # /etc/netplan/01-network-manager-all.yaml
  сеть:
      версия: 2
      визуализатор: сетевой
      Ethernet:
          эт0:
            соответствовать:
              макадрес: mac1
            имя набора: tplink-usb3.0
            DHCP4: правда
            DHCP6: ложь
            необязательно: правда
            МТУ: 1500
            серверы имен:
              адреса: [8.8.8.8]
          эт-хост:
            соответствовать:
              макадрес: mac2
            DHCP4: ложь
            DHCP6: ложь
      мосты:
          бр0:
            интерфейсы: [eth-хост]
            адреса: [192.168.0.9/24]
            шлюз4: 192.168.0.1
            МТУ: 1500
            серверы имен:
              адреса: [8.8.8.8]
            параметры:
              стп: правда
              задержка вперед: 4
            DHCP4: правда
            DHCP6: ложь

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.