2011年06月24日

名前解決の手順

通常コンピューター同士の通信には、IPアドレスが利用されています。ただし、人からすればこのIPアドレスという数字の塊は、理解しづらい。
そこで、これをコンピューター名で扱っています。 www.yahoo.co.jp なんていうアドレスに該当するものが、これに値します。通常こうしたアドレスのことをFQDN(Full Qualified Domain Name/完全修飾ドメイン名)なんて言います。
でもコンピューターでは、この www.yahoo.co.jp なんていう文字列を直接扱うことができません。
そこで、DNS(Domain Name System)という www.yahoo.co.jp の IPアドレスは、124.83.235.204 なんですよということを管理するためのデータベースが必要になるわけです。
こう言うように、このIPアドレスはこういうFQDNなんだよというように変換する仕組みを、"名前解決"といいます。

で今回のお話は、ここからが本題。この名前解決がどんな手順で行われているか? 

いきなりインターネット上のDNSに問い合わせている訳じゃないんですね...

加えて、この名前解決には、さらに細かく言えば2種類あります

1)ホスト名解決(ホスト名をIPアドレスにする)
2)NetBIOS名解決(NetBIOS名をIPアドレスにする)

このいずれかで名前解決が行われます。

何で、Windowsには、ホスト名とNetBIOS名の2つがあるのか? 

これは、旧バージョンのWindowsのOSの仕組みを引き継いでいるから。昔は、Windows上で動作する "NetBIOSアプリケーション"が多数ありこれらのプログラムがコンピューターを識別するためにコンピューター名を使用していたことに寄ります。Microsoftサーバー上のリソースにアクセスするためのクライアントと呼ばれるプログラム(Windowsファイルマネージャーやマイネットワークなど)がその例です。こうしたプログラムが使用することから、"NetBIOS名"と呼ばれるようになりました。

ただ一方、現在主流となっているTCP/IPを使用したアプリケションもあって、こちらはコンピューターを識別するために、"ホスト名"が使用されていました。なので、Windowsでは両方をサポートしているというわけです。

では肝心のホスト名解決から見ていくことにしましょう。

ホスト名解決の一般的な流れとしてはこうです

1)クライアントからそれが、自身のものなのか?確認
2)次に、ローカルにあるHostsファイルをチェックします
3)そして、次はDNSに問い合わせ
4)それでも解決ができない場合には、NetBIOS名前解決へと進みます

実際DNSサーバーでは、複数のDNSサーバーが階層的に配置され、それぞれの階層でドメイン名とIPアドレスを管理。ルートドメイン、トップレベルドメイン、セカンドレベルドメイン、時にはさらにサブドメインといった階層構造をしています。

でそこで解決できない場合に今度は 4)にも書いたように、NetBIOS名解決へと進みます

ここでは、

1)LMHOSTSファイルをチェック
2)WINS(Windows Internet Name Services)
3)ブロードキャスト
の順で進みます。

最後のブロードキャストは、NetBIOSクライアントが、ローカルネットワークに対してブロードキャスト信号を送信。目的のコンピューターがローカルネットワーク上に存在すれば、応答しIPアドレスが帰ってくるという仕組みです。

名前解決の際に真っ先に参照されるのが、ローカルに保存されている "DNSリゾルバキャッシュ"。効率よく名前解決を行うために、一度名前解決を行ったものについては一定期間メモリ上に保存されます。これは、DNSサーバーから返された情報も、HOSTSファイルに登録された情報もDNSリゾルバキャッシュに反映されるような仕組みになっています。

話はそれますが、ローカルに保存されているHOSTファイルに記述されている情報が誤っていたりするとページがちゃんと表示されなくなっちゃうんですね。


<参照>
Microsoft TCP/IP のホスト名解決の順序
優先DNSサーバと代替DNSサーバの動作について/@IT
Windows 名前解決の順序/Ask the Network & AD Support Team
posted by クリック at 17:06| 東京 ☀| Comment(0) | TrackBack(0) | Windows全般 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック