hosts にサーバのホスト名と違うホスト名を設定するとどうなる?

ホスト名と hosts が異なる場合

Windows において、相手のホスト名に対して ping を送信する際、hosts に設定されているホスト名が異なっている場合、ping は通るでしょうか?

実際にやってみましょう。ping の送信先として用意した Windows Server 2016 には「NODE2」というコンピュータ名を設定しました。

作業用の端末の hosts を編集します。下図のように相手のホスト名を NODE2 ではなく「dummy」と入力しています。

ping を送信する前に、「ipconfig /displaydns」で dns キャッシュを確認してみます。hosts に設定した値がキャッシュとして確認できますね。では実際に ping してみましょう。

dummy に ping 成功!

dummy に対して ping が成功しました!

結論としては、hosts のホスト名が間違って(異なって)いたとしても名前解決には成功します

ただし、逆引きを考えると一つのIPアドレスに複数のホスト名が定義されているようなものなので、どこかでおかしくなる可能性があります。

hosts は常にキャッシュされる

ちなみに、hosts の内容は常に DNS キャッシュにのります。

サーバ本来のホスト名に対しても ping が通ることがある

これまたちなみに、DNSサーバがいなくても ping の送信先が同一ネットワークかついくつかの条件(プロトコルとポート許可状況)が整っていれば hosts のホスト名ではなくサーバに設定しているホスト名に対しても名前解決は成功します。

上記の名前解決が成功する理由は LLMNR もしくは NBT という Windows が標準で持っている名前解決の仕組みがあるからなんですが、詳しく知りたいという方は以下の記事を参照してください。

LLMNRとNBTとは – DNS サーバが無いのに名前解決ができる理由

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)