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
© Copyright 2024 ExpyDoc