Вопрос или проблема
Некоторый контекст:
Я использую двойную загрузку на рабочем столе между W10 и Ubuntu. (W10 для игр, Ubuntu для работы)
У меня полностью рабочая настройка IPv6 с pfSense в качестве граничного маршрутизатора.
DHCPv6 сервер настроен на всегда выдавать один и тот же IPv6 адрес для OS W10. Это сделано для обеспечения разрешения DNS IP, назначенного DHCPv6, на имя хоста.
В настоящее время OS Ubuntu всегда получает другой IP, поскольку запрашивает свой IP у сервера, используя другой IAID и DUID.
По сути, я хочу изменить DUID/IAID установки Ubuntu, чтобы они соответствовали строкам, используемым в W10.
Я изменил конфигурацию NetworkManager для подключения (добавил последние 2 строки), но, по-видимому, этого недостаточно:
rsq@beast:~$ sudo cat '/etc/NetworkManager/system-connections/Wired connection 1'
[connection]
id=Wired connection 1
uuid=a1e627b4-680c-3fbb-b4a4-b487c5a0a504
type=ethernet
autoconnect-priority=-999
permissions=
timestamp=1577458590
[ethernet]
mac-address=18:31:BF:6D:0E:24
mac-address-blacklist=
[ipv4]
dns-search=
method=auto
[ipv6]
addr-gen-mode=stable-privacy
dns-search=
ip6-privacy=0
method=auto
dhcp-duid=00:01:00:01:23:01:a6:ec:18:31:bf:6d:0e:24
dhcp-iaid=85471679
Я провел обширные поиски по этой проблеме, но информации очень мало.
Таким образом, мои вопросы таковы:
Как система Ubuntu генерирует DUID?
Какие настройки управляют процессом генерации DUID?
Где сохраняется настройка DUID?
Можно ли её переопределить?
Спасибо за все мнения по этому вопросу!
С уважением, Эрик
так как запрашивает свой IP у сервера, используя другой IAID и DUID.
Изначально DUID берется из
/etc/machine-id
и создается ОДИН РАЗ при установке. Учитывая, что в наши дни мы используем systemd
, используйте это как дополнительный аргумент для фильтрации ответов без systemd
.
Важный файл:
/etc/systemd/networkd.conf
имеет часть, относящуюся к созданию DUID:
Если
DUIDType=vendor
, то значение DUID будет сгенерировано с использованием “43793” в качестве идентификатора поставщика (systemd) и хешированного содержимого machine-id(5). Это значение по умолчанию, еслиDUIDType=
не указано.
Что касается IAID:
[DHCP] SECTION OPTIONS
Этот раздел настраивает значение DHCP Unique Identifier (DUID), используемое протоколом DHCP.
DHCPv6 клиентский протокол отправляет DHCP Unique Identifier и идентификатор Identity
Association (IAID) интерфейсу DHCP-сервера при получении динамического IPv6 адреса.
DHCPv4 клиентский протокол отправляет IAID и DUID DHCP серверу при получении динамического
IPv4 адреса, если ClientIdentifier=duid. IAID и DUID позволяют DHCP серверу уникально
идентифицировать машину и интерфейс, запрашивающий DHCP IP. Чтобы настроить IAID и
ClientIdentifier, смотрите systemd.network(5).
Чтобы установить IAID
и DUID
, вам нужно:
DUIDType=
Переопределите глобальную настройку DUIDType для этой сети. Смотрите networkd.conf(5) для
описания возможных значений.DUIDRawData=
Переопределите глобальную настройку DUIDRawData для этой сети. Смотрите networkd.conf(5) для
описания возможных значений.IAID=
Идентификатор ассоциации идентичности DHCP (IAID) для интерфейса, 32-битное целое число
без знака.
Пример из networkd.conf для DUID
:
Пример 1.
DUIDType=vendor
с пользовательским значениемDUIDType=vendor DUIDRawData=00:00:ab:11:f9:2a:c2:77:29:f9:5c:00
Это указывает 14-байтовый DUID, с типом DUID-EN (“00:02”), номером компании
43793 (“00:00:ab:11”) и значением идентификатора “f9:2a:c2:77:29:f9:5c:00”.
Ubuntu Desktop по умолчанию использует NetworkManager с netplan, и systemd-networkd отключен.
Используйте nmcli для изменения DUID:
nmcli con modify <connection-name> ipv6.dhcp-duid <DUID> # изменить DUID
nmcli con reload <connection-name> # применить изменения
nmcli con show <connection-name> # проверить DUID
Ответ или решение
Для изменения DUID на Ubuntu с целью получения фиксированного IPv6-адреса, аналогичного Windows 10 в среде с dual boot, важно понимать несколько аспектов. Эта задача может быть особенно актуальна для пользователей, которые хотят обеспечить одинаковую сетевую идентификацию на разных операционных системах, что требуется для стабильного разрешения DNS и упрощения сетевой конфигурации в локальной сети.
Теоретическая часть
Источник DUID
На Ubuntu, DUID (идентификатор уникального клиента DHCP) изначально берётся из файла /etc/machine-id
. Этот файл создаётся во время установки системы и, как правило, остаётся неизменным, если нет вмешательства пользователя. Это обеспечивает уникальную идентификацию системы при запросах к DHCP-серверу.
Настройка DUID и IAID
DUID и IAID (Идентификатор Ассоциации Интерфейса) — это ключевые параметры для получения фиксированных адресов от DHCPv6-сервера. В контексте Windows и Ubuntu, системы обычно используют разные значения по умолчанию для этих параметров, что вызывает проблемы с получением одинаковых IP-адресов.
Файлы конфигурации
На системах, использующих systemd-networkd
, конфигурация основывается на файле /etc/systemd/networkd.conf
. Однако, на рабочих станциях Ubuntu Desktop чаще всего используется NetworkManager. Для изменения DUID с помощью NetworkManager, необходимы зависимости от команд nmcli
, а не от конфигурационных файлов systemd.
Пример
Для изменения DUID на Ubuntu с использованием NetworkManager и соответствия его значению DUID на Windows 10, выполните следующие шаги:
-
Определите текущее значение DUID на Windows. Это можно сделать с помощью команды:
ipconfig /all
-
На Ubuntu, используя
nmcli
, вы можете изменить конфигурацию следующим образом:nmcli con modify <connection-name> ipv6.dhcp-duid <DUID> # установите DUID nmcli con modify <connection-name> ipv6.dhcp-iaid <IAID> # установите IAID, если необходимо
-
Чтобы применить изменения:
nmcli con reload <connection-name>
-
Проверьте, изменена ли конфигурация правильно:
nmcli con show <connection-name>
Применение
После применения новой конфигурации, необходимо перезапустить сетевое соединение, чтобы изменения вступили в силу. Это позволит Ubuntu запрашивать у DHCPv6-сервера тот же IP-адрес, который ранее получил Windows 10, что обеспечит единый подход к управлению сетевыми адресами вашей системы.
Также, если ваша сеть управляется через pfSense, может потребоваться дополнительная проверка и при необходимости обновление соответствующих записей на DHCP-сервере, чтобы убедиться, что изменения IAID и DUID приводят к ожидаемому результату.
Этот метод позволяет обеспечить последовательность в распределении сетевых адресов на различных операционных системах и может существенно упростить управление сетевым пространством в домашних и офисных условиях. Также, это улучшает управление сетевой безопасностью и упрощает использование DNS-имен внутри одной сети.