web-dev-qa-db-ja.com

RaspberryPiのホスト名がmacOSに表示されない

ローカルルーターへの有線接続にRaspberryPiマシンがあります。私のルーター接続監視ユーティリティは、デバイスがローカルネットワークに接続されており、プライベートIPアドレス192.168.1.2のデバイス名/ホスト名raspberrypi0でネットワーク上の他のデバイスに表示されていることを示しています。

enter image description here

ping 192.168.1.2はパケットを失うことなく成功し、デバイスはそのアドレスから到達可能(およびSSH可能)です。ただし、pingnslookupも、ルーターがブロードキャストしていると主張する実際のホスト名を解決できません(これは、macOS上にあるため、最後に.local)。

$ ping raspberrypi0.local
ping: cannot resolve raspberrypi0.local: Unknown Host

$ nslookup 192.168.1.2
Server:     192.168.1.1
Address:    192.168.1.1#53

*** Can't find 2.1.168.192.in-addr.arpa.: No answer

192.168.1.1にある私のネットワークルーターは、マシンが使用している唯一のDNSサーバーです。

enter image description here

では、なぜこのデバイスはそのホスト名を介して到達できないのですか?

1
Aleksey Bilogur

ホストの名前を検出するには、いくつかの異なる(互換性のない)方法があります。 macOS(およびそれをサポートする他のOS)で.local名を使用する場合、 マルチキャストDNS(mDNS)プロトコル を介してローカルクエリを実行しています。これは、mDNSをサポート(およびアドバタイズ)する他のホストのみを検出できます。 Linux(Raspbianを含む)では、これは通常 Avahi によって提供されます。

私の知る限り、AvahiはデフォルトでRaspbianにインストールされ、実行されています(または、フルインストールで実行されているのでしょうか?)。 ps -ax | grep [a]vahi-daemonで確認できます。そうでない場合は、インストールおよび/またはセットアップが必要になる場合があります。

注:nslookupはmDNSを実行せず、通常のDNSのみを実行します。同じことがDigHostにも当てはまります。一方、pingはOSesリゾルバーを使用するため、システムがmDNSを使用するように設定されている場合は、mDNSを使用します。

ルーターモニターのリストが「RASPBERRYPI0」という名前をPiに付けるために何を使用しているかはわかりませんが、Piが最初にネットワークに接続したときにDHCP要求で送信された名前だと思います(基本的に、「こんにちは、私はRASPBERRYPI0です。誰かが、ネットワークで使用するIPアドレスと設定を教えてもらえますか?」)。ルーター/ DHCPサーバーはおそらくこれをリーステーブルに記録し(「アドレス192.168.1.2をRASPBERRYPI0という名前のものに渡しました」)、クライアントを検索すると表示します。ただし、DHCP要求はDHCPサーバーにのみ関連し、リーステーブルはネットワーク上の他のユーザーが利用できないため、ルーターがその名前を知っているからといって、他のホストがそれを見つけるのに必ずしも役立つとは限りません。

一部のルーターはローカルネットワークのDNSも提供し、someはリーステーブルの名前を使用して、ある種のローカルDNS名を入力します。しかし、MacはDNSサーバーとしてローカルルーター(192.168.1.1)を使用しており、192.168.1.2を検索しても何も返されなかったため、ルーターはおそらくこれを行いません。

NetBIOSネームサービス ;のように、名前でローカルコンピュータを検索する方法は他にもあります。ローカルネット上の他のコンピューターがPiを見つけている場合、それらはそれを使用している可能性があります。またはおそらく何か他のもの、言うのは難しいです。

2
Gordon Davisson