DNSメッセージ形式

Layer8輪講 詳解TCP/IP
DNS – ドメインネームシステム
~第2部~ DNSのしくみ
環境情報学部 1年 三島 和宏
[email protected]
本日のお題


前回のおさらい
DNSメッセージ形式
– リソースレコード



DNSにおけるUDPとTCP
問い合わせのフロー
例を見ながら・・・
– 問い合わせ
– ポインタ照会
– キャッシング

最後に確認&まとめ
第2部: DNSのしくみ
2
前回のおさらい

DNSはお名前解決システム
– 名前の問い合わせには、レゾルバーを用いる

階層構造
– arpaドメイン、gTLD、ccTLD …



管理の委任・分散システムの必要性
ネームサーバの種類・しくみ
キャッシングと言う機能
第2部: DNSのしくみ
3
DNSは・・・


DNSは、まずサーバに対して照会(問い合
わせ)を行い、そしてサーバは、クライアン
トに対し回答と言う形で返事をする。
基本的に、回答は、サーバがその回答に
対して責任を持つ必要がある。このような
返事を、権威ある回答といいます。
第2部: DNSのしくみ
4
DNSメッセージ形式

DNSメッセージ
0
照会
メッセージ
15 16
31
識別子
フラグ
質問数
回答RR数
権威RR数
追加RR数
12バイト
質問
回答
応答
メッセージ
権威
追加情報
第2部: DNSのしくみ
5
識別子
QR オプコード AA TC RD RA (0)
1
4
1 1 1 1
3







record
4
QR・・・0照会 1応答。
オプコード・・・0通常照会 1逆照会 2サーバステータス要求
AA・・・権威ある回答を意味する
TC・・・不完全を意味する(UDP最大サイズover)
RD・・・再帰要求を意味する
RA・・・再帰可能を意味する
Record・・・0エラーなし 3ネームエラー
第2部: DNSのしくみ
6
再帰?

再帰照会
– 命令:自分のサーバで処理しろ
– 指定ドメインを自身で解決可能な照会

反復照会
– 命令:俺じゃダメだから、こいつに聞け
– 指定ドメインが自身で解決できないため、解決
するために必要なネームサーバのリストを返
す照会
第2部: DNSのしくみ
7
照会メッセージの質問部分
0
15 16
照会名
照会タイプ

31
照会クラス
照会名・・・照会したいラベルが入る
ドメイン名の場合、 3www3sfc4keio2ac2jp0
境界に、カウントバイトと呼ばれるラベルが入る

照会タイプ・・・その照会を示す値が入る
– 後述のリソースレコードを表す数値(本参照)

照会クラス・・・Internetアドレスの場合、1
– 非IPの場合、別の値をとる
第2部: DNSのしくみ
8
応答メッセージ
0
15 16
31
ドメイン名
タイプ
クラス
生存時間(TTL)
リソースデータ長
リソースデータ
第2部: DNSのしくみ
9
応答メッセージ

ドメイン名・・・データの内容に対応した名前
– 照会メッセージの照会名と同じ形式

タイプ・・・その応答が示すタイプを表す値
– 照会メッセージの照会タイプと同じ形式

クラス・・・Internetアドレスの場合、1
– 照会メッセージの紹介クラスと同じ形式



生存時間(TTL)・・そのデータの保持される秒数
リソースデータ長・・・リソースデータの総量
リソースデータ・・・一番大切な応答データ
– クラスによって、変化。1(Aレコード)なら、4バイト
第2部: DNSのしくみ
10
リソースレコード

リソースレコードのタイプ
–
–
–
–
–
–
A
PTR
CNAME
HINFO
MX
NS
第2部: DNSのしくみ
11
みんなのよく使うホスト
☆sfc.wide.zone☆ AAAAレコードは、省略
shonan
IN A
203.178.142.130
IN
MX 0 shonan
IN
HINFO Ultra30 Solaris5.6
wanwan
IN A
203.178.142.131
IN
HINFO Sun-Enterprise Solaris
IN
MX 0 wanwan
IN
MX 10 shonan
第2部: DNSのしくみ
12
みんなのよく使うホスト
☆203.178.142.128..27.rev☆
130 IN PTR shonan.sfc.wide.ad.jp.
131 IN PTR wanwan.sfc.wide.ad.jp.
☆sfc.wide.zoneから☆
jam =emma, panda, lapis, neco,
inet, icann, juneconf
第2部: DNSのしくみ
13
リソースレコード: A



IPアドレスを定義
ホスト名からIPアドレスに変換する際に使われる
レコード
32ビットバイナリ値で記録される(v4)
– さて、なぜでしょう?
• IPv4アドレスは32ビットバイナリ値を取ります

IPv6では、このレコードは、AAAAとなる
– そして、128ビットバイナリ値で記録
– A(32bit)*4 = AAAA(128bit)
第2部: DNSのしくみ
14
リソースレコード: PTR




ホスト名を定義
ポインタ照会の際に利用されるレコード
すなわち、IPアドレスからホスト名に変換す
る際に利用されるレコード
関連事項) arpaトップレベルドメイン
第2部: DNSのしくみ
15
リソースレコード: CNAME



