web-dev-qa-db-ja.com

ネットワーク構成:resolv.confおよびホスト

This manualと読みましたが、少し混乱しています。これは私が理解できないものです:

When your system tries to resolve a hostname to an IP address or determine the
ostname for an IP address, it refers to the /etc/hosts file before using the
name servers

そう:

1)システムがホスト名の解決を試みるのはいつですか?データグラムのヘッダーがホスト名を指定している場合、それを理解するのは正しいですか?

2)resolv.confの前のhostsを参照する理由

3)ホスト名が解決された後、システムはルーティングテーブルを参照しますか?

5
yotamoo

1)通常、システムは「resolv.conf」でDNSサーバーを使用します。 www.yahoo.comにアクセスすると、システムはDNSに接続し、DNSはそのアドレスのIPアドレスを返します。システムは、アドレスwww.yahoo.comに対応するIPアドレスを認識します。

2)hostsファイルは解決しようとしているアドレスを上書きするために使用されるため、アドレスを解決する前にhostsを使用します。すなわち:おそらくそこにエントリがあります。127.0.0.1 localhostは、「localhost」という名前でホストに接続しようとすると、アドレス127.0.0.1を使用して接続することをシステムに伝えます。 eth0のlopbackインターフェイス。

3)システムがhostsを直接見るか、 'resolv.conf'でDNSサーバーにコンタクトすることにより、ホストのアドレスを知った後、ルーティングテーブルを見て、どのルールが何をすべきかを説明します取得したIPアドレスへの宛先を持つトラフィックで。

つまり、ネットワーク上にホスト名が「Ubuntu-One」と「Ubuntu-Two」の2台のコンピューターがあり、各コンピューターがHostファイルに割り当てられていると仮定します。

127.0.0.1 localhost Ubuntu-OneコンピューターUbuntu-Oneの場合127.0.0.1 localhost Ubuntu-TwoコンピューターUbuntu-Twoの場合

これは自動的に行われます。そのため、それぞれの端末で「localhost」と「Ubuntu-One」と「Ubuntu-Two」を解決できます。

Ubuntu-OneからUbuntu-Twoにpingを試みると、Ubuntu-Oneはresolv.confファイルでDNSサーバーに接続し、サーバーは「そのアドレスに関連するIPがわからない」と表示し、PCは「不明ホスト名」。行<IPADDRESSFROMUBUNTU-TWO Ubuntu-TwoをUbuntu-Oneのhostsファイルに追加すると、システムが再度pingを試行すると、hostsファイルでUbuntu-TwoからのIPアドレスがxxxxであることが確認され、ルーティングテーブルを使用して、そのルールがそのIPまたはIP範囲に適用され、指定されたゲートウェイを使用して(またはなしで)ホストに接続するかどうかを確認します。それが、hostsresolv.confよりも前にある理由です。

14
Bruno Pereira

何かに接続したいときは、少なくともホスト名をIPに解決する必要があります。システムに対してローカルであるため、最初に/ etc/hostsの設定を使用します。指定していない場合は、resolv.confで定義されているDNSサーバーから検索します。

1