LAN 上で hostname.local を解決できません

LAN 上で hostname.local を解決できません

以前は LAN 上のマシン間で接続できましたが、現在は機能していません。もちろん IP を使用して SSH 接続できますが、DHCP なので、時々変更される可能性があります。両方のマシンで Debian 9.12 が実行されており、1 つは Windows ホストの VM ですが、それでも機能しました。構成ファイルをいじったことはなく、定期的に更新しているだけです。ssh [email protected]

ping hostname.local
ping: hostname.local: Name or service not known

(フランス語から翻訳したので、正確にはそのメッセージではないかもしれません)

ssh hostname.local
ssh: Could not resolve hostname hostname.local: Name or service not known

(ssh出力は英語です)

avahi.orgより:

Avahiは、mDNS/DNS-SDプロトコルスイートを介してローカルネットワーク上のサービス検出を容易にするシステムです。

/etc/resolv.conf、を調べてみましたが/etc/avahi/avahi-daemon.conf/etc/nsswitch.confこれは標準の設定のままです。

/etc/resolv.confnetwork-manager起動するたびにリセットされます)

# Generated by NetworkManager
search lan
nameserver xx.xx.xx.xx # DNS IPs obtained from DHCP
nameserver xx.xx.xx.xx 

man resolv.confsearchデフォルトでは、リストにはローカルドメイン名のみが含まれると書かれています(フランス語のマニュアルページから翻訳した内容です)。localではなく、 であるべきではないでしょうかlan?

これを変更して、すぐに LAN 上の別のホストに ping または ssh を実行しようとしましたが (ネットワーク マネージャーを再起動せずに)、機能しませんでした。また、ネットワーク マネージャーを再起動すると、書き換えられ/etc/resolv.confて設定されますsearch lan

/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 mdns4_minimal [NOTFOUND=return] dns myhostname
networks:       files

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

netgroup:       nis

avahi-browseavahi (zeroconf / Bonjour) に依存するとを使用してホストとサービスを検出しようとしましたnbtscanが、実行されているホストしか見つからないようです。

(これは他の質問と重複している可能性があるとわかっていますが、回答が見つからず、何もするのに十分な評判がありません)

答え1

それを見つけた !

私のルーターには確かに DNS サーバーがあるようです :

nslookup host_ip router_ip
Server:     192.168.1.254
Address:    192.168.1.254#53

69.1.168.192.in-addr.arpa   name = hostname.lan.

これで.localvs の.lan質問への回答になります。最近の Debian では、ローカル ドメインは です.lan

それでも、ping hostname.lan不明なホストが返されます。

感謝https://askubuntu.com/questions/623940/network-manager-how-to-stop-nm-updating-etc-resolv-conf/etc/resolv.conf、が へのシンボリックリンクであることがわかった/var/run/NetworkManager/resolv.confので、自分のものに置き換えるresolv.conf:

search lan
nameserver 192.168.1.254

ルーターの DNS を使用するようにします (必要に応じてクエリをルーティングします)。

ネットワーク マネージャーを再起動するsystemctl restart network-managerと、問題なく動作します。

$ ping hostname.lan
PING hostname.lan (192.168.1.69) 56(84) bytes of data.
64 bytes from hostname.lan (192.168.1.69): icmp_seq=1 ttl=64 time=2.02 ms

ping google.frWANクエリが確実に処理されるようにするため)

答え2

私の場合、ネットワーク上の特定のホストに .local プレフィックス経由でアクセスできなかった理由は、単にそのホストで avahi デーモン サービスが停止していたためでした。

[~][0]$ service avahi-daemon status
○ avahi-daemon.service - Avahi mDNS/DNS-SD Stack
     Loaded: loaded (/lib/systemd/system/avahi-daemon.service; disabled; preset: enabled)
     Active: inactive (dead)
TriggeredBy: ○ avahi-daemon.socket
[~][3]$ service avahi-daemon start
[~][0]$ 
█[~][0]$ ping asus.local
PING asus.local (192.168.1.204) 56(84) bytes of data.
64 bytes from 192.168.1.204 (192.168.1.204): icmp_seq=1 ttl=64 time=0.892 ms
64 bytes from 192.168.1.204 (192.168.1.204): icmp_seq=2 ttl=64 time=0.848 ms
64 bytes from 192.168.1.204 (192.168.1.204): icmp_seq=3 ttl=64 time=0.784 ms
^C

答え3

FQDN は必要ありません。ホスト部分のみを使用します。例:

`[root@darouter ~]# arping -I enp2s0f1 matilda
ARPING 192.168.100.12 from 192.168.100.254 enp2s0f1
Unicast reply from 192.168.100.12 [D0:67:E5:EB:37:25]  0.759ms
Unicast reply from 192.168.100.12 [D0:67:E5:EB:37:25]  0.801ms
Unicast reply from 192.168.100.12 [D0:67:E5:EB:37:25]  0.732ms
Sent 3 probes (1 broadcast(s))
Received 3 response(s)`

私はマチルダがWindowsボックスなのでarpingを使用しました。これは、着信pingを許可する方法を考えるよりも簡単でした。ルーターのDNSを無効にします。すべき内部 DNS を使用できるように、DNS サーバーの IP を入力する場所になります。内部 DNS がホスト名で解決されない場合は、DNS 構成が壊れている場所を特定する必要があります。私はしばらく前にこの問題に遭遇しました。残念ながら、それはかなり前のことなので、昨日何をしたか覚えていないので、解決するために何をしたかを明確に答えることはできません。

お役に立てれば!

トッド

関連情報