IPアドレスの切り替えにもDNSは使われる
もし、会社がWebサーバーを違うIPアドレスのマシンに変更していたら、新しいIPアドレスを伝える必要がある。
WebサイトをあるIPアドレスから別のアドレスに移動することはあまりないように思われるかもしれないが、実際には負荷分散のために非常に頻繁に起きる。最近の多くのWebサイトは、コンテンツを複数のマシン(多くの場合は、地理的に分散したクラスタ)に配置している。コンテンツを提供している組織としては、クライアントからの通信をあるWebサーバーから別のWebサーバーに"移動”したい場合がある。DNSはこのための最も便利な方法である。
DNSとは
DNSを使う前は
ファイルhosts.txtがすべてのホストと対応するIPアドレスをリストし、毎夜、すべてのホストがそのファイルを、保持するサイトからとっていた。
階層的な名前づけとその名前づけを実装する分散データベース・システムからなる
DNSは、階層的な名前づけとその名前づけを実装する分散データベース・システムからなる。DNSは主にホスト名をIPアドレスにマッピングするのに利用されるが、他の目的にも利用できる。DNSは、インターネットのプロトコルの中で最も活発に開発が進んでいるものである。
DNSは再帰探索を行い任意のIPアドレスを見つける
DNSは次のように動作する。まず、名前をIPアドレスに変換するために、アプリケーション・プログラムはライブラリを呼び出し、この関数に名前をパラメータとして渡す。このプロセスをスタブ・リゾルバ(stub resolver)と呼ぶ。スタブ・リゾルバは、名前を含んだクエリ(query)をローカルDNSリゾルバ(local DNS resolver)に送信する。ローカルDNSリゾルバは、ローカル再帰リゾルバ(local recursive resolver)または単にローカル・リゾルバ(local resolver)とも呼ばれる。ローカルDNSリゾルバはその後一連のDNSリゾルバに対して再帰探索(recursive lookup)を実行する。ローカル再帰リゾルバは、最終的には、対応するIPアドレスを含むレスポンスをスタブ・リゾルバに返す。クエリ・メッセージとレスポンスメッセージはUDPパケットとして送信される。
スタブリゾルバからローカルリゾルバからDNSサーバーへクエリを発行して待つ
通常、スタブリゾルバは、ローカル・リゾルバに対して再起的なクエリを発行し、ローカル・リゾルバからのレスポンスを単に待つ。一方、ローカル・リゾルバは名前階層の各部分について、それぞれのDNSサーバーに一連のクエリを発行する。階層構造の特定の部分を担当するDNSサーバーは、そのドメインの権威サーバー(authoritative name server)と呼ばれる。