На установках Ubuntu для WSL2 lxdbr0 установлен по умолчанию?

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

Я пытаюсь настроить lxd, и команда lxd init говорит мне, что сеть lxdbr0 уже установлена. Я пытаюсь понять, откуда это происходит.

Я на ноутбуке с Windows 11, провожу некоторые эксперименты. Я устанавливаю чистую виртуальную машину Ubuntu с помощью wsl --install Ubuntu-22.04. Затем я устанавливаю net-tools, чтобы получить доступ к команде ifconfig. Эта команда показывает lxdbr0!

Я не устанавливал lxd или lxc, и я подтверждаю это, пробуя эти команды. dpkg -l|grep lxd и snap list|grep lxd ничего не показывают. Странно, но dmesg|grep lxd показывает много результатов, а это вывод команды systemctl|grep lxd:

systemctl | grep lxd
  sys-devices-virtual-net-lxdbr0.device
                                                    загружено активно подключено   /sys/devices/virtual/net/lxdbr0
  sys-subsystem-net-devices-lxdbr0.device
                                                    загружено активно подключено   /sys/subsystem/net/devices/lxdbr0

Как lxdbr0 устанавливается? Я хотел бы придерживаться значений по умолчанию для lxd init насколько это возможно, и это мешает моей настройке.

Я просто хочу создать большое количество виртуальных Ubuntu-боксов, и, похоже, контейнеры lxd — это самый эффективный путь. Я хочу, чтобы эти боксы имели доступ к вебу и могли взаимодействовать друг с другом, чтобы я мог экспериментировать с различным программным обеспечением для кластеризации. Я программист, а не сетевой специалист или администратор, поэтому мне не интересно, почему это происходит, только как это обойти и запустить мои контейнеры.

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

lxdbr0 – это виртуальный интерфейс, который создается LXD (Linux Container Daemon) для обеспечения сетевого взаимодействия контейнеров. Ваша ситуация, в которой вы наблюдаете наличие lxdbr0 на свежем установочном образе Ubuntu 22.04 в WSL2, может вызывать некоторые недоумения. Давайте разберем вопрос подробнее.

Причины появления lxdbr0 в WSL2 Ubuntu

  1. WSL и Virtualization: WSL2 (Windows Subsystem for Linux 2) использует технологию виртуализации, которая позволяет Linux-дистрибутивам иметь более высокий уровень совместимости с настоящими Linux-системами. В отличие от WSL1, в WSL2 используется полноценный ядро Linux и поддержка сетевых интерфейсов, таких как lxdbr0.

  2. Установленные зависимости: Несмотря на то, что вы не устанавливали LXD напрямую, существуют предпосылки, что некоторые пакеты, которые включены в дистрибутив Ubuntu, могут иметь зависимости от LXD. Некоторые утилиты или компоненты, предустановленные в Ubuntu, могут автоматически создавать интерфейс lxdbr0 как часть своей конфигурации.

  3. Kernel Features: В определенных конфигурациях ядра, поддерживающих контейнеризацию, могут инициироваться сетевые интерфейсы, такие как lxdbr0, даже если пользователь не устанавливает LXD. Фактически, это поведение может происходить из-за того, как обработаны пользовательские сети в вашей версии Ubuntu.

Что делать дальше?

Если вы не хотите использовать lxdbr0 и желаете провести инициализацию LXD, вам необходимо переходить на обходные пути. Учитывая ваши цели – созданию множества контейнеров, обеспечивающих взаимодействие между собой и доступ к интернету, — вот несколько шагов, которые вы можете предпринять:

  1. Удаление интерфейса lxdbr0: Если вы хотите начать с чистого листа, вы можете удалить lxdbr0. Однако это может потенциально нарушить работу LXD или текущих настроек, так что будьте осторожны:

    sudo ip link delete lxdbr0
  2. Настройка LXD без lxdbr0: Вы можете настроить LXD для использования других сетевых интерфейсов или режимов сети (например, мостового подключения или NAT) в процессе инициализации с помощью команды lxd init. Выберите «none» для использования сети, предоставленной вами:

    lxd init
  3. Использование альтернативных адресов: Если вам нужно, чтобы ваши контейнеры могли взаимодействовать друг с другом, вы также можете рассмотреть возможность создания пользовательских мостов или конфигураций DHCP в зависимости от архитектуры вашего приложения.

Заключение

Работа с lxdbr0 в WSL2 версиях Ubuntu может показаться запутанным моментом, но это поведение связано с особенностями виртуализации под управлением Windows и встраиванием LXD. Помните, что выбор сетевых решений, соответствующих вашим задачам, является процессом, в котором предусмотрены различные нюансы. Следуя вышеописанным рекомендациям, вы сможете успешно реализовать ваши проекты, полагаясь на LXD для управления контейнерами.

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

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