• 締切済み

hostsファイル名前解決の順序

hostsファイルで名前解決される場合、その順序について質問させて下さい。 名前解決される時、hostsファイルに記述のある上から下に向かって名前解決をするのか、 それとも下から上に向かって名前解決をするのでしょうか? ご存知の方はご回答をお願いいたします。 情報等が記載されているリンク等ございましたら、そちらもお教えください。 よろしくお願いいたします。

  • p_nt
  • お礼率0% (0/26)

みんなの回答

回答No.2

hosts内で1つのホスト名に複数のIPを割り当てるのは、 自ホストマシンに複数NICをつけるケースが想定されています。 また、ホスト名からIPアドレスを得る関数(gethostbyname)は 複数のIPアドレスをまとめて取得できる構造になっています。 で、どのような優先順位で返却されるかは、 質問したい処理系が書かれてありませんが、 Linuxの場合、以下の情報があります。 http://sios-oss.blogspot.jp/2012/06/etchosts-ip.html ここにある通り、hosts.confに何も設定がなければ 上に書かれたIPが返却されます。 そして、hosts.confに「multi on」が設定されていると 複数設定されている全てのIPが返却されます。 さらに「reorder on」が設定されていると、 複数IPの返却において同一サブネットのIPが先に 返却されます。 ただ、だからといって1つのホスト名を指定して pingコマンドを入れても、pingが全てのIPに 一度に出るわけではありません。 ここで複数取得できると言っているのは、 gethostbyname関数で得られるIPアドレスが 複数配列で得られると言うことです。 複数のIPアドレスが得られてもpingコマンドのように 結局最初のエントリしか使用しないものは 「multi on」の効果はありません。 「reorder on」は、同一サブネットのIPが先頭に返却 されるので、pingコマンドが送信するIPもその結果が 反映されると思います。 なお複数エントリ取得に対応していて複数IP表示できる コマンドもあるようです。 例えば http://gkisland.seesaa.net/article/281947057.html にある通り、hostnameコマンドは-iパラメータをつけて 自ホストとして登録されているIPを全て表示することが できるようです。 Windowsの場合は、hosts.confのような設定はありませんが 少なくともgethostbynameで複数IPを取得できるようには なっているため、おそらくLinuxの「multi on」と同じ ような感じだろうと推測します。(本当のところは 実際のgethostbynameの戻り値を調べてみないとわかりません) 単純に「hostsファイル内で1ホストに複数IPが登録されて いる時、pingコマンドで使用されるIPアドレスは上のエントリ が優先されるか?下のエントリが優先されるか?」 という質問なら、簡単にやってみることができますが、 上のエントリが優先されます。

  • bunjii
  • ベストアンサー率43% (3589/8248)
回答No.1

>名前解決される時、hostsファイルに記述のある上から下に向かって名前解決をするのか、それとも下から上に向かって名前解決をするのでしょうか? hostsファイルで名前解決する目的を考えてください。 DNSの場合は正引きと逆引きがありますが、hostsファイルでは逆引きの必要があるでしょうか? 1つのIPアドレスで複数のホスト名を定義することはありますが、1つのホスト名で複数のIPアドレスを定義するとどのような結果になるかを考えてください。 マルチドメインのWebサーバーの場合は1台のサーバー(1つのIPアドレス)で複数のドメインを運用しますのでDNSには正引きで複数のドメイン名を1つのIPアドレスへ変換します。 その時、逆引きには本来のホスト名とIPアドレスの1組のみ設定するようです。 質問の回答になっていないと指摘されそうですが「解決する順番を考える必要が無いように思われる」と言う回答です。

