以前にXubuntu 16.04をインストールしていましたが、ルーター(Tomato)によって設定されたホスト名を認識していました。
たとえば、192.168.2.202
の静的IPを持つネットワーク上にmate
という名前のコンピューターがあり、以前はこれを実行できました。
$ Host mate
mate has address 192.168.2.202
しかし、今私はこれを取得します:
$ Host mate
Host mate not found: 2(SERVFAIL)
今回は最小限のデスクトップインストールを行ったので、不足している特定のパッケージがあるかどうか疑問に思います。
$ cat /var/run/systemd/resolve/resolv.conf:
nameserver 192.168.2.1
$ cat /var/run/NetworkManager/resolv.conf
nameserver 127.0.0.53
$ netstat -antup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN 3421/VBoxHeadless
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 663/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 950/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 737/cupsd
tcp6 0 0 :::5900 :::* LISTEN 3421/VBoxHeadless
tcp6 0 0 :::22 :::* LISTEN 950/sshd
tcp6 0 0 ::1:631 :::* LISTEN 737/cupsd
udp 14784 0 0.0.0.0:52712 0.0.0.0:* 2092/VirtualBox
udp 8704 0 0.0.0.0:53789 0.0.0.0:* 2092/VirtualBox
udp 9536 0 0.0.0.0:5353 0.0.0.0:* 730/avahi-daemon: r
udp 19648 0 0.0.0.0:55126 0.0.0.0:* 2092/VirtualBox
udp 8704 0 0.0.0.0:39114 0.0.0.0:* 2092/VirtualBox
udp 13248 0 0.0.0.0:41109 0.0.0.0:* 2092/VirtualBox
udp 0 0 0.0.0.0:57555 0.0.0.0:* 730/avahi-daemon: r
udp 3648 0 0.0.0.0:59213 0.0.0.0:* 2092/VirtualBox
udp 8064 0 0.0.0.0:59519 0.0.0.0:* 2092/VirtualBox
udp 3648 0 0.0.0.0:48795 0.0.0.0:* 2092/VirtualBox
udp 3648 0 0.0.0.0:48900 0.0.0.0:* 2092/VirtualBox
udp 36096 0 127.0.0.53:53 0.0.0.0:* 663/systemd-resolve
udp 37120 0 0.0.0.0:68 0.0.0.0:* 1066/dhclient
udp 15424 0 0.0.0.0:33008 0.0.0.0:* 2092/VirtualBox
udp 3648 0 0.0.0.0:49597 0.0.0.0:* 2092/VirtualBox
udp 14464 0 0.0.0.0:33395 0.0.0.0:* 2092/VirtualBox
udp 0 0 0.0.0.0:631 0.0.0.0:* 828/cups-browsed
udp 19840 0 0.0.0.0:49883 0.0.0.0:* 2092/VirtualBox
udp 14592 0 0.0.0.0:33614 0.0.0.0:* 2092/VirtualBox
udp6 0 0 :::51356 :::* 730/avahi-daemon: r
udp6 49344 0 :::5353 :::* 730/avahi-daemon: r
$ systemd-resolve --status
Global
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 6 (vboxnet2)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 5 (vboxnet1)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 4 (vboxnet0)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 3 (wlp4s1)
Current Scopes: none
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
Link 2 (eno1)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 192.168.2.1
私のルーターは192.168.2.1です
Dig
を使用すると、ルーターがホスト名を正しく報告することが示されます。
$ Dig @192.168.2.1 mate
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> @192.168.2.1 mate
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47046
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;mate. IN A
;; ANSWER SECTION:
mate. 0 IN A 192.168.2.202
;; Query time: 0 msec
;; SERVER: 192.168.2.1#53(192.168.2.1)
;; WHEN: Mon Jun 18 18:53:26 PDT 2018
;; MSG SIZE rcvd: 38
ただし、ルーターのDNS IPについて特に言及しなければ、見つかりません。
$ Dig mate
; <<>> Dig 9.11.3-1ubuntu1.1-Ubuntu <<>> mate
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 65394
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;mate. IN A
;; Query time: 0 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Mon Jun 18 19:06:13 PDT 2018
;; MSG SIZE rcvd: 33
したがって、/var/run/systemd/resolve/resolv.conf
にリストされていても、使用されていないようです。どうすれば修正できますか?
これはこの問題に関連しているようです:
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/162432
新規インストールでは、/etc/resolv.conf
は/run/systemd/resolve/stub-resolv.conf
ではなく/run/systemd/resolve/resolv.conf
にリンクされます。
https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624320/comments/8 ごとに更新して修正しました。
その理由は次のとおりです。名前がmate.local
のような完全修飾名でない場合、systemd-resolvedはローカルドメイン名を解決しません。
Systemd-networkd についてドキュメントで説明されているように、/etc/nsswitch.conf
ファイルをトリミングすることをお勧めします
Sudo nano /etc/nsswitch.conf
ホスト行を変更します
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat systemd
group: compat systemd
shadow: compat
gshadow: files
# ---- MODIFY THIS LINE ------------------------------------------------
# hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
# ---- TO --------------------------------------------------------------
hosts: files mdns4_minimal dns myhostname
# ---- THATS ALL -------------------------------------------------------
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
説明:
最初にファイル内の検索を解決するホスト名(/etc/hosts
)、次にavahi(zeroconf)を使用して、DNSサーバーに問い合わせます。また、[NOTFOUND=return]
forcedとしてavahiがローカル名を見つけられない場合でも、停止しないでください。その明確を願っています。
サービスを再開する
Sudo systemctl restart systemd-resolved