Я обновил свой рабочий стол Ubuntu до Bionic Beaver, который перешел на systemd-разрешения. С этим изменением перестало работать разрешение DNS LXD.

Чтобы сделать LXD-контейнеры доступными для обнаружения, я могу запустить приведенную ниже команду. Обратите внимание, что IP 10.78.38.1 - это IP- адрес моста lxdbr0 .

$ sudo systemd-resolve --interface lxdbr0 --set-dns 10.78.38.1 --set-domain lxd

Имея это в виду, я могу обнаружить контейнер LXD по их имени, и конфигурация выглядит следующим образом.

$ systemd-resolve --status
.
.
.
Link 10 (lxdbr0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.78.38.1
          DNS Domain: lxd
.
.
.

Однако после перезагрузки системы эта конфигурация исчезла.

$ systemd-resolve --status
.
.
.
Link 10 (lxdbr0)
      Current Scopes: none
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
.
.
.

Чтобы сделать это выше, я просмотрел man - страницу systemd- resolver http://manpages.ubuntu.com/manpages/bionic/man8/systemd-resolved.service.8.html. Он предлагает создать файл /etc/systemd/resolved.conf.d/lxd.conf, но нет доступных параметров, которые позволили бы мне сделать такую конфигурацию специфичной для одного конкретного сетевого адаптера.

2 ответа2

0

Это звучит правдоподобно, но, похоже, не имеет никакого эффекта:

Согласно связанной man-странице man 8 systemd-resolved.service, вы должны использовать файл конфигурации для каждой ссылки в /etc/systemd/network:

DNS-серверы, с которыми связываются, определяются из глобальных настроек в /etc/systemd/resolved.conf , статических настроек для каждой ссылки в файлах /etc/systemd/network/*.network , динамических настроек для каждой ссылки, полученных через DHCP, и любых других Информация о DNS-сервере, предоставляемая другими системными службами.

Чтобы сделать вашу конфигурацию постоянной, вы должны создать файл /etc/systemd/network/lxdbr0.conf:

[Match]
Name=lxdbr0

[Resolve]
DNS=10.78.38.1
Domains=lxd
0

Я понимаю, что этот вопрос был здесь 2 месяца, но, возможно, вам все еще нужны ответы?

1) Systemd-networkd хранит сетевые конфигурации в (как минимум) 3 каталогах, может быть, больше. То, что вам кажется наиболее актуальным:

/etc/systemd/network/ 

(он переопределяет другие 2, а именно /lib /s /n и /run /s /n.

Создайте текстовый файл, похожий на этот:

[Match]
Name=enp0s4

[Network]
DHCP=yes
DNS=192.168.1.1

Вы можете называть его так, как вы хотите, кажется, пока он находится в этом каталоге, мой называется enp0s4.network, правильное получение контента имеет решающее значение, если вы ошибаетесь, случаются плохие вещи, например, ваша сеть перестает работать, по крайней мере на этом интерфейсе, пока вы не восстановите рабочий конфиг. Что нелегко, я все испортил, и мне потребовался час, чтобы разобраться. Хорошо, что мой "сервер" находится в соседней комнате, а не в удаленном дата-центре!

Примеры того, как настроить мост, читайте здесь:

man systemd.network |grep -A 42 "Example 3"

Примеры, приведенные там, плюс мой фрагмент кода можно настроить:

Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.78.38.1

Не уверен, что синтаксис для домена DNS, это должно быть возможно, man-страница размером с 30 страниц! Если вы можете, пропустите это, попытавшись "Domain =" испортить мою систему, вот почему я знаю, что неправильно это неправильно, личный опыт. :-) Так что найдите правильный синтаксис или не вставляйте его, если вы не можете восстановить.

Восстановление это еще один пост, хотя я устал.

Вот ссылки, которые я использовал:

Как проверить, работает ли сеть:https://superuser.com/questions/1187633/how-to-debug-systemd-networkd?rq=1#comment1807294_1187633

Как включить, если он отключен:https://askubuntu.com/posts/681768/revisions

Перезапустите systemd-resolver без перезагрузки:

sudo systemctl restart systemd-resolved

К вашему сведению: существует способ сообщить systemd, что Network-Manager должен обрабатывать интерфейс, а также оставить его "неуправляемым" и работать с конфигурациями плоских файлов, такими как /etc/resolv.conf. Но я бы сделал так, как если бы я был на твоем месте. И я просто пытаюсь настроить разные интерфейсы для другой цели, но мне нужна была вся эта информация. выше, чтобы помочь себе, поэтому я думал, что поделюсь. Так как вы поделились, как временно его изменить, что тоже полезно. :-)

НТН

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .