Сетевая мостовая конфигурация перестала работать с kvm/qemu

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

2-3 месяца назад я следовал этой статье https://brooks.sh/2017/12/22/configuring-kvm-on-clear-linux/, чтобы настроить мостовую сеть для гостя KVM/QEMU на Ubuntu. Моя хост-ОС – ClearLinux. Однако сеть гостевой ОС перестала работать неделю назад, не удалось получить IP-адрес от DHCP. Я не могу вспомнить, чтобы я делал что-то особенное, кроме как следовал обновлению ClearLinux.

Мой случай очень похож на этот Настройка мостового интерфейса с systemd-networkd, но решение там мне не подходит.

Мои конфигурации

/etc/systemd/network/br0.netdev

[NetDev]
Name=br0
Kind=bridge

/etc/systemd/network/br0.network

[Match]
Name=br0

[Network]
DHCP=yes

/etc/systemd/network/80-dhcp.network

[Match]
Name=enp12s0

[Network]
Bridge=br0

/etc/sysctl.d/90-bridge.conf

net.bridge.bridge-nf-call-arptables = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0

$ brctl show

bridge name bridge id       STP enabled interfaces
br0     8000.fedc02dff363   no      enp12s0

networkctl

IDX LINK             TYPE               OPERATIONAL SETUP     
  1 lo               loopback           carrier     unmanaged 
  2 enp12s0          ether              degraded    configured
  3 br0              bridge             routable    configured

3 links listed.

$ systemctl status systemd-networkd

● systemd-networkd.service - Сетевая служба
   Loaded: loaded (/usr/lib/systemd/system/systemd-networkd.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2019-01-27 17:30:17 AEDT; 19min ago
     Docs: man:systemd-networkd.service(8)
 Main PID: 504 (systemd-network)
   Status: "Обработка запросов..."
    Tasks: 1 (limit: 4915)
   Memory: 976.0K
   CGroup: /system.slice/systemd-networkd.service
           └─504 /usr/lib/systemd/systemd-networkd

Jan 27 17:30:18 clr systemd-networkd[504]: enp12s0: Получен сигнал
Jan 27 17:30:18 clr systemd-networkd[504]: enp12s0: Настроен
Jan 27 17:30:18 clr systemd-networkd[504]: br0: Получен сигнал
Jan 27 17:30:19 clr systemd-networkd[504]: enp12s0: Получен IPv6LL
Jan 27 17:30:20 clr systemd-networkd[504]: br0: Получен IPv6LL
Jan 27 17:30:21 clr systemd-networkd[504]: br0: DHCPv4 адрес 192.168.2.107/24 через 192.168.2.1
Jan 27 17:30:32 clr systemd-networkd[504]: br0: Настроен
Jan 27 17:31:06 clr systemd-networkd[504]: vnet0: Получен сигнал
Jan 27 17:31:07 clr systemd-networkd[504]: vnet0: Получен IPv6LL
Jan 27 17:32:17 clr systemd-networkd[504]: vnet0: Потерян сигнал

в моем vm.xml часть интерфейса сети выглядит так

<interface type="bridge">
  <mac address="00:16:3e:11:22:33"/>
  <source bridge="br0"/>
  <model type="virtio"/>
  <address type="pci" domain='0x0000' bus="0x00" slot="0x03" function='0x0'/>
</interface>

на хосте результат команды ip link show

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp12s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP mode DEFAULT group default qlen 1000
    link/ether 40:8d:5c:11:22:33 brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
    link/ether fe:dc:02:df:f3:63 brd ff:ff:ff:ff:ff:ff
5: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq master br0 state UNKNOWN mode DEFAULT group default qlen 1000
    link/ether fe:16:3e:04:22:5b brd ff:ff:ff:ff:ff:ff

в гостевой ОС интерфейс Ethernet – en3, состояние соединения также “BROADCAST,MULTICAST,UP,LOWER_UP”.

После еще одной недели проблема исчезла. Я должен сделать вывод, что это была ошибка в реальном времени в ClearLinux, появившаяся за последние три недели.

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

Почему перестала работать мостовая сеть с KVM/QEMU на Clear Linux и как это исправить

На данный момент у многих пользователей виртуализации есть проблемы с работой мостовой сети в KVM/QEMU после обновлений операционной системы, как это произошло в вашем случае на Clear Linux. Давайте подробно разберем, что могло пойти не так и как это можно исправить.

1. Проверка конфигурации

Сначала нужно убедиться в том, что конфигурация сети верна. Вы представили свои конфигурационные файлы, которые выглядят корректно на первый взгляд. Тем не менее, стоит проверить все аспекты вашей настройки:

  • Файлы конфигураций:

    • /etc/systemd/network/br0.netdev и /etc/systemd/network/br0.network настроены должным образом для создания моста и получения IP через DHCP.
    • Параметры /etc/sysctl.d/90-bridge.conf также корректны, отключая маршрутизацию для iptables.
  • Статус сетевых интерфейсов: Команда brctl show показывает, что мост br0 правильно связан с интерфейсом enp12s0.

  • Статус systemd-networkd: Состояние active (running) указывает на то, что служба работает и может обрабатывать запросы.

2. Дебаггинг сети

Если вы не получаете адрес IP в гостевой системе, это может указывать на проблемы с DHCP-сервером или самими настройками сети. Попробуйте следующие шаги:

  • Проверка DHCP-сервера: Убедитесь, что DHCP-сервер в вашей сети работает должным образом. Это можно сделать, подключив другое устройство и проверив, получает ли оно адрес.

  • Логи networkd: Ознакомьтесь с логами systemd-networkd (journalctl -u systemd-networkd), чтобы узнать, были ли ошибки при запросах DHCP.

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

3. Версия Clear Linux

Вы упомянули, что проблема исчезла после обновления Clear Linux. Это может указывать на временный сбой в обновлении, который был впоследствии исправлен. Чтобы избежать подобных ситуаций в будущем, вы можете:

  • Следить за изменениями в обновлениях: Следите за изменениями в релизах Clear Linux, чтобы видеть, если проблемы с конфигурацией сети уже обсуждаются сообществом.

  • Установить стабильную версию: Рассмотрите возможность использования более стабильной версии операционной системы, если ваша работа зависит от постоянной работоспособности виртуализации.

4. Поддержка сообщества

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

  • Посетите форумы Clear Linux или QEMU/KVM, чтобы обсудить возникшие проблемы и получить советы от других пользователей.
  • Не стесняйтесь задавать вопросы на специализированных площадках (например, Stack Exchange), прикрепляя детали вашей конфигурации и содержимое логов.

Заключение

Ваша ситуация подчеркивает важность тщательной проверки конфигураций и мониторинга обновлений систем. Понимание внутренней работы сетевых интерфейсов и инструментов виртуализации — ключ к быстрому и эффективному решению проблем. Если у вас возникают вопросы или проблемы, всегда лучше обратиться за помощью к сообществу или искать официальную поддержку для вашей системы.

Если проблема вновь повторится, используйте предложенные методы дебага и сообщайте об ошибках в Clear Linux, чтобы помочь разработчикам улучшить систему.

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

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