Canonical Name(規準名)のこと
ドメイン名として表される
あるドメイン名のエイリアス
第2部: DNSのしくみ
16
リソースレコード: HINFO


ホスト情報を定義
CPUとオペレーティングシステムを表す
第2部: DNSのしくみ
17
リソースレコード: MX




Mail Exchange(メール交換)レコード
メールの届き先(ポスト)を指定する
このレコードに記録されたサーバにメール
が届くようになる
一緒に設定された優先値が小さいほど、
優先される。(0>10>20みたいな感じ)
– 値が小さいほど、メインサーバになり、大きい
ほどサブサーバ(バックアップ)になる。
第2部: DNSのしくみ
18
リソースレコード: NS


ネームサーバレコード
割り当てられたドメインに対する権威ある
ネームサーバを定義する
第2部: DNSのしくみ
19
DNSにおけるUDPとTCP

DNSは、UDP53番ポートおよびTCP53番
ポートを使って通信を行う

基本的に、UDPを利用する
– そのため、ネームサーバとレゾルバーは独自
のタイムアウト・再転送を行う。(UDPは、その
辺りの面倒は見てくれない。)
第2部: DNSのしくみ
20
DNSにおけるUDPとTCP

たまに、TCPを利用することもある

どんなときか?
– UDPパケット最大サイズを超えたとき
• UDPデータグラムの最大サイズは、512バイト以下
でなくてはならない(from 11章:未習)
– ゾーン転送時
• これも、UDPパケット最大サイズを超えるため
第2部: DNSのしくみ
21
ネームサーバの起動
問い合わせのフ
ロー
キャッシュメモリの展開
IPアドレスによる問い合わせの発生
データベースの検索
ある
ない
IPアドレスあり
キャッシュ検索
IPアドレスの回答
ある
キャッシュにあり
IPアドレスの回答
第2部: DNSのしくみ
ない
上位DNSへの問い合わせ
22
例を見ながら・・・

では、tcpdumpを使って、パケットの流れの
例を見ながら、DNSの動きを見ていこう。
第2部: DNSのしくみ
23
例を見ながら・・・
ネーム
サーバ
dns
.226
211.123.44.224/28
.227
.230
multi
rio
ファイル
サーバ
Telnet
クライアント
第2部: DNSのしくみ
24
例を見ながら・・・

例1
– Aレコードに対しての“問い合わせ”の例

multiというTelnetクライアントから、rioとい
うファイルサーバに接続する。
– それぞれのクライアントのIPアドレスを知らな
いという前提条件
第2部: DNSのしくみ
25
例を見ながら・・・

例2
– PTRレコードに対しての“ポインタ照会”の例

211.123.44.227というTelnetクライアントから、
211.123.44.230というファイルサーバに接
続する
– それぞれのクライアントのホスト名を知らない
という前提条件
第2部: DNSのしくみ
26
例を見ながら

ホスト名の成りすまし(スプーフィング)
– Rlogin(Telnet)などのサーバでは、クライアント
からの接続要求があったとき、そのクライアン
トのPTRレコードとAレコードを問い合わせ、そ
れぞれが合うかどうかをチェックしている。

例2の結果にあわせて、見てみよう。
第2部: DNSのしくみ
27
例を見ながら・・・

例3
– キャッシングの例


キャッシングって何でした?
multi.kabu4u.com.からjam.sfc.wide.ad.jp.
のホスト情報を見てみる。
– MXレコードも出ているので一緒に見よう
第2部: DNSのしくみ
28
例を見ながら・・・

例4
– CNAMEを見てみる

multi.kabu4u.com.からwww.sfc.wide.ad.jp.
のホスト情報を見てみる
第2部: DNSのしくみ
29
最後にもう1度見てみよう
PTR?
Root
Name
Server
Server
NS
PTR
TCP
コネクション
Root
Name
Server
Serverの
Name
Server
PTR?
A
A?
NS
A
A?
Client
第2部: DNSのしくみ
A?
Clientの
Name
Server
30
まとめ

DNSは、Internetに接続されているホストに
とって、きわめて重要なもの
– IPアドレスを覚えるより、ホスト名+ドメイン名
を覚えた方が効率的
第2部: DNSのしくみ
31
まとめ

DNSを身近に感じるために
– nslookupコマンド
Windows, UNIXなどたいていのクライアントに
付いてくる。DNSへの問い合わせ結果を見る
ことが出来る。
– hostコマンド
nslookupコマンド同様なツール。Windowsには
付いてこないのでUNIXで実行できる。
第2部: DNSのしくみ
32
まとめ







DNSは、階層構造
管理の委任・分散システムの必要性
ネームサーバの種類・しくみ
キャッシングと言う機能
TCPとUDPを使う違い
リソースレコード
メッセージ形式
第2部: DNSのしくみ
33
第2部おわり
第2部: DNSのしくみ
34
参照

http://www.rscott.org/dns/
第2部: DNSのしくみ
35