ファイルにサーバーのホスト エントリがあります/etc/hosts
。次のエントリがあります。
10.74.74.76 foo
しかし、同じマシン上で SSH 経由で次の操作を実行します。
$ host -t a foo
foo.internal.domain.com has address 10.43.55.23
これはなぜ の IP を参照しないのですか/etc/hosts
?
答え1
host
は(単純な)DNSルックアップユーティリティ。
ファイル内のデータは/etc/hosts
DNS ではありません。
つまり、このhost
コマンドは常に、構成した DNS サーバーを照会し、ホスト/FQDN の解決を試みる前に最初にローカル ホスト データベースを照会するというシステム リゾルバーが使用する通常の優先順位を尊重しません。
答え2
このhost
コマンドは、リゾルバとして常に DNS を使用し、ファイルを使用しない DNS ルックアップ ユーティリティです/etc/hosts
。
host(1)のマニュアルページより:
host
DNS ルックアップを実行するためのシンプルなユーティリティです。
server
はオプションの引数であり、 にリストされているサーバーの代わりにホストが照会するネーム サーバーの名前または IP アドレスのいずれかです/etc/resolv.conf
。