Вопрос или проблема
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, чтобы помочь разработчикам улучшить систему.