DNSとは
名前解決プロトコルと呼ばれ、ネットで利用される”名前”と”IPアドレス”との変換を行うプロトコルです。
実際には、ネットワーク機器からの要求に基づいて、DNSサーバが、世界規模で分散されたデータベースに記録
されているレコードを探索し、ホスト名+ドメイン名とIPアドレスとの変換を行う、これを『名前解決』と呼びます。
DNS通信はホスト名+ドメイン名をキーとして、IPアドレスを問い合わせる
DNS要求パケットと、DNSサーバからキーを元に変換されたIPアドレスを返答するDNS応答パケットの組み合わせで成り立っています。
DNSのダンプ解析
パケット解析ソフトwiresharkで、dnsでフィルタリングしパケットをダンプしたところ下記のようなパケットを取得出来ました。
ブラウザを起動し、アドレス欄に"http://www.hotmail.com"と打ち込んだ直後のパケット状況をwiresharkでダンプしてみます。
No.124のパケットがDNSクエリ要求メッセージと呼ばれ、"www.hotmail.co.jp"の名前解決クエリーです。
DNSクエリ要求メッセージ
☆Domain Name System各項目の説明
Transaction ID:DNSクエリ要求メッセージと応答メッセージで共通のID
Flags:
Response:0のとき、要求。1のとき、応答
Opcode:問い合わせの種類。0:標準の問い合わせ、1:逆の問い合わせ、2:サーバの状態を要求する問い合わせ
Truncated:メッセージが分割されてるかどうか。0:分割されていない、1:分割されている
Recursion desired:再帰問い合わせをするか。0:再帰問い合わせしない、1:再帰問い合わせする
z:将来用の予約:常に零
Non-authenticated data:権威づけられてるデータを受け付けるか。0:受け付けない、1:受け付ける
☆Queries
"www.hotmail.co.jp: type A, class IN"という問い合わせを行っています。
意味は、www.hotmail.co.jpのFQDN(Fully Qualified Domain Name)に対応するIPアドレスを、
リソースレコード内のAレコード(DNS名とホストアドレスの対応レコード)を参照し問い合わせることを意味しています。
DNSクエリ応答メッセージ
☆Domain Name System各項目の説明
Transaction ID:DNSクエリ要求メッセージと応答メッセージとで同じ値であることを注意して下さい。
☆Queries
DNSクエリ要求メッセージと同じです。
DNSクエリ応答メッセージ(Answers部詳解)
☆Answersフィールド
複数Answerが充填される可能性があります。今回の場合、計4つ。
Answer 1. www.hotmail.co.jpに対し、CNAME(実際のDNS)レコードの回答 mail.live.com
Answer 2. mail.live.comに対し、CNAMEレコードの回答 dispatch.kahuna.glbdns.microsoft.com
Answer 3. dispatch.kahuna.glbdns.microsoft.comに対し、65.55.40.103
Answer 4. dispatch.kahuna.glbdns.microsoft.comに対し、65.55.40.87
Typeという項目は、応答の種類を示し、CNAMEであれば、エイリアスレコードの応答、AであればAレコードの応答を示します。(※)
※これらレコードはリソースレコードとよばれ、http://ja.wikipedia.org/wiki/DNS%E3%82%B5%E3%83%BC%E3%83%90
に解説がある。
Classという項目は、問い合わせの対象を示し、INは、インターネットを示します。
Time to liveという項目は、レコードの有効期限を指しています。
要は、2つのIPアドレスが割り当てられてることが確認できます。