Ubuntu 16.10でローカルDNSルックアップを構成する方法


9

Ubuntu 16.10を新しくインストールし、以前のホームディレクトリのバックアップをkubuntu 16.04から新しいインストールにrsyncしました。問題はありませんが、試行錯誤を繰り返してもローカルアドレスを解決できませんでした。

すべてのネットワーキングは問題なく機能しているようです。インターネットの閲覧、外部アドレスのDNSルックアップ、sshなどが優れています。ローカルでは、sshを介してアドレスでマシンにアクセスできますが、名前はアクセスできません。nautilus / sambaではすべて正常に機能します。つまり、WINSは機能します。唯一の問題は、ローカルネットワークDNSです。Ubuntuに付属しているので、avahi-daemonをインストールして実行しています。

<< >>を使用して冗長な部分または正常に機能している部分を短縮するために、いくつかのトラブルシューティングを含めました。

$ nmcli g
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled 

$ ping tendril8 << or tendril8.local >>
ping: tendril8: Name or service not known

$ ping gateway
PING gateway (192.168.1.1) 56(84) bytes of data.
64 bytes from gateway (192.168.1.1): icmp_seq=1 ttl=64 time=4.16 ms

$ ping askubuntu.com
PING askubuntu.com (151.101.129.69) 56(84) bytes of data.
64 bytes from 151.101.129.69 (151.101.129.69): icmp_seq=1 ttl=49 time=43.0 ms

$ nslookup askubuntu.com
Server:     127.0.1.1
Address:    127.0.0.1#53
<< followed by several IP addresses >>

$ nslookup tendril8 << or tendril8.local >>
Server:     127.0.1.1
Address:    127.0.0.1#53
** server can't find tendril8: NXDOMAIN

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

$ ls -la /etc/resolv.conf
lrwxrwxrwx 1 root root 29 Oct 15 19:30 /etc/resolv.conf -> ../run/resolvconf/resolv.conf

$ cat /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
group:          compat
shadow:         compat
gshadow:        files

hosts:          files resolve [!UNAVAIL=return] mdns4_minimal dns [NOTFOUND=return]
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis

注:Ubuntuが16.10でsystemd.resolvedに切り替える前に、私は「古い」ソリューションの調査に多くの時間を費やしました。それらは私にとってはうまくいかなかったし、これが以前のUbuntu構成での同様の質問と重複する質問であるとは思わない。


1
これはアップグレードされたシステムでも発生します...その質問は日中に多くの訪問を受けると思います:)
Michele d'Amico

ネットワーキングの問題は最悪です。そして、これは私を強く噛んでいますが、少し違う方法で。答えは私のためにそれを修正していません。詳細は私の質問を参照してください。
moodboom 2016

回答:


18

質問を適切に理解した場合、ローカルホスト名を解決できません。

その上で、16.10の新規インストールで同じ問題がありましたが、これはlibnssに関連する既知の問題(https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624071)であることが判明しました-systemdで解決します。

私の場合の解決策は、/ etc / nsswitch.confファイルを確認し、NSSがホストを解決する方法を具体的に確認することでした。

hosts: files resolve [!UNAVAIL=return] mdns4_minimal [NOTFOUND=return] dns myhostname

このロジックは、mDNSに到達する前にホスト名の解決に失敗するようです。

hosts行を編集して16.10より前のリリースに戻すと、この明らかな論理エラーが修正されます。

hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname

含まれているバグレポートリンクは、systemdパッケージの将来のリリースがこの問題を最終的に修正する可能性があることを示唆しています。

リッチ


1
リンクと例の両方で素晴らしい答え!私はあなたの提案を試してみましたが、 "[NOTFOUND = return]"と "[!UNAVAIL = return]"の前に "mdns4_minimal"を移動する限り、それが機能することがわかりました。ローカルアドレスには引き続き.localサフィックスが必要です。
マイティパイル

1
libnss-resolveとmdnsには、bugs.launchpad.net
窒素

7

自動的に編集する代替ソリューション/etc/nsswitch.confは、削除[ 編集:および再インストール] libnss-resolveです。

sudo apt purge libnss-resolve
sudo apt install libnss-resolve

+1。これは、私たちがいじくり回していないパッケージのシステム構成をそのまま維持したいという人にとって優れたソリューションです。今までにアップグレード/インストーラツールで実行する必要がありますが... 16.10はしばらく使用されています。
eskhool 2017年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.