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

Вопрос или проблема

Я только что установил сервер Fedora 41 в первый раз (все мое предыдущее опыт был с системами на основе Debian), и я пробую Cockpit и KVM. Я (из интерфейса Cockpit-machines) создал виртуальную машину, с настройками, которые, как я полагаю, должны были привести к подключению ВМ к LAN через NIC хоста, но, похоже, этого не произошло. Вот что у меня есть:

У моей ВМ есть один сетевой интерфейс типа bridge, с источником virbr0 и TAP-устройством vnet0. У нее IP-адрес 192.168.122.184 (который НЕ является IP-адресом, который был бы выдан сервером DHCP моей LAN).

Если я посмотрю в “Сеть” в Cockpit, я вижу сетевое соединение virbr0, которое имеет один интерфейс (vnet0). Оно имеет диапазон IP-адресов, включающий IP ВМ (192.168.122.1/24).

Я хотел бы, чтобы ВМ была “подключена” непосредственно к той же LAN, к которой подключен хост. Я хочу, чтобы ВМ получала DHCP-адрес в той же сети, и, в идеале, я хотел бы, чтобы хост и ВМ могли обмениваться данными через эту сеть без какого-либо сложного оборудования вне системы (переключателей с поддержкой “hairpin mode”, маршрутизаторного оборудования или программного обеспечения, или чего-либо в этом роде).

Могу ли я просто изменить конфигурацию сети virbr0 для разрешения “автоматического” назначения IP-адреса, а затем подключить к ней сетевое соединение хоста (eno1)? Есть ли лучший способ для меня сделать это?

Ответ или решение

Чтобы подключить виртуальную машину (VM) на Fedora 41 к локальной сети (LAN) и обеспечить ее получение IP-адреса от DHCP-сервера LAN, необходимо настроить сеть таким образом, чтобы VM могла напрямую взаимодействовать с физической сетью. Ваша текущая конфигурация использует виртуальный мост virbr0, который обычно настроен как отдельная виртуальная сеть (NAT) и выдает вам IP-адреса, не относящиеся к вашей основной локальной сети.

Теория:
Основная идея заключается в использовании физического интерфейса вашего хоста как моста для виртуальных машин, что позволяет VM на уровне сети выглядеть так, как будто они подключены к той же сети, что и физический компьютер. Это достигается с помощью конфигурации мостового соединения напрямую с физическим сетевым интерфейсом, который подключен к вашей локальной сети (например, eno1).

Пример:

  1. Создание моста: Сначала вам необходимо создать сетевой мост, который будет использоваться для подключения физического интерфейса и виртуальных машин.
  2. Настройка физического интерфейса: Отключите все IP-настройки на физическом интерфейсе eno1 и подключите его к новому сетевому мосту.
  3. Переконфигурация виртуальной машины: Замените использование virbr0 на новый мост, чтобы виртуальные машины могли получать IP адреса от DHCP-сервера вашей локальной сети.

Применение:
Вот шаги для настройки описанной конфигурации:

  1. Создание мостового интерфейса:

    Используйте NetworkManager или системные файлы конфигурации для создания нового bridge-интерфейса, например, br0.

    Пример для создания моста в командной строке:

    nmcli connection add type bridge autoconnect yes con-name br0 ifname br0
  2. Настройка физического интерфейса:

    Присоедините eno1 к новому мосту br0.

    nmcli connection modify eno1 master br0
  3. Изменение конфигурации VM:

    В интерфейсе Cockpit удалите текущий bridge-интерфейс (virbr0) для вашей VM и добавьте новый сетевой интерфейс, используя br0 в качестве источника.

После выполнения данных шагов, перезапустите виртуальную машину — она должна получить IP адрес от вашего основного DHCP-сервера в сети. Теперь ваша VM считается прямым участником вашей локальной сети и может взаимодействовать с другими устройствами и сервером без лишних промежуточных NAT-переходов.

Оцените материал
Добавить комментарий

Капча загружается...