関連するQ&A

  • hostsファイルについて

    hostsファイルについて質問です。 NICが二枚のPCがあります。 hostsファイルに下のような記述をした場合、 どのように優先順位が決まるのでしょうか? ------------------------------------- PC001 192.168.1.21 PC001 192.168.1.22 -------------------------------------

  • /etc/hosts ファイルのリンクについて

    Solaris8を使用しております。 /etc/hosts シンボリックリンクについて質問します。 つい先日、/etc/hosts はファイル実体ではなく、/etc/inet/hosts へのシンボリックリンクであるということを知りました。 普段、IPアドレスとホスト名を確認する際には、/etc/hosts から情報を得ていますが、当該実体ファイルが、/etc/hosts へリンクされている意図は何でしょうか。 シンボリックリンク作成については、/etc/hosts ファイルに限ったことではないと思いますが、シンボリックリンクを使用することの利点についても併せて教えていただけると幸いです。 ご存知の方がいたら回答お願いします。

  • 名前解決

    名前解決について教えてください。 Windowsネットワークでは、NetBIOS名の名前解決をしていると思います、たとえば、同じネットワーク内にあるサーバとクライアントでの通信はブロードキャストにて名前解決をしIPアドレスで通信をすると思いますが、ルータを挟んだ別ネットワークでの名前解決をLMHOSTSにて行う場合、HOSTSファイルはクライアントとサーバの両方に書かなくてはいけないのでしょうか。サーバ側にも書く場合、クライアントが複数台ある時は、サーバ側にはクライアント台数分のHOSTSファイルを書くのでしょうか。 教えてください。 

  • hostsファイルについて

    はじめまして。ネットワークエンジニアの卵です。 ●http://www.atmarkit.co.jp/icd/root/11/5784411.htmlを読んでの質問です。このサイトでは、hostsファイルについて、次のように説明されています。 ================================================================  TCP/IPを使ったネットワークにおいて、あるノードのIPアドレスと、 そのノードを表わす分かりやすい文字列(別名)の対応を記録した ファイルのこと。  TCP/IPを実装したマシンでは、ほとんどの場合、このhostsファイルを参照して名前解決をすることができる。  hostsファイルの、OS別ディレクトリ位置  ・UNIX系のOSは、/etc/hosts  ・Windows 95/98では、C:\Windows\hosts  ・Windows NTではC:\Winnt\System32\Drivers\Etc\hosts ================================================================ 上記にあるように、MS-DOSプロンプトを起動し、 C:\Documents and Settings\computername>上記のディレクトリを試しましたが、全て失敗です。  いずれも、'内部コマンドまたは外部コマンド、操作可能な プログラムまたはバッチ ファイルとして認識されていません。’や、 ’指定されたパスが見つかりません。’等と表示されてしまいます。 hostsファイルとは標準装備されているものではないのでしょうか。 ちなみにOSは、WindowsXP home Edition です。 上記2点について長々と説明させて頂きましたが、ご回答お願いしす。 また、ネットワーク初心者でも、分かりやすくて丁寧なサイトがありましたらURLも教えて下さい。

  • lmhosts,hostsの補完関係について

    lmhosts,hostsの2つのファイルに関して、補完関係を調べております。 ご存知の方いらっしゃいましたら以下3点についてご教授いただきたけないでしょうか どうぞよろしくお願いいたします ・lmhosts内に該当IPが存在しない場合hostsを読みに行って名前解決を行っていないか ・hosts内に該当IPが存在しない場合lmhostsを読みに行って名前解決を行っていないか ・lmhosts,hostsどちらの名前解決を先に行っているのか

  • LMHOSTSとHOSTSファイルについて

    ネットワーク管理者(初心者)です。 一つのネットワークセグメントでサーバへアクセスするのに、 ¥¥サーバ名でアクセスできず、¥¥IPアドレスで行ってます。 上記現象が起こるのは、数台のPCだけですので、手動でLMHOSTSファイルもしくはHOSTSファイルに定義を記述しようと思います。 そこで、ご質問ですが、IPアドレスとマシン名だけを関連させるだけならば、HOSTSファイルに記述するだけでいいのでしょうか。 もしくは、LMHOSTSファイルにも記述が必要でしょうか。 いまいち両者の使い分けが分りません。 使い分けについてご存知ならば、教えていだだけ無いでしょうか

  • hostsファイルが書き換えられたかもしれません

    インターネットに繋がりにくくなったのでいろいろ調べてみたところ、hostsファイルが書き換えられた可能性があります。 C:\WINDOWS\system32\drivers\etc の中を調べると 5つのファイルがあり、hostsファイルの更新日時が2005/12/11で、その他の4つが2003/04/03 21:00でした hostsファイルをメモ帳で開くと「127.0.0.1 localhost」と一行だけ書いていました 人のPCを見ての推測ですが、当初は上に何行か書いていて、勝手に書き換えられたのではないかと思っています もしそうなら、その場合の対処法が分かりません OSの再インストールしかないのでしょうか どなたか、よろしくお願いします http://oshiete1.goo.ne.jp/kotaeru.php3?q=1832027

  • Hostsファイルの名前解決順(確認方法)について

    はじめまして。OKWaveの利用はこのご質問でデビューとなります。 ルールに添えていない部分はご指南下さい。 問題点: ~~~~~~~~ Hostsファイルを利用していた(つもりな)のですが、名前解決順が意図したものではなさそうです。 具体的には http://www29.atwiki.jp/bearlake/pages/30.html のような利用を想定しており hostsファイル> 0.0.0.0 yahoo.co.jp ← このように記載設定 ping yahoo.co.jp とすると下記の様に応答があるのです。(^^; ------------------------------------------------------------------ Pinging yahoo.co.jp [124.83.139.192] with 32 bytes of data: Reply from 124.83.139.192: bytes=32 time=35ms TTL=46 略 Reply from 124.83.139.192: bytes=32 time=32ms TTL=46 Ping statistics for 124.83.139.192: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 32ms, Maximum = 44ms, Average = 36ms ------------------------------------------------------------------ 最優先にHostsファイルを強制参照させる方法や、稼動しているPCの「実際の」名前解決順を調べたいのです。 複合した原因も考えられますので、影響範囲も含め、最小限の変更で意図した動作を求めております。 関連する情報: ~~~~~~~~~~~~~~ 当方で調査したところ http://support.microsoft.com/kb/310570/ja 当該機で上記の用な状態が確認できましたので、下記のたどり着きました。 http://www.kotaete-net.net/Default.aspx?pgid=14&qid=6025858533 ご提示すべき、当該PCの設定条件や現況は多いはずですが、多岐に亘る為 どの部分かも確認しきれておりません。 情報が少ない事をお許し下さい。必要であれば、ご指示頂いた当該事項の追記致します。 PC(OS) Windows XP Pro.(SP2+最新Patch) 関連しそうなレジストリ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters  DataBasePath → %SystemRoot%\System32\drivers\etc 確認した事: ~~~~~~~~~~~~ 冒頭に記載しました、問題点の部分の他に以下も確認しました。 ping localhost と打つと自機から応答はある。<-- hostsファイルに記述されたものが反映されている(と理解) 皆様のお知恵を是非拝借したいと思います。よろしくお願いします。

  • Hostsファイルの書き方

    こんばんは。 とあるサーバAが、2つのセグメントに属しているとします。 例として 業務系(192.168.3.xx) 管理監視系(192.168.1.xx) とします。サーバA以外にも同様の構成のサーバが数台あります。 この場合、他サーバに対し、サーバAの hostsファイル内で名前解決を定義することはできるのでしょうか?。 例えば サーバB 192.168.3.2 サーバB 192.168.1.2 サーバC 192.168.3.3 サーバC 192.168.1.3 サーバD 192.168.3.4 サーバD 192.168.1.4 のような感じです。2つのセグメントに属している為、こういった 記載をイメージしてみました。 これは実現できるのでしょうか?。 アドバイスお願いします。

  • 突然名前解決ができなくなりました

    会社のメールサーバーをNotesで構築しています。 ある日突然そのサーバーに対して名前解決ができなくなり、Notesの利用ができなくなりました。 サーバーに対してIPアドレスではPingが通るのですが、コンピュータ名では通りません。しかたがないのでHOSTSファイルにIPアドレスとサーバー名を記述しました。それでNotesは利用できるようになったのですが、名前解決できなくなった理由がわかりません。 ネットワークの構成はNTドメインでクライアントはXPです。どなたかお助けください。