ネットワークマネージャーを使用し、名前解決にsystemd-resolvedを使用するUbuntu 18.04(以前のバージョンからアップグレード)を実行しています。起動すると、イーサネット接続enp0s31f6
Network Managerによって起動され、DHCPを介して3つのネームサーバーアドレスが与えられます。10.1.13.10
、10.1.141.10
、10.1.13.36
。 nmcli
を実行しています は、「DNS構成」の下にある3つのネームサーバーを示しています。 systemd-resolve --status
を実行しています 「リンク2(enp0s31f6)」セクションの下にそれらを表示します。それぞれにpingを実行できます。他の接続はアクティブではありません。
testuser ☼ systemd-resolve --status
Global
DNS Domain: (my org's domain)
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
20.172.in-addr.arpa
21.172.in-addr.arpa
22.172.in-addr.arpa
23.172.in-addr.arpa
24.172.in-addr.arpa
25.172.in-addr.arpa
26.172.in-addr.arpa
27.172.in-addr.arpa
28.172.in-addr.arpa
29.172.in-addr.arpa
30.172.in-addr.arpa
31.172.in-addr.arpa
corp
d.f.ip6.arpa
home
internal
intranet
lan
local
private
test
Link 3 (wlp4s0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 2 (enp0s31f6)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 10.1.13.10
10.1.141.10
10.1.13.36
DNS Domain: (my org's domain)
ただし、実際に名前を解決しようとすると、ネームサーバーの1つの名前であっても、dig
「接続がタイムアウトしました:サーバーに到達できませんでした」と主張しています。
testuser ☼ dig dcpdc001.(my org's domain)
; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> dcpdc001.(my org's domain)
;; global options: +cmd
;; connection timed out; no servers could be reached
この名前は10.1.13.10
に解決される必要があることに注意してください 、最初のネームサーバー。
resolvconf
を構成しました 動的更新を使用します。 /etc/resolv.conf
/run/resolvconf/resolv.conf
を指します 。このファイルには(コメント以外の)のみが含まれています:
nameserver 127.0.0.53
search (my orgs local search domain)
nameserver 10.1.13.10
を追加した場合 このファイルに手動で、突然dig
は再び解決でき、ローカル名を確認する必要がある他のすべての問題も解決できます。ネームサーバーを削除すると、それが再び壊れます。
サーバーについてはよくわかりません。これらはWindowsベースのネットワークの一部ですが、resolv.conf
を編集すれば使用できます。 手動で行うので、それが問題になるとは思いません。これは、ドメインを使用するためにドメインに対して認証される必要がないことを意味します。 (Realmd / SSSDを使用してUbuntu経由でドメインに認証できますが、ドメインコントローラーを解決できない場合は認証できません…)
journalctl
systemd-resolved
のエントリ 「DNSサーバー用の機能低下機能セットの使用」に関するメッセージをいくつか表示しますが、それらは3番目のネームサーバーのみを参照し、他のサーバーは参照しません。プライマリネームサーバーには何もありません。
resolv.conf
を手動で編集せずに、名前解決を機能させるにはどうすればよいですか。 起動するたびに?
resolv.conf
の内容を想定しています Network ManagerまたはSystemdで、ある種のローカルキャッシングリゾルバーが実行されていることを意味しますか?もしそうなら、それをバイパスすることで問題は解決しますか?
systemd-resolved
のログレベルを上げました およびjournalctl -f -u systemd-resolved
ショー:
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Got DNS stub UDP query packet for id 19836
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Looking up RR for dcpdc001.(org domain) IN A.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Switching to DNS server 10.1.13.10 for interface enp0s31f6.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Cache miss for dcpdc001.(org domain) IN A
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Transaction 12728 for <dcpdc001.(org domain) IN A> scope dns on enp0s31f6/*.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Using feature level UDP+EDNS0+DO+LARGE for transaction 12728.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Using DNS server 10.1.13.10 for transaction 12728.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Sending query packet with id 12728.
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Processing query...
Jul 20 10:33:23 heerij-ubuntu systemd-resolved[2352]: Timeout reached on transaction 12728.
承認された回答:
Systemdには、systemd-resolvedという「スタブ」リゾルバーが付属しています。これによると、実際にはDNSサーバーとして使用することを意図したものではありません。
ええと、resolvedはDNSサーバーではなく、libcのようなDNSクライアントがそれらを解決できるように十分に優れているはずであり、ADビットを設定するのに十分な情報を持っています。
何らかの理由で、UbuntuはそれをDNSサーバーとして使用するように構成されており、実際には唯一のサーバーです。
バグ#1624320に関するコメントは、systemd-resolvedには3つの操作モードがあり、2番目のモードが私の問題を修正したことを指摘しています。つまり:
$ sudo rm -f /etc/resolv.conf
$ sudo ln -s /run/systemd/resolve/resolv.conf /etc/resolv.conf