web-dev-qa-db-ja.com

ファイル/ etc / hostnameはホスト名の解決に使用されますか?

ルーターとモデムを使用して、VerizonなどのISPから小さな場所にローカルWi-Fiネットワークを設定すると、ネットワーク内のマシンにプライベートIPアドレスが割り当てられます。

このようなローカルWi-Fiネットワークでは、ssh name@<hostname>別のコンピューターのSSHサーバーにアクセスするには<hostname>、 どこ <hostname>は、コマンドhostnameの出力です。 hostnameの出力は、一部のDNSサーバー(おそらくルーター上)によってプライベートIPアドレスに解決されていますか?

しかし、私は hostnameの出力はDNSによるホスト名解決とは無関係 だと聞きました。では、なぜssh name@<hostname>、 どこ <hostname>はコマンドhostnameの出力ですか。

4
Tim

ここで機能しているメカニズムがいくつかあります。

まず、システムはローカルに構成されたホスト名をDHCPクライアント識別子として含めることが多く、ルーター(DHCPおよびDNSサーバーでもあります)は、その要求に対して提供したIPと一致するクライアントIDのDNSレコードを動的に追加します。

もう1つの可能性のあるケースは、システムがローカルで構成されたホスト名をマルチキャストDNSサービスディスカバリ(macOSのBonjourサービスまたはLinuxのavahiデーモンを介して)を使用してアドバタイズし、多くの最新のディストリビューションがデフォルトでNSSルックアップチェーンにmDNSを含めることです。

8
techieb0y

Ns [myvarname]を使用するLinuxシステムは、getaddrinfo/gethostbynameを使用すると、現在構成されているローカルホスト名(一部のシステムでは/ etc/hostnameに由来する)を解決します。 nss-myhostnameのないシステムは、通常、/etc/hosts、ローカルホスト名をそのように解決します。

具体的にDNSルックアップを行う場合(たとえば、nslookupまたはDigを使用)、nssをバイパスし、dnsのみを使用するため、nss-myhostnameは結果に影響を与える可能性がありません。

お望みならば ssh@<hostname>他のデバイスから機能するには、ホスト名がDNSで解決されるか、または/etc/hostsこれらのデバイス。

7