ホスト名-iが奇妙なIPアドレスを返す理由を理解する

ホスト名-iが奇妙なIPアドレスを返す理由を理解する

次の質問は似ていますが、同じではないので引用します。

私はCentOS 7システムでホスト名を変更した後、「hostname -i」から奇妙なIPアドレスを取得し、なぜこれが起こるのかを理解しようとしています。

次のコマンドを使用してホスト名を変更します。

# hostnamectl set-hostname saturn
# systemctl restart systemd-hostnamed

私の/etc/hostsファイルは次のようになります:

 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

以下は私の/etc/nsswistch.confファイルにあります。

hosts:      files dns myhostname

私のサーバーのIPアドレスは192.168.1.13ですが、"hostname -i"は奇妙なIPアドレスを返します。

# hostname -i
92.242.140.21

ただし、「hostname -I」はトリックを実行します。

# hostname -I
192.168.1.13

なぜホスト名-iは92.242.140.21を返すのですか? DNSが自分のシステムに割り当てた任意の動的IPですか?誰かがこれを説明できますか?ありがとうございます!

答え1

すべてのネットワークインターフェイスに設定されているすべてのIPアドレスを一覧表示するコマンドとは異なり、hostname -Iこのhostname -iコマンドは名前解決を実行します(hostnameマンページを参照)。

新しく割り当てられたホスト名はこのファイルを使用して解決できないため、ファイルを実行すると/etc/hostsシステム名リゾルバhostname -iが外部DNSサーバーに対するDNSクエリを生成します。このサーバー(ISPに属すると仮定)では、このクエリは空白としてマークされています(NXDOMAIN結果:つまり存在しないドメイン)。あなたのISPはBarefruitと提携しているので、NXDOMAINの結果は得られず、代わりにあなたのクエリに応答してBarefruit IPアドレスを受け取ります。

$ dig +short -x 92.242.140.21
unallocated.barefruit.co.uk.

ファイルに新しいホスト名を追加すると、コマンドを実行すると/etc/hosts奇妙なBarefruit IPアドレスが消えると思いますhostname -i。そうでない場合は、この回答を無視してもかまいません。 :)


楽しみにして、このdigコマンドを使用すると、別のネームサーバーを要求できます。応答の違いを確認するには、次の2つのコマンドを実行します。

$ dig saturn
$ dig @8.8.8.8 saturn

最初は、システムの事前設定されたDNSサーバーを介して名前解決を実行し、Barefruit IPアドレスを返すことができます。 2番目のコマンドは尋ねられます。Google パブリック DNS名前を確認してNXDOMAINステータスを返します。それとも?

その場合、あなたのISPは以下の疑わしい慣行に関与している可能性があります。DNSハイジャック、選択を解除するか、DNSサービスプロバイダを変更する可能性があるかどうかを確認したい場合があります。

関連情報