1




2012-‐‑‒08-‐‑‒31      DNS  Summer  Days  2012

DNSのRFCの歩き⽅方
株式会社ハートビーツ  滝澤隆史
⽇日本Unboundユーザー会
2




私は誰
•  ⽒氏名:  滝澤  隆史  @ttkzw
•  所属:  株式会社ハートビーツ
 ▫  サーバの構築・運⽤用や
    24時間365⽇日の有⼈人監視をやっている会社
 ▫  いわゆるMSP(マネージド  サービス  プロバイダ)
•  DNSとの関わり
 ▫  システム管理理者として1997年年から2006年年までネームサー
    バの運⽤用
   –  BIND4,  BIND8,  djbdns,  BIND9
 ▫  現在は個⼈人サーバでネームサーバを運⽤用
   –  NSD,  Unbound
 ▫  ⽇日本Unboundユーザー会
   –  Unbound/NSDの⽂文書の翻訳
 ▫  DNSは趣味です(キリッ
3




このセッションの⽬目的
•  DNSの仕様を調べるための取っかかりになるよ
   うな情報を提供すること。
4




このセッションの概要
•  DNSの概念念や仕様を定めている
 ▫  RFC  1034  DOMAIN  NAMES  –  
    CONCEPTS  AND  FACILITIES
    (ドメイン名  –  概念念と機能)と
 ▫  RFC  1035  DOMAIN  NAMES  –  
    IMPLEMENTATION  AND  SPECIFICATION
    (ドメイン名  –  実装と仕様)
•  と、後に発⾏行行されたRFCで変更更・修正された内
   容および拡張された仕様の⼀一部について説明す
   る。
5




注意点
•  この資料料ではRFCの⽂文書を⼀一部翻訳しています
   が、おおざっぱな訳なので、後で⾃自⾝身で原⽂文を
   当たってください。
•  話者は英語が得意ではありません。発⾳音は酷い
   のでご容赦ください。
•  今回は拡張された機能についてはほとんど説明
   しません。特にDNSSECについては全く説明し
   ません。DNSSECについてのRFCについては
   DNSSECジャパンのサイトを訪問してください。
6
7




RFCとは
•  IETF(Internet  Engineering  Task  Force)に
   より発⾏行行されている技術⽂文書
 ▫  インターネット標準や情報提供の⽂文書などがある
•  RFCは"Request  for  Comments"の略略
•  RFCとは何かを理理解するためにはRFCを読むの
   がよい。
8




RFCの形式                                                                                                                                                     著者
                                                                    RFCの番号      この番号の
                                                                                RFCを廃⽌止
Network	
 Working	
 Group	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 R.	
 Arends	
 
Request	
 for	
 Comments:	
 4033	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Telematica	
 Instituut	
 
Obsoletes:	
 2535,	
 3008,	
 3090,	
 3445,	
 3655,	
 3658,	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 R.	
 Austein	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 3755,	
 3757,	
 3845	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 ISC	
 
Updates:	
 1034,	
 1035,	
 2136,	
 2181,	
 2308,	
 3225,	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 M.	
 Larson	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 3007,	
 3597,	
 3226	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 VeriSign	
 
                                                                                             この番号の
Category:	
 Standards	
 Track	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 D.	
 Massey	
 
                                                                                             RFCを更更新
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 Colorado	
 State	
 University	
 
                                                           分類
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 S.	
 Rose	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 NIST	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 March	
 2005	
 
	
                                                                                        タイトル
	
                                                                                                                                                                                          RFCの発⾏行行⽉月
   本⽂文
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 DNS	
 Security	
 Introduction	
 and	
 Requirements	
 
	
 
Status	
 of	
 This	
 Memo	
 
	
 
	
 	
 	
 This	
 document	
 specifies	
 an	
 Internet	
 standards	
 track	
 protocol	
 for	
 the
9




RFCの番号
•  発⾏行行されたRFCの番号は変わらない。
 ▫  代わりに、致命的な間違いや編集ミスについて
    は"ERATTA"が別途出ることがあるので注意。
 ▫  新しいRFCにより"obsoletes"されることがある。
•  RFCに慣れてくるとRFCのタイトルではなく
   RFCの番号で会話をするようになってくる。
 ▫  「RFC  1034ではこう書かれているけどRFC  
    2181ではこうだ」
10




RFCの分類
•  RFC  1796  "Not  All  RFCs  are  Standards"
   すべてのRFCが標準であるわけではない
 ▫  Infomational  (情報提供)
 ▫  Experimental  (実験的)
 ▫  Standard  Track  (標準化過程)
   –  Proposed  Standard  (標準への提唱)
   –  Draft  Standard  (標準への草稿)
   –  Internet  Standard  (インターネット標準)
 ▫  Historic  (歴史的)
11




分類:  標準化過程
•  Standard  Track  (標準化過程)
 ▫  Proposed  Standard  (標準への提唱)
 ▫  Draft  Standard  (標準への草稿)
  –  RFC  6410(2011年年10⽉月発⾏行行)により"Internet  
      Standard"に統合
 ▫  Internet  Standard  (インターネット標準)
  –  「STD  xxx」のように別途番号付けされる
12




分類:  ⾮非標準化過程、BCP
•  Non-‐‑‒Standards  Track  (⾮非標準化過程)
 ▫  Experimental  (実験的)
   –  研究や開発の成果
 ▫  Infomational  (情報提供)
   –  インターネットコミュニティーのための情報
 ▫  Historic  (歴史的)
   –  新しい仕様に置き換えられ、役割が終わったもの
•  Best  Current  Practice  (現時点での最良良な⽅方法)
 ▫  運⽤用についての⽂文書
 ▫  「BCP  xxx」のように別途番号付けされる
13



要求レベルを⽰示すために⽤用いられるキーワード

•  RFCの⽂文書中に次のような説明がある
  The  key  words  "MUST",  "MUST  NOT",  "REQUIRED",  "SHALL",  
  "SHALL  NOT",  "SHOULD",  "SHOULD  NOT",  "RECOMMENDED",    
  "MAY",  and  "OPTIONAL"  in  this  document  are  to  be  
  interpreted  as  described  in  RFC  2119.
•  RFC  2119  /  BCP  14  "Key  words  for  use  in  
   RFCs  to  Indicate  Requirement  Levels"
  ▫  RFCにおいて要求レベルを⽰示すために⽤用いられる
     キーワード
14



要求レベルを⽰示すために⽤用いられるキーワード
      ⼤大⽂文字の時にキーワードとして意味を持つ

キーワード         邦訳          意味
MUST          しなければならない   要求事項
REQUIRED      要求される
SHALL         するもとのする
MUST  NOT     してはならない     禁⽌止事項
SHALL  NOT    しないものとする
SHOULD        すべきである      推奨事項
                          (無視する場合は慎重な判断が必要)
RECOMMENDED   推奨される
SHOULD  NOT   すべきでない      ⾮非推奨事項
                          (容認する場合は慎重な判断が必要)
NOT  RECOMMEDED 推奨されない
MAY           してもよい       任意事項
OPTIONAL      任意である
15




RFCに関するサイト
•  RFC  Editor
  ▫  http://www.rfc-‐‑‒editor.org/
•  IETF  TOOLS
  ▫  http://tools.ietf.org/html/
  ▫  RFCを追いかけるには⾮非常に便便利利
•  JPRS  DNS関連技術情報
  ▫  http://jprs.jp/tech/
  ▫  DNS関連のRFCの邦訳がある
•  DNSSECジャパン
  ▫  http://dnssec.jp/
  ▫  DNSSECに関連するRFCの邦訳や技術情報がある
16
17




DNSの基本仕様のこの2つのRFC
•  RFC  1034
  ▫  DOMAIN  NAMES  –  
     CONCEPTS  AND  FACILITIES
  ▫  ドメイン名  –  概念念と機能
•  RFC  1035  
  ▫  DOMAIN  NAMES  –  
     IMPLEMENTATION  AND  SPECIFICATION
  ▫  ドメイン名  –  実装と仕様
18



RFC  1034
DOMAIN  NAMES  -‐‑‒  CONCEPTS  AND  FACILITIES
•  タイトル
  ▫  DOMAIN  NAMES  –  
     CONCEPTS  AND  FACILITIES
  ▫  ドメイン名  –  概念念と機能
•  概要
  ▫  DNSの構成要素の役割や機能についての説明
     –  ドメイン名空間とリソースレコード
     –  ネームサーバー
     –  リゾルバー
19



RFC  1035
DOMAIN  NAMES  -‐‑‒  IMPLEMENTATION  AND  SPECIFICATION
•  タイトル
  ▫  DOMAIN  NAMES  –  
     IMPLEMENTATION  AND  SPECIFICATION
  ▫  ドメイン名  –  実装と仕様
•  概要
  ▫  DNSのプロトコルの仕様
    –  ドメイン名空間
    –  リソースレコード
    –  メッセージ
    –  マスターファイル
    –  ネームサーバーの実装
    –  リゾルバーの実装
    –  メールエクスチェンジャ
20




 DNSの構成要素
ネームサーバー    ゾーン転送   ネームサーバー                         ロード
(権威サーバー)           (権威サーバー)                                       マスター
                                                                  ファイル
                                                                          ゾーン内のリソース
      メッセージ                                                               レコードを記述


                      ドメイン名空間
      ネームサーバー
      (フルサービス
                                                               リソースレコード
      リゾルバー)
                                                         example.jp.    IN SOA ns.exampele.jp. ..

                                                         example.jp.    IN NS   ns.example.jp.
   メッセージ                com           jp
                                                         ns.example.jp. IN A    192.0.2.1

                                                     ドメイン名               タイプ
       リゾルバー       example        example     co




                             ns         www
21




RFC  1034とRFC  1035への道
•  DNSの仕組みをある程度度理理解していないとRFC  
   1034とRFC  1035の内容を理理解できない。
 ▫  いきなりRFCを読んでもたぶん理理解できない。
•  時代背景が異異なることを意識識すること。
 ▫  DNSが検討開始されたのはARPANETからThe  
    Internetへの過渡期
 ▫  現在は、IN以外のクラス(CS,  CH,  HS)は使わ
    ない。
  –  ただし、CHは本来の⽤用途とは異異なり、ネームサー
      バーの情報の取得に使われている。
   –  $  dig  TXT  CH  version.bind.
22




RFC  1034とRFC  1035への道
•  曖昧さや間違いがある。
 ▫  RFC  1034とRFC  1035が基本仕様であるが、
 ▫  後から公開されたRFCにより、
 ▫  曖昧な点や間違いが訂正されたり、仕様が変更更された
    りしているため、
 ▫  RFC  1034とRFC  1035の内容がすべて正しいとは思
    わないように。
•  RFC  1034と1035をアップデートしているRFCも合
   わせて読みたい。
 ▫  RFC  2181  "Clarifications  to  the  DNS  
    Specification"はDNSの仕様の明確化をしているRFC
    であるので、読むべき。
23


RFC  1034と1035のアップデート
(拡張機能のRFCは除く)
•  RFC  1123
  ▫  Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  Application  and  Support
•  RFC  1982
  ▫  Serial  Number  Arithmetic
•  RFC  2181
  ▫  Clarifications  to  the  DNS  Specification
•  RFC  2308
  ▫  Negative  Caching  of  DNS  Queries  (DNS  NCACHE)
•  RFC  3425
  ▫  Obsoleting  IQUERY
•  RFC  4343
  ▫  Domain  Name  System  (DNS)  Case  Insensitivity  Clarification
•  RFC  5452
  ▫  Measures  for  Making  DNS  More  Resilient  against  Forged  Answers
•  RFC  5936
  ▫  DNS  Zone  Transfer  Protocol  (AXFR)
•  RFC  5966
  ▫  DNS  Transport  over  TCP  -‐‑‒  Implementation  Requirements
24



    DNSの基本仕様およびアップデート
                                           RFC  1982  /  PS                       RFC  4343  /  PS
                                           Serial  Number  Arithmetic             Domain  Name  System  
                                                                                  (DNS)  Case  Insensitivity  
                                                                                  Clarification
RFC  1034  /  STD  13
DOMAIN  NAMES  -‐‑‒  
CONCEPTS  AND                                  RFC  2181  /  PS
FACILITIES                                     Clarifications  to  the  DNS            RFC  5452  /  PS
                                               Specification                           Measures  for  Making  DNS  
                                                                                      More  Resilient  against  
RFC  1035  /  STD  13
DOMAIN  NAMES  -‐‑‒                                                                   Forged  Answers
IMPLEMENTATION  AND  
SPECIFICATION                                      RFC  2308  /  PS
                                                   Negative  Caching  of  DNS              RFC  5936  /  PS
                                                   Queries  (DNS  NCACHE)                  DNS  Zone  Transfer  
     RFC  1123  /  STD  3                                                                  Protocol  (AXFR)
     Requirements  for  Internet  
     Hosts  -‐‑‒-‐‑‒  Application  and  
     Support
                                                         RFC  3425  /  PS
                                                         Obsoleting  IQUERY                      RFC  5966  /  PS
               アップデート                                                                            DNS  Transport  over  TCP  -‐‑‒  
                                                                                                 Implementation  
               参照                                                                                Requirements
25




RFC  1034  ドメイン名  –  概念念と機能
1987年年11⽉月公開
著者:  ポール  モカペトリス(Paul  Mockapetris)
26




RFC  1034の⽬目次
•  1.  STATUS  OF  THIS  MEMO
     本⽂文書の位置づけ
•  2.  INTRODUCTION
     はじめに
•  3.  DOMAIN  NAME  SPACE  and  RESOURCE  RECORDS
     ドメイン名空間とリソースレコード
•  4.  NAME  SERVERS
     ネームサーバー
•  5.  RESOLVERS
     リゾルバー
•  6.  A  SCENARIO
     シナリオ
•  7.  REFERENCES  and  BIBLIOGRAPHY
     出典および参考⽂文献
27




RFC  1034の概要
•  DNSの構成要素の役割や機能についての説明
 ▫  ドメイン名空間とリソースレコード
 ▫  ネームサーバー
 ▫  リゾルバー
28


1.  STATUS  OF  THIS  MEMO
1.  本⽂文書の位置づけ
•  概要
 ▫  このRFCはDNSについての紹介を⾏行行う。
   –  タイトルの通り「概念念と機能」について説明
 ▫  詳細はRFC  1035にて⾏行行う。
29


2.  INTRODUCTION
2.  はじめに
•  2.1.  The  history  of  domain  names
               ドメイン名の歴史
•  2.2.  DNS  design  goals
               DNSの設計⽬目標
•  2.3.  Assumptions  about  usage
               利利⽤用についての想定
•  2.4.  Elements  of  the  DNS
               DNSの要素
30


2.  INTRODUCTION
2.  はじめに
•  概要
 ▫  DNSを導⼊入するに⾄至った経緯やDNSがどういうも
    のかを紹介している。
31



3.  DOMAIN  NAME  SPACE  and  RESOURCE  RECORDS
3.  ドメイン名空間とリソースレコード
•  3.1.  Name  space  specifications  and  
   terminology
               名前空間の仕様と⽤用語
•  3.2.  Administrative  guidelines  on  use
               利利⽤用上の管理理ガイドライン
•  3.3.  Technical  guidelines  on  use
               利利⽤用上の技術ガイドライン
•  3.4.  Example  name  space
               名前空間の例例
•  3.5.  Preferred  name  syntax
               名前の構⽂文
32



3.  DOMAIN  NAME  SPACE  and  RESOURCE  RECORDS
3.  ドメイン名空間とリソースレコード
•  3.6.  Resource  Records
               リソースレコード
•  3.7.  Queries
               問い合わせ
•  3.8.  Status  queries  (Experimental)
               状態問い合わせ(実験機能)
•  3.9.  Completion  queries  (Obsolete)
               補完問い合わせ(廃⽌止機能)
33




 3章の位置づけ
ネームサーバー    ゾーン転送   ネームサーバー                         ロード
(権威サーバー)           (権威サーバー)                                       マスター
                                                                  ファイル
                                                                          ゾーン内のリソース
      メッセージ                                                               レコードを記述


                      ドメイン名空間
      ネームサーバー
      (フルサービス
                                                               リソースレコード
      リゾルバー)
                                                         example.jp.    IN SOA ns.exampele.jp. ..

                                                         example.jp.    IN NS   ns.example.jp.
   メッセージ                com           jp
                                                         ns.example.jp. IN A    192.0.2.1

                                                     ドメイン名               タイプ
       リゾルバー       example        example     co




                             ns         www
34


3.1.  Name  space  specifications  and  terminology
3.1.  名前空間の仕様と⽤用語
•  ツリー構造とノード                                                      ルート

  ▫  ドメイン名空間はツリー構造                                                ノード


  ▫  各ノードとリーフはリソース
     の集まりに対応している
  ▫  内部ノードとリーフノードを                            com           jp

     区別しない。両⽅方とも「ノー
                                  ノード
     ド」と呼ぶ。                              example        example     co




                                                   ns         www

                                   リーフ
                                   ノード
35


3.1.  Name  space  specifications  and  terminology
3.1.  名前空間の仕様と⽤用語
•  ラベル                                                          ルート
                                                                ノード

  ▫  各ノードは「ラベル」を持つ。                    ラベル
                                       "com"
                                                                 ””


  ▫  ラベルの⻑⾧長さは0オクテットから
     63オクテットまで
  ▫  兄弟ノードは同じラベルを持たな                        com           jp

     い。
  ▫  兄弟でないノードは同じラベルを                   example        example     co

     持てる。
  ▫  ルートのためにnullラベル(⻑⾧長さ                         ns         www


     0)が予約されている。
36


3.1.  Name  space  specifications  and  terminology
3.1.  名前空間の仕様と⽤用語
•  ドメイン名
  ▫  ノードのドメイン名はそのノードか
     らルートノードまでのパス上のラベ
     ルのリスト
    –  例例)  "www",  "example",  "jp",  ""        com           jp




                                             example        example     co




                                                       ns         www
37


3.1.  Name  space  specifications  and  terminology
3.1.  名前空間の仕様と⽤用語
•  ドメイン名の内部表現
  ▫  ドメイン名はラベルをつなげたもの
  ▫  ラベルはオクテットの⻑⾧長さと⽂文字列列で表
     される。
    –  "www"の内部表現を16進数で表すと"3  
        77  77  77"となる。
  ▫  すべてのドメイン名はルートで終わり、
     ルートのラベルはnull⽂文字であるため、                                       com           jp

     内部表現はドメイン名の終わりに0バイ
     トの⻑⾧長さを使う。
    –  www.example.jp.の内部表現                                example        example     co

        3  77  77  77  8  65  78  61  6d  70  6c  65  2  
        6a  70  0                                                     ns         www
•  ドメイン名の⻑⾧長さ
  ▫  ドメイン名のオクテット数は255まで
38


3.1.  Name  space  specifications  and  terminology
3.1.  名前空間の仕様と⽤用語
•  ⼤大⽂文字⼩小⽂文字
  ▫  ドメイン名の⽐比較の際には⼤大⽂文字⼩小⽂文字を区別し
     ない。
  ▫  ドメイン名を受け取ったときには⼤大⽂文字⼩小⽂文字を
     維持すべき
•  RFC  4343  "Domain  Name  System  (DNS)  
   Case  Insensitivity  Clarification"
39


3.1.  Name  space  specifications  and  terminology
3.1.  名前空間の仕様と⽤用語
•  ドメイン名の⼊入⼒力力は表⽰示上の表現                                          ルート
                                                                ノード

  ▫  ラベルの⻑⾧長さを省省き、ラベル                                            ””


     を"."で分ける。
    –  例例)www.example.jp.
  ▫  ドメイン名はルート(空の)ラベ                        com           jp

     ルで終わるため、ドットで終わる
     形式になる。                            example        example     co

    –  例例)www.example.jp."空のラベ
        ル(⾮非表⽰示)"                                ns         www
40


3.1.  Name  space  specifications  and  terminology
3.1.  名前空間の仕様と⽤用語
•  絶対ドメイン名と相対ドメイン名                        www.example.jp.
                                           絶対ドメイン名




                                            com           jp




                                       example        example     co




                                                 ns         www




                                        www
                                      相対ドメイン名
41


3.1.  Name  space  specifications  and  terminology
3.1.  名前空間の仕様と⽤用語
•  相対ドメイン名とオリジンや検索索リ
   スト
  ▫  相対ドメイン名はオリジン(注:マス
     ターファイルのオリジン)や検索索リス
     ト(注:リゾルバーの検索索リスト)に
     対して相対。                                    com           jp


  ▫  オリジンや検索索リストのメンバーとし
     てルート"."が解釈される。⼊入⼒力力を省省略略             example        example     co

     するために最後の"."がよく省省かれる。
    –  例例)www.example.jp                           ns         www

    –  →FQDN(Fully  Qualified  Domain  
        Name、完全修飾ドメイン名)?
42


3.1.  Name  space  specifications  and  terminology
3.1.  名前空間の仕様と⽤用語
•  FQDN(Fully  Qualified  Domain  
   Name、完全修飾ドメイン名)
  ▫  トップレベルドメインまでを含んだド
     メイン名
    –  例例:  www.example.jp
  ▫  この⽂文法を⽰示した明確な定義はない?
  ▫  RFC  1594  FYI  on  Questions  and              com           jp

     Answers  -‐‑‒  Answers  to  Commonly  
     asked  "New  Internet  User"  
     Questions                                  example        example     co


    –  5.2    What  is  a  Fully  Qualified  
        Domain  Name?                                     ns         www

  ▫  RFC  1983  Internet  Users'  Glossary
    –  Fully  Qualified  Domain  Name  
        (FQDN)
43


3.2.  Administrative  guidelines  on  use
3.2.  利利⽤用上の管理理ガイドライン
•  概要
  ▫  DNSの技術仕様としては特定のツリー構造やラベ
     ルの選択規則を強要しないという⽅方針について記
     述されている。
44


3.3.  Technical  guidelines  on  use
3.3.  利利⽤用上の技術ガイドライン
•  概要
  ▫  DNSで扱うオブジェクトの要件について述べてい
     る。
   –  オブジェクト名とドメイン名のマッピング
   –  RRタイプとオブジェクトを記述するデータ形式
45


3.4.  Example  name  space
3.4.  名前空間の例例
•  当時の例例。現在とは異異なるので注意。
                                    |
                                    |
              +---------------------+------------------+
              |                     |                   |
            MIL                    EDU                 ARPA
              |                     |                   |
              |                     |                   |
       +-----+-----+                |     +------+-----+-----+
       |      |     |               |     |      |           |
      BRL NOSC DARPA                | IN-ADDR SRI-NIC       ACC
                                    |
       +--------+------------------+---------------+--------+
       |         |                  |                |       |
      UCI       MIT                 |              UDEL     YALE
                 |                 ISI
                 |                  |
            +---+---+               |
            |         |             |
           LCS ACHILLES +--+-----+-----+--------+
            |              | |      |     |        |
            XX             A C    VAXA VENERA Mockapetris
46


3.5.  Preferred  name  syntax
3.5.  好ましい名前の構⽂文
•  概要
 ▫  ラベルの構⽂文について
•  ラベルとホスト名
 ▫  ラベルはARPANETホスト名の規則に従う。
   –  RFC  952  DOD  INTERNET  HOST  TABLE  SPECIFICATION
   –  RFC  1123  Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  Application  
       and  Support  によりホスト名の仕様が変更更された
•  ホスト名
 ▫  英⽂文字で始まる  
    →  英⽂文字あるいは数字で始まる(RFC  1123)
 ▫  英⽂文字あるいは数字で終わる
 ▫  間の⽂文字は英⽂文字、数字、ハイフンが使える
•  ラベル
 ▫  ラベルは63⽂文字未満
47


3.6.  Resource  Records
3.6.  リソースレコード
•  概要
 ▫  リソースレコードについての説明を記述する。
48


3.6.  Resource  Records                 ドメイン名空間

3.6.  リソースレコード
•  リソースレコード
 ▫  ドメイン名はノードを識識別す                       com          jp


    る。
 ▫  各ノードはリソース情報の集                  example        example      co

    まりを持つ。空でもよい。
 ▫  特定の名前に関連づけられた                            ns         www

    リソース情報の集まりは別々
    のリソースレコード(RRs)              リソースレコード
    から構成される。              example.jp.    IN SOA ns.exampele.jp. ..

 ▫  集まりの中のRRsの順番は指        example.jp.    IN NS     ns.example.jp.
    定できないし、維持される必
    要も無い。
                          ns.example.jp. IN A      192.0.2.1

                          ドメイン名           タイプ
49


3.6.  Resource  Records
3.6.  リソースレコード
•  リソースレコードの⽤用語
 ▫  owner(オーナー)
   –  そのRRがあるドメイン名
 ▫  type(タイプ)
   –  このリソースレコードのリソースのタイプを識識別する符
       号化された16ビットの値。タイプは抽象的なリソースを
       参照する。
   –  A,  CNAME,  HINFO,  MX,  NS,  PTR,  SOA
 ▫  class
   –  プロトコルファミリーを識識別する符号化された16ビット
       の数
   –  IN(the  Internet  system),  CH(the  Chaos  system)
50


3.6.  Resource  Records
3.6.  リソースレコード
•  リソースレコードの⽤用語
 ▫  TTL
   –  RRの⽣生存期間。このフィールドは秒単位の32ビット整
       数。リゾルバーがキャッシュするときに使う。TTLはRR
       が破棄されるまでにキャッシュしてよい期間を⽰示す。
   –  RFC  2181  Clarifications  to  the  DNS  Specification
       "8.  Time  to  Live  (TTL)"
     –  符号無し整数
     –  最⼩小値:  0
     –  最⼤大値:  2147483647    (2^31  -‐‑‒  1)
     –  最上位ビットが1であるときにはTTLを0と扱うべき
 ▫  RDATA
   –  タイプとクラスに依存するデータ。
51


3.6.1.  Textual  expression  of  RRs
3.6.1.  RRsのテキスト表現
•  RRのテキスト表現の形式
  ▫  RRは1⾏行行で⽰示される。複数⾏行行になる場合には括弧を使
     う。
   example.com. 172800 IN NS a.iana-servers.net.
   example.com.   3600 IN SOA dns1.icann.org. (
                hostmaster.icann.org.
                2012080872 7200 3600 1209600 3600 )
  ▫  ⾏行行の先頭はRRのオーナー。
   example.com. 172800 IN NS a.iana-servers.net.
  ▫  空⽩白で始まる⾏行行は、オーナーが前のRRと同じと想定
     される。
   example.com. 172800 IN NS a.iana-servers.net.
                172800 IN NS b.iana-servers.net.
52


3.6.1.  Textual  expression  of  RRs
3.6.1.  RRsのテキスト表現
•  RRのテキスト表現の形式  –  TTL,タイプ,クラス
•  オーナーの次は、TTLとタイプとクラス。
  ▫  クラスとタイプはニーモニックを使う。
  ▫  TTLは整数を使う。
  ▫  タイプは必ず最後である。
  ▫  INクラスとTTLはわかりやすさのために例例からよ
     く省省略略される。
•  RRのテキスト表現の形式  –  RDATA
  ▫  リソースデータあるいはRRのRDATAセクション
     は典型的表現の知識識を使って与えられる。
53


3.6.2.  Aliases  and  canonical  names
3.6.2.  別名と正式名
•  概要
 ▫  CNAMEについての説明
•  CNAME
 ▫  CNAMEは別名に対するオーナー名を識識別する。
    RRのRDATAセクションの対応する正式名を⽰示す。
 ▫  CNAME  RRがノードに存在したら、他のデータは
    存在すべきではない。これは、正式名とその別名
    に違いがでないを保証する。
 ▫  この規則はキャッシュされたCNAMEは権威サー
    バーに他のRRタイプを確認することなしに使われ
    ることも保証する。
54


3.6.2.  Aliases  and  canonical  names
3.6.2.  別名と正式名
•  RFC  2181  Clarifications  to  the  DNS  
   Specification  
   "10.1.  CNAME  resource  records"
  ▫  CNAMEの意味を明確化
    –  CNAME  ("canonical  name")「正式名」は"alias  
        name"「別名」と関連づけるために使う
    –  CNAMEは「別名」を⽰示すのでなく、「別名」に対
        する「正式名」を⽰示す。
     –  別名  IN  CNAME  正式名
55


3.7.  Queries
3.7.  問い合わせ
•  概要
 ▫  問い合わせについて
•  問い合わせ
 ▫  DNS問い合わせと応答は標準メッセージフォーマット
    で運ばれる。
 ▫  メッセージフォーマットは常に存在するいくつかの固
    定フィールドと問い合わせパラメータとRRを運ぶ4つ
    のセクション
 ▫  ヘッダーにある最も重要なフィールドは異異なる問い合
    わせを分けるopcodeと呼ばれる4ビットのフィールド
    である。
56


3.7.  Queries
3.7.  問い合わせ
•  4つのセクション
 ▫  Question
   –  問い合わせ名と他の問い合わせパラメータ
 ▫  Answer
   –  回答のRR
 ▫  Authority
   –  他の権威サーバーを⽰示すRR。answerセクションの
       権威データのSOA  RRでもよい。
 ▫  Additional
   –  他のセクションのRRを使う際に役に⽴立立つかもしれな
       いRR
57


3.7.1.  Standard  queries
3.7.1.  標準の問い合わせ
 ▫  標準の問い合わせは
   –  ターゲットドメイン名(QNAME)、
   –  問い合わせタイプ(QTYPE)、
   –  問い合わせクラス(QCLASS)
   –  を⽰示し、⼀一致するRRを尋ねる。
58


3.7.2.  Inverse  queries  (Optional)
3.7.2.  逆問い合わせ  (付加機能)
•  RFC  3425  Obsoleting  IQUERYにより廃⽌止
59


4.  NAME  SERVERS
4.  ネームサーバー
•  4.1.  Introduction
               はじめに
•  4.2.  How  the  database  is  divided  into  zones
               データベースのゾーンの分割⽅方法
•  4.3.  Name  server  internals
               ネームサーバーの内部
60




 4章の位置づけ
ネームサーバー    ゾーン転送   ネームサーバー                         ロード
(権威サーバー)           (権威サーバー)                                       マスター
                                                                  ファイル
                                                                          ゾーン内のリソース
      メッセージ                                                               レコードを記述


                      ドメイン名空間
      ネームサーバー
      (フルサービス
                                                               リソースレコード
      リゾルバー)
                                                         example.jp.    IN SOA ns.exampele.jp. ..

                                                         example.jp.    IN NS   ns.example.jp.
   メッセージ                com           jp
                                                         ns.example.jp. IN A    192.0.2.1

                                                     ドメイン名               タイプ
       リゾルバー       example        example     co




                             ns         www
61


4.1.  Introduction
4.1.  はじめに
•  概要
 ▫  ネームサーバーとゾーンについて記述している。
•  ネームサーバーとゾーン
 ▫  ネームサーバーはドメインのデータベースのリポ
    ジトリーである。
 ▫  データベースはゾーンと呼ばれる部分に分割され、
    ネームサーバー間に分散されている。
 ▫  ネームサーバーの基本的なタスクはゾーン内の
    データへの問い合わせに回答することである。
62


4.2.  How  the  database  is  divided  into  zones
4.2.  データベースをゾーンに分割する⽅方法
•  概要
  ▫  データベースをゾーンに分割する⽅方法について説
     明する。
63


4.2.  How  the  database  is  divided  into  zones
4.2.  データベースをゾーンに分割する⽅方法
•  名前空間の分割は2つの隣隣接した
   ノードの間で⾏行行われる。
  ▫  左記の例例ではexampleとjpの間
•  接続された名前空間の各グループ
   は別々のゾーンとなる。
•  ゾーンは領領域内のすべての名前の
                                              com           jp



   権威となる。
•  RFC  2181  Clarifications  to  the  
                                         example        example     co



   DNS  Specification  "6.  Zone                    ns         www

   Cuts"に詳細に説明あり
64


4.2.1.  Technical  considerations
4.2.1.  技術的な考慮
•  ゾーンを記述するデータは4つの部分
   を持つ
 ▫  ゾーン内のすべてのノードの権威デー
    タ                                 com             jp

 ▫  ゾーンのトップノードを定義するデー
    タ                          example       example         co
 ▫  委任したサブゾーンを記述するデータ。
    すなわち、ゾーンの最下部の切切断。                sub         ns        www

 ▫  サブゾーンのネームサーバーにアクセ
    スをさせるデータ                    ns         www

    (グルー"glue"データと呼ばれる。)
65


4.2.2.  Administrative  considerations
4.2.2.  管理理上の考慮
•  組織が⾃自⾝身のドメインを管理理したいときの最初の⼀一
   歩は、正しい親ゾーンを識識別し、親ゾーンの所有者
   に管理理を委任してもらうように同意を得ることであ
   る。
•  新しいサブゾーンに適した名前が選ばれたら、新し
   い所有者は複数のネームサーバーを⽤用意することを
   ⽰示すべきである。
•  最後の導⼊入の段階では、委任が効果を持つのに必要
   なNS  RRsとグルーRRsを親ゾーンに追加してもら
   う。両⽅方のゾーンの管理理者はゾーンカットの両側で
   同じNSとグルーRRsを持ち続けるようにする。
66


4.3.  Name  server  internals
4.3.  ネームサーバーの内部
67


4.3.1.  Queries  and  responses
4.3.1.  問い合わせと応答
•  ネームサーバの主要な活動は標準問い合わせに
   回答することである。
•  問い合わせと応答はRFC  1035のメッセージ
   フォーマットで運ばれる。
•  問い合わせはQTYPE,  QCLASS,  QNAMEを含む。
68


4.3.1.  Queries  and  responses
4.3.1.  問い合わせと応答
•  ⾮非再帰検索索モード
 ▫  サーバーとして最も単純なモードは⾮非再帰である。
 ▫  ローカル情報のみを使って回答する。
 ▫  応答はエラー、回答、回答に最も近い他のサーバ
    への参照のいずれかを含む。
 ▫  すべてのネームサーバーは⾮非再帰問い合わせを実
    装しなければならない。
69


4.3.1.  Queries  and  responses
4.3.1.  問い合わせと応答
•  再帰検索索モード
 ▫  クライアントとして最も単純なモードは再帰検索索
    モードである。
 ▫  このモードでは、ネームサーバーはリゾルバーの
    役割として動作し、エラーあるいは回答を返す。
    しかし、参照は返さない。
 ▫  このサービスはネームサーバーでは付加機能であ
    る。ネームサーバーは再帰検索索モードを使うクラ
    イアントを制限してもよい。
70


4.3.2.  Algorithm
4.3.2.  アルゴリズム
•  概要
 ▫  ネームサーバーの問い合わせに対するアルゴリズ
    ムを説明している。
71


4.3.3.  Wildcards
4.3.3.  ワイルドカード
•  概要
 ▫  ラベル"*"で始まる所有者名を持つRRsは特別な扱
    いを⾏行行う。
 ▫  このようなRRをワイルドカードと呼ぶ。
72


4.3.4.  Negative  response  caching  (Optional)
4.3.4.  ⽐比例例応答のキャッシュ  (付加機能)
•  否定応答をキャッシュすることについての説明
•  誤りあり
  ▫  The  method  is  that  a  name  server  may  add  an  
     SOA  RR  to  the  additional  section  of  a  response  
     when  that  response  is  authoritative.
•  RFC  2181  Clarifications  to  the  DNS  
   Specification  
   "7.1.  Placement  of  SOA  RRs  in  authoritative  
   answers"により訂正
  ▫  リソースが存在しないときにレスポンスに含めるSOA
     レコードはadditionalセクションではなくauthorityセ
     クションに置く。
73


4.3.4.  Negative  response  caching  (Optional)
4.3.4.  ⽐比例例応答のキャッシュ  (付加機能)
•  RFC  2308  Negative  Caching  of  DNS  Queries  
  (DNS  NCACHE)で詳細な説明と再定義
  ▫  RFC  1034からの変更更点(8  -‐‑‒  Changes  from  RFC  
     1034)
    –  ネガティブキャッシュはoptionalであったが、RFC  
        2308ではキャッシュする場合は、ネガティブキャッシュ
        もしなければならないよう(must)になった。
    –  AuthorityセクションのSOAレコードはキャッシュしな
        ければならない(MUST)。
    –  キャッシュしたSOAレコードは応答に加えなければなら
        ない(MUST)。
74


4.3.5.  Zone  maintenance  and  transfers
4.3.5.  ゾーンの保守と転送
•  概要
  ▫  ゾーン転送についての説明
•  RFC  5936  DNS  Zone  Transfer  Protocol  
   (AXFR)でAXFRのすべてがアップデートされて
   いる。
75


5.  RESOLVERS
5.  リゾルバー
•  5.1.  Introduction
               はじめに
•  5.2.  Client-‐‑‒resolver  interface
               クライアント-‐‑‒リゾルバー  インターフェイ
   ス
•  5.3.  Resolver  internals
               リゾルバーの内部
76




 5章の位置づけ
ネームサーバー    ゾーン転送   ネームサーバー                         ロード
(権威サーバー)           (権威サーバー)                                       マスター
                                                                  ファイル
                                                                          ゾーン内のリソース
      メッセージ                                                               レコードを記述


                      ドメイン名空間
      ネームサーバー
      (フルサービス
                                                               リソースレコード
      リゾルバー)
                                                         example.jp.    IN SOA ns.exampele.jp. ..

                                                         example.jp.    IN NS   ns.example.jp.
   メッセージ                com           jp
                                                         ns.example.jp. IN A    192.0.2.1

                                                     ドメイン名               タイプ
       リゾルバー       example        example     co




                             ns         www
77


5.1.  Introduction
5.1.  はじめに
•  概要
 ▫  リゾルバーはユーザープログラムとドメインネー
    ムサーバーへのインターフェイスのプログラムで
    ある。
 ▫  リゾルバーはユーザープログラムからサブルー
    ティンコールあるいはシステムコールにより要求
    を受け付け、ローカルのホストのデータ形式と互
    換性のある形式で欲しい情報を返す。
78


5.2.  Client-‐‑‒resolver  interface
5.2.  クライアント-‐‑‒リゾルバーのインターフェイス
•  概要
 ▫  典型的な機能
   –  ホスト名からホストアドレスへの変換
   –  ホストアドレスからホスト名への変換
   –  ⼀一般的な検索索機能
79


5.3.  Resolver  internals
5.3.  リゾルバーの内部
•  概要
  ▫  リゾルバーの実装についての説明
  ▫  スタブリゾルバー
  ▫  リソース
  ▫  アルゴリズム
80


6.  A  SCENARIO
6.  シナリオ
•  省省略略
81


7.  REFERENCES  and  BIBLIOGRAPHY
7.  出典と参考⽂文献
•  省省略略
82




RFC  1035  ドメイン名  –  実装と仕様
1987年年11⽉月発⾏行行
著者:  ポール  モカペトリス(Paul  Mockapetris)
83




RFC  1035の⽬目次
•  1.  STATUS  OF  THIS  MEMO
     この⽂文書の位置づけ
•  2.  INTRODUCTION
     はじめに
•  3.  DOMAIN  NAME  SPACE  AND  RR  DEFINITIONS
     ドメイン名空間とリソースレコードの定義
•  4.  MESSAGES
     メッセージ
•  5.  MASTER  FILES
     マスターファイル
•  6.  NAME  SERVER  IMPLEMENTATION
     ネームサーバーの実装
•  7.  RESOLVER  IMPLEMENTATION
     リゾルバーの実装
•  8.  MAIL  SUPPORT
     メールのサポート
•  9.  REFERENCES  and  BIBLIOGRAPHY
     出典と参考⽂文献
84




RFC  1035の概要
•  DNSのプロトコルの定義
 ▫  ドメイン名空間
 ▫  リソースレコード
 ▫  メッセージ
 ▫  マスターファイル
 ▫  ネームサーバーの実装
 ▫  リゾルバーの実装
 ▫  メールエクスチェンジャ
85


1.  STATUS  OF  THIS  MEMO
1.  本⽂文書の位置づけ
•  概要
 ▫  この⽂文書はドメイン名システムとそのプロトコル
    についての詳細を記述するものである。
86


2.  INTRODUCTION
2.  はじめに
•  2.1.  Overview
               概説
•  2.2.  Common  configuration
               共通の構成
•  2.3.  Conventions
               取り決め
87


2.1.  Overview
2.1.  概説
88


2.2.  Common  configurations
2.2.  共通の構成
•  リゾルバーの最も単純で典型的な構成
               Local Host                        | Foreign
                                                 |
  +---------+               +----------+         | +--------+
  |         | user queries |           |queries | |          |
  | User    |-------------->|          |---------|->|Foreign |
  | Program |               | Resolver |         | | Name |
  |         |<--------------|          |<--------|--| Server |
  |         | user responses|          |responses| |         |
  +---------+               +----------+         | +--------+
                              |     A            |
              cache additions |     | references |
                              V     |            |
                            +----------+         |
                            | cache    |         |
                            +----------+         |
89


2.2.  Common  configurations
2.2.  共通の構成
•  ネームサーバーの単純な構成
              Local Host                        | Foreign
                                                |
      +---------+                               |
    /          /|                               |
  +---------+ |            +----------+         | +--------+
  |           | |          |          |responses| |         |
  |           | |          |   Name   |---------|->|Foreign |
  | Master |-------------->| Server |           | |Resolver|
  | files | |              |          |<--------|--|        |
  |           |/           |          | queries | +--------+
  +---------+              +----------+         |
90


2.2.  Common  configurations
2.2.  共通の構成
•  フルサービスリゾルバーのある構成
                Local Hosts                     | Foreign
                                                |
 +---------+                                    |
 |         | responses                          |
 | Stub    |<--------------------+              |
 | Resolver|                     |              |
 |         |----------------+    |              |
 +---------+ recursive       |   |              |
             queries         |   |              |
                             V   |              |
 +---------+ recursive     +----------+         | +--------+
 |         | queries       |          |queries | |          |
 | Stub    |-------------->| Recursive|---------|->|Foreign |
 | Resolver|               | Server   |         | | Name |
 |         |<--------------|          |<--------|--| Server |
 +---------+ responses     |          |responses| |         |
                           +----------+         | +--------+
                           | Central |          |
                           |   cache |          |
                           +----------+         |
91


2.2.  Common  configurations
2.2.  共通の構成
•  ゾーン転送を使う構成
               Local Host                        | Foreign
                                                 |
      +---------+                                |
    /          /|                                |
  +---------+ |            +----------+          | +--------+
  |           | |          |           |responses| |         |
  |           | |          |   Name    |---------|->|Foreign |
  | Master |-------------->| Server |            | |Resolver|
  | files | |              |           |<--------|--|        |
  |           |/           |           | queries | +--------+
  +---------+              +----------+          |
                             A      |maintenance | +--------+
                             |      +------------|->|        |
                             |       queries     | |Foreign |
                             |                   | | Name |
                             +------------------|--| Server |
                          maintenance responses | +--------+
92


2.3.  Conventions
2.3.  取り決め
93


2.3.1.  Preferred  name  syntax
2.3.1.  名前の構⽂文
•  概要
 ▫  ドメイン名の構⽂文
 ▫  ラベルの構⽂文
•  ドメイン名の構⽂文
 ▫  <domain>  ::=  <subdomain>  |  "  "
 ▫  <subdomain>  ::=  <label>  |  <subdomain>  "."  <label>
 ▫  <label>  ::=  <letter>  [  [  <ldh-‐‑‒str>  ]  <let-‐‑‒dig>  ]
 ▫  <ldh-‐‑‒str>  ::=  <let-‐‑‒dig-‐‑‒hyp>  |  <let-‐‑‒dig-‐‑‒hyp>  <ldh-‐‑‒str>
 ▫  <let-‐‑‒dig-‐‑‒hyp>  ::=  <let-‐‑‒dig>  |  "-‐‑‒"
 ▫  <let-‐‑‒dig>  ::=  <letter>  |  <digit>
 ▫  <letter>  ::=  any  one  of  the  52  alphabetic  characters  A  
    through  Z  in
 ▫  upper  case  and  a  through  z  in  lower  case
 ▫  <digit>  ::=  any  one  of  the  ten  digits  0  through  9
94


2.3.1.  Preferred  name  syntax
2.3.1.  名前の構⽂文
•  ラベル
 ▫  ラベルはホスト名の規則に従う。
   –  英⽂文字で始まる  →  英⽂文字あるいは数字で始まる(RFC  
       1123)
   –  英⽂文字あるいは数字で終わる
   –  間の⽂文字は英⽂文字、数字、ハイフンが使える
 ▫  当時のホスト名の仕様
   –  RFC  952  DOD  INTERNET  HOST  TABLE  
       SPECIFICATION
 ▫  RFC  1123  Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  
    Application  and  Support  によりホスト名の仕様が変
    更更された
 ▫  ラベルは63⽂文字未満
95


2.3.2.  Data  Transmission  Order
2.3.2.  データ転送の順番
•  概要
 ▫  データのオクテットレベルでの順番を説明してい
    る。
96


2.3.3.  Character  Case
2.3.3.  ⼤大⽂文字⼩小⽂文字
•  概要
 ▫  ⼤大⽂文字⼩小⽂文字の取り扱いについて
•  ⼤大⽂文字⼩小⽂文字の区別
 ▫  ラベルやドメイン名などの⽐比較の際には⼤大⽂文字⼩小
    ⽂文字を区別しない。
•  ⼤大⽂文字⼩小⽂文字の維持
 ▫  可能な限り⼤大⽂文字⼩小⽂文字を維持する。
•  RFC  4343  "Domain  Name  System  (DNS)  
   Case  Insensitivity  Clarification"
97


2.3.4.  Size  limits
2.3.4.  サイズの制限
•  概要
 ▫  サイズの制限
•  サイズの制限
 ▫  ラベル
   –  63オクテット以下
 ▫  名前
   –  255オクテット以下
 ▫  TTL
   –  符号付き32ビット整数の正の数
 ▫  UDPメッセージ
   –  512オクテット以下
98


3.  DOMAIN  NAME  SPACE  AND  RR  DEFINITIONS
3.  ドメイン名空間とRRの定義
•  3.1.  Name  space  definitions
               名前空間の定義
•  3.2.  RR  definitions
               RRの定義
•  3.3.  Standard  RRs
               標準のRRs
•  3.4.  ARPA  Internet  specific  RRs
               Internet特有のRRs
•  3.5.  IN-‐‑‒ADDR.ARPA  domain
               IN-‐‑‒ADDR.ARPAドメイン
•  3.6.  Defining  new  types,  classes,  and  special  
   namespaces
               新しいタイプ、クラス、特別な名前空間の定義⽅方法
99




 3章の位置づけ
ネームサーバー    ゾーン転送   ネームサーバー                         ロード
(権威サーバー)           (権威サーバー)                                       マスター
                                                                  ファイル
                                                                          ゾーン内のリソース
      メッセージ                                                               レコードを記述


                      ドメイン名空間
      ネームサーバー
      (フルサービス
                                                               リソースレコード
      リゾルバー)
                                                         example.jp.    IN SOA ns.exampele.jp. ..

                                                         example.jp.    IN NS   ns.example.jp.
   メッセージ                com           jp
                                                         ns.example.jp. IN A    192.0.2.1

                                                     ドメイン名               タイプ
       リゾルバー       example        example     co




                             ns         www
100


3.1.  Name  space  definitions
3.1.  名前空間の定義
•  概要
 ▫  ドメイン名
 ▫  ラベル
•  ドメイン名とラベルの定義
 ▫  メッセージ内のドメイン名は⼀一続きのラベルで説明される。
 ▫  各ラベルは⼀一つのオクテットの⻑⾧長さとオクテットの数で表
    現される。
 ▫  各ドメイン名はルートのnullラベルで終わる。ドメイン名
    は0の⻑⾧長さのバイトで終わる。
 ▫  各⻑⾧長さの上位2ビットは0になり、⻑⾧長さのオクテットの残り
    の6ビットはラベルを63オクテット以下に制限する。
 ▫  ドメイン名の⻑⾧長さは255オクテット以下。
101


3.2.  RR  definitions
3.2.  RRの定義
102


3.2.1.  Format
3.2.1.  フォーマット
                                    1 1 1 1 1 1
      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                                               |
    /                                               /
    /                      NAME                     /
    |                                               |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                      TYPE                     |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                     CLASS                     |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                      TTL                      |
    |                                               |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                   RDLENGTH                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
    /                     RDATA                     /
    /                                               /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
103


3.2.1.  Format
3.2.1.  フォーマット
•  NAME
 ▫  所有者名。このリソースレコードに関するノード
    の名前
•  TYPE
 ▫  RR  TYPEコードの⼀一つを含む2オクテット
•  CLASS
 ▫  RR  CLASSコードの⼀一つを含む2オクテット
104


3.2.1.  Format
3.2.1.  フォーマット
•  TTL
  ▫  符号付き32ビット整数。リソースレコードが
     キャッシュされてもよい時間間隔。
•  RDLENGTH
  ▫  RDATAフィールドのオクテット⻑⾧長を⽰示す符号無し
     16ビット整数。
•  RDATA
  ▫  リソースを⽰示す可変⻑⾧長の⽂文字。
105


3.2.1.  Format
3.2.1.  フォーマット
•  間違い
 ▫  "SOA  records  are  always  distributed  with  a  
    zero  TTL  to  prohibit  caching."
•  RFC  2181  Clarifications  to  the  DNS  
   Specification  "7.2.  TTLs  on  SOA  RRs"
 ▫  どこにも⾔言及されていないし、そのような実装は
    ⾏行行われていない。実装はTTLが0であることを想
    定すべきではないし、0のTTLを持つSOAレコー
    ドを送信することを要求してもいけない。
106


3.2.2.  TYPE  values
3.2.2.  TYPEの値
TYPE    value   meaning
A       1       a  host  address
NS      2       a  host  address
CNAME   5       the  canonical  name  for  an  alias
SOA     6       marks  the  start  of  a  zone  of  authority
WKS     11      a  well  known  service  description
PTR     12      a  domain  name  pointer
MX      15      mail  exchange
TXT     16      text  strings
107


3.2.3.  QTYPE  values
3.2.3.  QTYPEの値
    •  QTYPEは問い合わせのquestionパートで出てくる。
    •  QTYPEはTYPEのスーパーセット。
    •  QTYPEの"MAILB"と"MAILA"は使われていない。




QTYPE   value   meaning
AXFR    252     A  request  for  a  transfer  of  an  entire  zone
*       255     A  request  for  all  records
108


3.2.4.  CLASS  values
3.2.4.  CLASSの値
CLASS       value   meaning
mnemonics
IN          1       the  Internet
CS          2       the  CSNET  class  (Obsolete)
CH          3       the  CHAOS  class
HS          4       Hesiod
109


3.2.5.  QCLASS  values
3.2.5.  QCLASSの値
    •  QCLASSは問い合わせのquestionセクションで出てくる。
    •  QCLASSはCLASSのスーパーセット




QCLASS      value   meaning
mnemonics
*           255     any  class
110


3.3.  Standard  RRs
3.3.  標準のRRs
111




3.3.1.  CNAME  RDATA  format
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    /                     CNAME                     /
    /                                               /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

CNAME           A <domain-name> which specifies the canonical or primary
                name for the owner. The owner name is an alias.

CNAME RRs cause no additional section processing, but name servers may
choose to restart the query at the canonical name in certain cases. See
the description of name server logic in [RFC-1034] for details.
112




3.3.9.  MX  RDATA  format
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                  PREFERENCE                   |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    /                   EXCHANGE                    /
    /                                               /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

PREFERENCE      A 16 bit integer which specifies the preference given to
                this RR among others at the same owner. Lower values
                are preferred.

EXCHANGE        A <domain-name> which specifies a host willing to act as
                a mail exchange for the owner name.

MX records cause type A additional section processing for the host
specified by EXCHANGE. The use of MX RRs is explained in detail in
[RFC-974].
113




3.3.11.  NS  RDATA  format
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    /                   NSDNAME                     /
    /                                               /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

NSDNAME         A <domain-name> which specifies a host which should be
                authoritative for the specified class and domain.

NS records cause both the usual additional section processing to locate
a type A record, and, when used in a referral, a special search of the
zone in which they reside for glue information.
114




3.3.12.  PTR  RDATA  format
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    /                   PTRDNAME                    /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

PTRDNAME        A <domain-name> which points to some location in the
                domain name space.

PTR records cause no additional section processing. These RRs are used
in special domains to point to some other location in the domain space.
These records are simple data, and don't imply any special processing
similar to that performed by CNAME, which identifies aliases. See the
description of the IN-ADDR.ARPA domain for an example.
115




3.3.13.  SOA  RDATA  format
 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 /                     MNAME                     /
 /                                               /
 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 /                     RNAME                     /
 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 |                    SERIAL                     |
 |                                               |
 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 |                    REFRESH                    |
 |                                               |
 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 |                     RETRY                     |
 |                                               |
 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 |                    EXPIRE                     |
 |                                               |
 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
 |                    MINIMUM                    |
 |                                               |
 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
116




3.3.13.  SOA  RDATA  format
•  MNAME
 ▫  このゾーンのデータのオリジナルあるいはプライ
    マリであるネームサーバーのドメイン名。
 ▫  RFC  2181  Clarifications  to  the  DNS  
    Specification  "7.3.  The  SOA.MNAME  field"
   –  SOAレコードのMNAMEフィールドはゾーンのマス
       ターサーバの名前を設定する。
   –  ゾーン⾃自体の名前を書くべきではない。
117




3.3.13.  SOA  RDATA  format
•  RNAME
 ▫  このゾーンの責任者のメールアドレス。
 ▫  訳注)メールアドレスの"@"を"."に置き換える。
   –  例例)"foo@example.com"は"foo.example.com"に。
•  SERIAL
 ▫  ゾーンのオリジナルコピーの符号無し32ビット
    バージョン番号。ゾーン転送はこの値を維持する。
    この値は周回し、sequence  space  arithmeticを
    使って⽐比較する。
 ▫  RFC  1982  Serial  Number  Arithmeticで⽐比較
   について詳細な説明がある。
118




3.3.13.  SOA  RDATA  format
•  REFRESH
 ▫  ゾーンをリフレッシュするまでの32ビット時間間
    隔。
•  RETRY
 ▫  失敗したリフレッシュを再試⾏行行するまでの32ビッ
    ト時間間隔。
•  EXPIRE
 ▫  ゾーンが権威をなくすまでの時間の上限を⽰示す32
    ビットの時間の値。
119




3.3.13.  SOA  RDATA  format
•  MINIMUM
 ▫  このゾーンのRRを送信するときに指定されるTTL
    の最⼩小値。符号無し32ビット。
 ▫  RFC  2308  Negative  Caching  of  DNS  
  Queries  (DNS  NCACHE)により否定応答の
  キャッシュのTTLとして再定義された。
120




3.3.14.  TXT  RDATA  format
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    /                   TXT-DATA                    /
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

TXT-DATA        One or more <character-string>s.

TXT RRs are used to hold descriptive text.   The semantics of the text
depends on the domain where it is found.
121


3.4.  Internet  specific  RRs
3.4.1.  A  RDATA  format
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
    |                    ADDRESS                    |
    +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

where:

ADDRESS         A 32 bit Internet address.

Hosts that have multiple Internet addresses will have multiple A
records.

A records cause no additional section processing. The RDATA section of
an A line in a master file is an Internet address expressed as four
decimal numbers separated by dots without any imbedded spaces (e.g.,
"10.2.0.52" or "192.0.5.6").
122




3.5.  IN-‐‑‒ADDR.ARPA  domain
•  概要
 ▫  IN-‐‑‒ADDR.ARPAドメインは逆引き(IPアドレスか
    らホスト名へのマッピング)のために⽤用いられる。
123


3.6.  Defining  new  types,  classes,  
and  special  namespaces
•  概要
  ▫  新しいタイプやクラスや特別な名前空間の定義の
     仕⽅方を説明。
124


4.  MESSAGES
4.  メッセージ
•  4.1.  Format
               フォーマット
•  4.2.  Transport
               転送
125




 4章の位置づけ
ネームサーバー    ゾーン転送   ネームサーバー                         ロード
(権威サーバー)           (権威サーバー)                                       マスター
                                                                  ファイル
                                                                          ゾーン内のリソース
      メッセージ                                                               レコードを記述


                      ドメイン名空間
      ネームサーバー
      (フルサービス
                                                               リソースレコード
      リゾルバー)
                                                         example.jp.    IN SOA ns.exampele.jp. ..

                                                         example.jp.    IN NS   ns.example.jp.
   メッセージ                com           jp
                                                         ns.example.jp. IN A    192.0.2.1

                                                     ドメイン名               タイプ
       リゾルバー       example        example     co




                             ns         www
126


4.1.  Format
4.1.  フォーマット
 +---------------------+
 |        Header       |
 +---------------------+
 |       Question      |   the question for the name server
 +---------------------+
 |        Answer       |   RRs answering the question
 +---------------------+
 |      Authority      |   RRs pointing toward an authority
 +---------------------+
 |      Additional     |   RRs holding additional information
 +---------------------+
127


4.1.1.  Header  section  format
4.1.1.  Headerセクションフォーマット
                                    1 1 1 1 1 1
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                      ID                       |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |QR|   Opcode |AA|TC|RD|RA|    Z    |   RCODE   |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                    QDCOUNT                    |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                    ANCOUNT                    |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                    NSCOUNT                    |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                    ARCOUNT                    |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
128


4.1.1.  Header  section  format
4.1.1.  Headerセクションフォーマット
•  ID
  ▫  16ビットの識識別⼦子。
•  QR
  ▫  Query(0)かResponse(1)かを⽰示す1ビット
•  OPCODE
  ▫  問い合わせの種類を⽰示す4ビット。
•  AA
  ▫  Authoritative  Answer(権威ある回答)であるかを⽰示
     す1ビット。
  ▫  対応したネームサーバーがquestionセクションのドメ
     イン名に対する権威を持っているかを⽰示す。
129


4.1.1.  Header  section  format
4.1.1.  Headerセクションフォーマット
•  TC
  ▫  TrunCation  –  メッセージが⼤大きくて切切り詰められた
     ことを⽰示す。
•  RD
  ▫  Recursion  Desired  –  ネームサーバーに再帰問い合わ
     せをすることを指⽰示する。
•  RA
  ▫  Recursion  Available  –  ネームサーバーが再帰問い合
     わせをサポートしているかを⽰示す。
•  Z
  ▫  将来のための予約。0にする。
130


4.1.1.  Header  section  format
4.1.1.  Headerセクションフォーマット
•  RCODE
 ▫  Response  code  –  応答コード
   –  0:  No  error  condition
   –  1:  Format  error
   –  2:  Server  failure
   –  3:  Name  Error
   –  4:  Not  Implemented
   –  5:  Refused
   –  6-‐‑‒15:  Reserved  for  future  use.
131


4.1.1.  Header  section  format
4.1.1.  Headerセクションフォーマット
•  QDCOUNT
 ▫  questionセクションのエントリーの数を⽰示す符号無し
    16ビット整数
•  ANCOUNT
 ▫  answerセクションのエントリーの数を⽰示す符号無し
    16ビット整数
•  NSCOUNT
 ▫  authorityレコードセクションのリソースレコードの
    数を⽰示す符号無し16ビット整数
•  ARCOUNT
 ▫  additionalレコードセクションのリソースレコードの
    数を⽰示す符号無し16ビット整数
132


4.1.1.  Header  section  format
4.1.1.  Headerセクションフォーマット
                                    1 1 1 1 1 1
     0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                      ID                       |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |QR|   Opcode |AA|TC|RD|RA|    Z    |   RCODE   |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                    QDCOUNT                    |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                    ANCOUNT                    |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                    NSCOUNT                    |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
   |                    ARCOUNT                    |
   +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
133


4.1.1.  Header  section  format
4.1.1.  Headerセクションフォーマット
$ dig @127.0.0.1 emaillab.jp. NS
略略
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33981
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;emaillab.jp.                    IN      NS

;; ANSWER SECTION:
emaillab.jp.             86400   IN      NS       ns.emaillab.jp.
emaillab.jp.             86400   IN      NS       ns2.emaillab.jp.

;; ADDITIONAL SECTION:
ns.emaillab.jp.          86400   IN      A        49.212.17.32
ns2.emaillab.jp.         86400   IN      A        49.212.24.158
134


4.1.1.  Header  section  format
4.1.1.  Headerセクションフォーマット
$ dig +norec @ns.emaillab.jp. emaillab.jp. NS
略略
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24693
;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;emaillab.jp.                    IN      NS

;; ANSWER SECTION:
emaillab.jp.             86400   IN      NS       ns.emaillab.jp.
emaillab.jp.             86400   IN      NS       ns2.emaillab.jp.

;; ADDITIONAL SECTION:
ns.emaillab.jp.          86400   IN      A        49.212.17.32
ns2.emaillab.jp.         86400   IN      A        49.212.24.158
135


4.1.1.  Header  section  format
4.1.1.  Headerセクションフォーマット
$ dig +norec @a.dns.jp. emaillab.jp. NS

;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35302
;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;emaillab.jp.                    IN       NS

;; AUTHORITY SECTION:
emaillab.jp.             86400   IN       NS      ns.emaillab.jp.
emaillab.jp.             86400   IN       NS      ns2.emaillab.jp.

;; ADDITIONAL SECTION:
ns.emaillab.jp.          86400   IN       A       49.212.17.32
ns2.emaillab.jp.         86400   IN       A       49.212.24.158
136


4.1.2.  Question  section  format
4.1.2.  Questionセクションフォーマット
                                  1 1 1 1 1 1
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                                               |
  /                     QNAME                     /
  /                                               /
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                     QTYPE                     |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  |                     QCLASS                    |
  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
137


4.1.3.  Resource  record  format
4.1.3.  リソースレコードフォーマット
                                       1 1 1 1 1 1
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
       |                                               |
       /                                               /
       /                      NAME                     /
       |                                               |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
       |                      TYPE                     |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
       |                     CLASS                     |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
       |                      TTL                      |
       |                                               |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
       |                   RDLENGTH                    |
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--|
       /                     RDATA                     /
       /                                               /
       +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
138


4.2.  Transport
4.2.  転送
•  概要
 ▫  DNSのメッセージがUDPあるいはTCPで転送され
    ることを説明している。
139




4.2.1.  UDP  usage
•  メッセージは512バイトに制限される。
•  512バイトより⼤大きいメッセージは切切り詰めら
   れ、ヘッダーにTCビットを⽴立立てる。
•  RFC  2181  Clarifications  to  the  DNS  
   Specification  "9    The  TC  (truncated)  header  
   bit"にTCビットがどういうときにセットされる
   かについての説明がある。
•  RFC  2671  Extension  Mechanisms  for  DNS  
   (EDNS0)  により、UDPで512バイトより⼤大きい
   メッセージを送ることが可能である。
140




4.2.2.  TCP  usage
•  RFC  5966  DNS  Transport  over  TCP  -‐‑‒  
   Implementation  RequirementsによりDNS  
   over  TCPの仕様が更更新されている。
141


5.  MASTER  FILES
5.  マスターファイル
•  5.1.  Format
•  5.2.  Use  of  master  files  to  define  zones
•  5.3.  Master  file  example
142




 5章の位置づけ
ネームサーバー    ゾーン転送   ネームサーバー                         ロード
(権威サーバー)           (権威サーバー)                                       マスター
                                                                  ファイル
                                                                          ゾーン内のリソース
      メッセージ                                                               レコードを記述


                      ドメイン名空間
      ネームサーバー
      (フルサービス
                                                               リソースレコード
      リゾルバー)
                                                         example.jp.    IN SOA ns.exampele.jp. ..

                                                         example.jp.    IN NS   ns.example.jp.
   メッセージ                com           jp
                                                         ns.example.jp. IN A    192.0.2.1

                                                     ドメイン名               タイプ
       リゾルバー       example        example     co




                             ns         www
143




5.1.  Format
•  エントリーは⾏行行毎に。
•  アイテムが⾏行行を跨がる場合には括弧()で囲む。
•  アイテム間のデリミターとしてスペースとタブ
   およびその組み合わせが使える。
•  ⾏行行の終わりはコメントで終わることができる。
•  コメントは";"で始まる。
•  @はオリジンを元に戻す。
144




5.1.  Format
•  エントリーの形式
 ▫  <blank>[<comment>]
 ▫  $ORIGIN  <domain-‐‑‒name>  [<comment>]
 ▫  $INCLUDE  <file-‐‑‒name>  [<domain-‐‑‒name>]  
    [<comment>]
 ▫  <domain-‐‑‒name><rr>  [<comment>]
 ▫  <blank><rr>  [<comment>]
•  <rr>の定義
 ▫  [<TTL>]  [<class>]  <type>  <RDATA>
 ▫  [<class>]  [<TTL>]  <type>  <RDATA>
145


6.  NAME  SERVER  IMPLEMENTATION
6.  ネームサーバーの実装
•  6.1.  Architecture
•  6.2.  Standard  query  processing
•  6.3.  Zone  refresh  and  reload  processing
•  6.4.  Inverse  queries  (Optional)
•  6.5.  Completion  queries  and  responses

•  本章はネームサーバーの開発者向けの内容であ
   り、チュートリアルには向かない内容なので、
   説明は省省略略する。
146


7.  RESOLVER  IMPLEMENTATION
7.  リゾルバーの実装
•  7.1.  Transforming  a  user  request  into  a  
   query
•  7.2.  Sending  the  queries
•  7.3.  Processing  responses
•  7.4.  Using  the  cache

•  本章はネームサーバーの開発者向けの内容であ
   り、チュートリアルには向かない内容なので、
   説明は省省略略する。
147


8.  MAIL  SUPPORT
8.  メールサポート
•  省省略略
148


9.  REFERENCES  and  BIBLIOGRAPHY
9.  出典と参考⽂文献
•  省省略略
149
150



RFC  1123
Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  Application  and  Support

•  タイトル
   ▫  Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  
      Application  and  Support
   ▫  インターネットホストの要求事項  –  
      アプリケーションとサポート
•  概要
   ▫  インターネットに接続するホストが満たすべき要
      求事項を定めている。
   ▫  もちろん、ホスト名やDNSのサポートについても
151



RFC  1123
Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  Application  and  Support
•  2.1    Host  Names  and  Numbers
   ホスト名と数
   ▫  ホスト名の⽂文法の改訂(RFC  952の改訂)
      –  ホスト名の最初の⽂文字は英⽂文字のみであったが、数字も使える
          ようになった。
      –  ホスト名の⻑⾧長さは24⽂文字までであったが、下記のようになっ
          た。
   ▫  ホスト名
      –  英⽂文字あるいは数字で始まる
      –  英⽂文字あるいは数字で終わる
      –  間の⽂文字は英⽂文字、数字、ハイフンが使える
   ▫  ホストソフトウェアは
      –  63⽂文字までのホスト名を扱わなければならない(MUST)
      –  255⽂文字までのホスト名を扱うべきである(SHOULD)
152



RFC  1982
Serial  Number  Arithmetic
•  タイトル
   ▫  Serial  Number  Arithmetic
   ▫  シリアル番号演算
•  概要
   ▫  RFC  1034とRFC  1035ではゾーン転送における
      SOAレコードのシリアル番号の⽐比較に"sequence  
      space  arithmetic"を使うと記述されている。
   ▫  しかし、"sequence  space  arithmetic"そのもの
      の定義がない。
   ▫  RFC  1982ではその定義を⾏行行う。
153



RFC  1982
Serial  Number  Arithmetic
•  おおざっぱにまとめると
   ▫  シリアル番号の扱い
     –  32ビットの符号無し整数
     –  範囲は[0  ..  4294967295](2^32  -‐‑‒  1)
     –  最⼤大値から0に周回する。つまり、4294967295+1
         は0
     –  増加の範囲は[0  ..  2147483647]    (2^31  -‐‑‒  1)
   ▫  シリアル番号の増分が増加の最⼤大値以下であれば
      「シリアル番号の増加(increment)」と判断する。
     –  例例)「4294967295  →  0」は増分が1なので、「増
         加」と判断できる。
154



RFC  1982
Serial  Number  Arithmetic
•  シリアル番号の保守
   ▫  RFC  2182  "Selection  and  Operation  of  
      Secondary  DNS  Servers"
     –  "7.  Serial  Number  Maintenance"
       –  間違って⼤大きすぎる番号を付けてしまった場合に、⼩小
           さい番号に付け直す⽅方法が書いてある。
155



RFC  2181
Clarifications  to  the  DNS  Specification
•  タイトル
   ▫  Clarifications  to  the  DNS  Specification
   ▫  DNSの仕様の明確化
•  概要
   ▫  この⽂文書はDNSの仕様の問題として確認されてい
      る分野について考察し、確認された⽋欠陥の改善を
      提案する。
156



RFC  2181
Clarifications  to  the  DNS  Specification
•  4.  Server  Reply  Source  Address  Selection
   ▫  マルチホームのサーバにおける応答の送信元アド
      レスの選択⽅方法
•  4.1.  UDP  Source  Address  Selection
     –  問い合わせの宛先アドレスを応答の送信元アドレス
         としてセットする。
•  4.2.  Port  Number  Selection
     –  問い合わせの送信元ポート番号を応答の宛先ポート
         番号として使う。
     –  応答は指⽰示されたポート番号から送信される。
       –  DNSのウェルノウンポート、53
157



RFC  2181
Clarifications  to  the  DNS  Specification
•  5.  Resource  Record  Sets
   ▫  同じラベル、クラス、タイプのリソースレコード
      の集まりを「リソースレコードセット」
      (RRset)と定義する。
   ▫  問い合わせに対して、関連するRRが複数あるとき
      には、RRsetのすべてのRRを返す。
   ▫  RRsetのすべてのRRは同じTTLを使う。
158



RFC  2181
Clarifications  to  the  DNS  Specification
 •  5.4.1.  Ranking  data
   ▫  データの信頼性の順位について論論じている。下に⾏行行くほど低い。
      –  Data  from  a  primary  zone  file,  other  than  glue  data,
      –  Data  from  a  zone  transfer,  other  than  glue,
      –  The  authoritative  data  included  in  the  answer  section  of  an  
          authoritative  reply.
      –  Data  from  the  authority  section  of  an  authoritative  answer,
      –  Glue  from  a  primary  zone,  or  glue  from  a  zone  transfer,
      –  Data  from  the  answer  section  of  a  non-‐‑‒authoritative  answer,  
          and  non-‐‑‒authoritative  data  from  the  answer  section  of  
          authoritative  answers,
      –  Additional  information  from  an  authoritative  answer,  
          Data  from  the  authority  section  of  a  non-‐‑‒authoritative  
          answer,  
          Additional  information  from  non-‐‑‒authoritative  answers.
159



RFC  2181
Clarifications  to  the  DNS  Specification
•  6.  Zone  Cuts
   ▫  zone
   ▫  zone  cut
   ▫  "child"  zone
   ▫  "parent"  zone
   ▫  zone's  "origin"
•  6.1.  Zone  authority
   ▫  ゾーンの権威について
160



RFC  2181
Clarifications  to  the  DNS  Specification
•  7.  SOA  RRs
   ▫  SOAレコードに関する記述を3つ修正
161



RFC  2181
Clarifications  to  the  DNS  Specification
•  7.1.  Placement  of  SOA  RRs  in  authoritative  
   answers
   ▫  RFC  1034  "4.3.4  Negative  response  caching  
      (Optional)"の内容が間違っている。
     –  The  method  is  that  a  name  server  may  add  an  
         SOA  RR  to  the  additional  section  of  a  response  
         when  that  response  is  authoritative.
   ▫  ネガティブキャッシュのときにもSOAレコードを
      authorityセクションにおいて回答する。
     –  SOA  records,  if  added,  are  to  be  placed  in  the  
         authority  section.
162



RFC  2181
Clarifications  to  the  DNS  Specification
•  7.2.  TTLs  on  SOA  RRs
   ▫  RFC  1035  "3.2.1.  Format"の内容が間違っている。
     –  SOA  records  are  always  distributed  with  a  zero  TTL  
         to  prohibit  caching.
•  7.2.  TTLs  on  SOA  RRs
   ▫  どこにも⾔言及されていないし、そのような実装は⾏行行わ
      れていない。実装はTTLが0であることを想定すべき
      ではないし、0のTTLを持つSOAレコードを送信する
      ことを要求してもいけない。
     –  This  is  mentioned  nowhere  else,  and  has  not  
         generally  been  implemented.  Implementations  
         should  not  assume  that  SOA  records  will  have  a  
         TTL  of  zero,  nor  are  they  required  to  send  SOA  
         records  with  a  TTL  of  zero.
163



RFC  2181
Clarifications  to  the  DNS  Specification
•  7.3.  The  SOA.MNAME  field
   ▫  仕様では明確になっているが広く無視されている。
   ▫  SOAレコードのMNAMEフィールドはゾーンのマ
      スターサーバの名前を設定する。
   ▫  ゾーン⾃自体の名前を書くべきではない。
164



RFC  2181
Clarifications  to  the  DNS  Specification
•  8.  Time  to  Live  (TTL)
   ▫  RFC  1035におけるTTLの定義
     –  2.3.4.  Size  limits
       –  positive  values  of  a  signed  32  bit  number.
     –  3.2.1.  Format
       –  a  32  bit  signed  integer  that  specifies  the  time  interval
     –  4.1.3.  Resource  record  format
       –  a  32  bit  unsigned  integer  that  specifies  the  time  
           interval
   ▫  明確にする
     –  符号無し整数
     –  最⼩小値:  0
     –  最⼤大値:  2147483647    (2^31  -‐‑‒  1)
     –  最上位ビットが1であるときにはTTLを0と扱うべき
165



RFC  2181
Clarifications  to  the  DNS  Specification
•  9.  The  TC  (truncated)  header  bit
   ▫  TCビットについての説明
166



RFC  2181
Clarifications  to  the  DNS  Specification
•  10.  Naming  issues
167



RFC  2181
Clarifications  to  the  DNS  Specification
•  10.1.  CNAME  resource  records
   ▫  CNAMEの意味を明確化
     –  CNAME  ("canonical  name")「正式名」は"alias  
         name"「別名」と関連づけるために使う
     –  CNAMEは「別名」を⽰示すのでなく、「別名」に対
         する「正式名」を⽰示す。
       –  別名  IN  CNAME  正式名
168



RFC  2181
Clarifications  to  the  DNS  Specification
•  10.2.  PTR  records
   ▫  PTRレコードは⼀一つだけ持つというのは誤り。
   ▫  PTRレコードの値には(CNAMEで定義される)
      別名であってならない。
169



RFC  2181
Clarifications  to  the  DNS  Specification
•  10.3.  MX  and  NS  records
   ▫  MXレコードとNSレコードの値は(CNAMEで定
      義される)別名であってはならない。
170



RFC  2181
Clarifications  to  the  DNS  Specification
•  11.  Name  syntax
   ▫  DNSはホスト名からデータへ、IPアドレスからホ
      スト名へとマッピングするためだけのものではな
      い。
   ▫  DNSは汎⽤用的な階層型データベースであり、様々
      なデータを様々な⽬目的で格納できる。
171



RFC  2308
Negative  Caching  of  DNS  Queries  (DNS  NCACHE)
•  タイトル
   ▫  Negative  Caching  of  DNS  Queries  (DNS  
      NCACHE)
   ▫  DNS問い合わせのネガティブキャッシュ
•  概要
   ▫  ネガティブキャッシュについての詳細な説明と再
      定義を⾏行行っている。
172



RFC  2308
Negative  Caching  of  DNS  Queries  (DNS  NCACHE)
•  RFC  1034からの変更更点(8  -‐‑‒  Changes  from  RFC  
   1034)
   ▫  ネガティブキャッシュはoptionalであったが、RFC  
      2308ではキャッシュする場合は、ネガティブキャッ
      シュもしなければならないよう(must)になった。
   ▫  AuthorityセクションのSOAレコードはキャッシュし
      なければならない(MUST)。
   ▫  キャッシュしたSOAレコードは応答に加えなければな
      らない(MUST)。
•  SOA  Minimumフィールド
   ▫  否定応答のTTLとして使われる。
   ▫  元々別の意味で定義されていたが再定義された。
173



RFC  4343
Domain  Name  System  (DNS)  Case  Insensitivity  Clarification

•  タイトル
   ▫  Domain  Name  System  (DNS)  Case  
      Insensitivity  Clarification
   ▫  DNSの⼤大⽂文字⼩小⽂文字を区別しないことの明確化
•  概要
   ▫  ドメイン名の⼤大⽂文字⼩小⽂文字を区別しない。
     –  ASCII⽂文字が対象
   ▫  この⽂文書はその意味を説明し、仕様を明確にする。
174



RFC  4343
Domain  Name  System  (DNS)  Case  Insensitivity  Clarification

•  問い合わせにおいては⼤大⽂文字⼩小⽂文字を区別すべきで
   ない。
   ▫  次の2つのドメイン名の問い合わせは同じ結果となる。
     –  foo.example.net.
     –  Foo.ExamplE.net.
   ▫  実装
     –  ⽐比較前に0x61-‐‑‒0x7Aの範囲の⽂文字(⼩小⽂文字)であれば
         0x20を引く。
•  ⼤大⽂文字⼩小⽂文字の維持
   ▫  可能な限りオリジナルの⼤大⽂文字⼩小⽂文字を維持すべきで
      ある。
175



RFC  4343
Domain  Name  System  (DNS)  Case  Insensitivity  Clarification

•  ラベルのエスケープ⽅方法
   ▫  DNSのプロトコル上は8ビット⽂文字も使える。
   ▫  ⽂文字コードが0x00-‐‑‒0x20,0x2E(.),0x7F-‐‑‒0xFFである
      ⽂文字をバックスラッシュでエスケープする記法
     –  バックスラッシュ()  +  ⽂文字コードの3桁の⼗十進数
     –  バックスラッシュ()  +  ⽂文字(ASCII印字可能⽂文字の場
         合)
   ▫  例例
     –  バックスラッシュ""  →  "092"  or  ""
     –  ピリオド"."  →  "046"  or  "."
     –  スペース" "  →  "032"
176



RFC  4343
Domain  Name  System  (DNS)  Case  Insensitivity  Clarification

•  Use  of  Bit  0x20  in  DNS  Labels  to  Improve  
   Transaction  Identity
   ▫  というInternet  Draftがかつて提案されていた。
   ▫  通称"dns  0x20"
     –  ⼤大⽂文字のコードに対して0x20ビットを⽴立立てると⼩小
         ⽂文字のコードになる。
        –  0x41  (A)  +  0x20  =  0x61  (a)
   ▫  キャッシュポイズニングへの耐性を向上させるこ
      とを⽬目的とする。
   ▫  問い合わせとその回答において⼤大⽂文字⼩小⽂文字を維
      持する仕様を利利⽤用する。
177



RFC  4343
Domain  Name  System  (DNS)  Case  Insensitivity  Clarification

•  Use  of  Bit  0x20  in  DNS  Labels  to  Improve  
   Transaction  Identity
   ▫  リゾルバーは問い合わせに⼤大⽂文字⼩小⽂文字をランダ
      ムに設定する。
     –  FoO.ExAmplE.nEt.
   ▫  権威サーバーは問い合わせの名前を⼤大⽂文字⼩小⽂文字
      を維持したままコピーして回答する。
     –  FoO.ExAmplE.nEt.
   ▫  リゾルバーは問い合わせと回答の⽂文字列列を⽐比較し
      て同じであれば信⽤用する。異異なれば偽の回答と判
      断する。
178



RFC  5452
Measures  for  Making  DNS  More  Resilient  against  Forged  Answers

•  タイトル
   ▫  Measures  for  Making  DNS  More  Resilient  
      against  Forged  Answers
   ▫  DNSを偽の回答に対する耐性の強化⽅方法
•  概要
   ▫  DNSを不不正な応答を受け付けることに対して耐性
      を強化する⽅方法について説明する。
179



RFC  5452
Measures  for  Making  DNS  More  Resilient  against  Forged  Answers
•  9.1.    Query  Matching  Rules
   ▫  RFC  2181  "5.4.1.  Ranking  data"のDNSの信頼性規則を
      適応する前に
   ▫  リゾルバーの実装は次のような問い合わせの属性のすべて
      に、応答が⼀一致していなければならない(MUST)。
     –    問い合わせの宛先アドレスに対する送信元アドレス
     –    問い合わせの送信元アドレスに対する宛先アドレス
     –    問い合わせの送信元ポートに対する宛先ポート
     –    問い合わせID
     –    問い合わせの名前
     –    問い合わせのクラスとタイプ
   ▫  ⼀一致しない応答は不不正と判断しなければならない
      (MUST)。
180



RFC  5452
Measures  for  Making  DNS  More  Resilient  against  Forged  Answers

•  9.2.    Extending  the  Q-‐‑‒ID  Space  by  Using  
   Ports  and  Addresses
   ▫  リゾルバーの実装(MUST):
     –  外部への問い合わせには、実際に利利⽤用できて可能な
         限り⼤大きい範囲のポート番号から予測不不能な送信元
         ポート番号を使う
     –  同時に複数の問い合わせが起こる場合には、複数の
         異異なる送信元ポート番号を使う
     –  外部への問い合わせには、全範囲(0-‐‑‒65535)を利利
         ⽤用して、予測不不能な問い合わせIDを使う。
181



RFC  5452
Measures  for  Making  DNS  More  Resilient  against  Forged  Answers

•  9.3.    Spoof  Detection  and  Countermeasure
   ▫  リゾルバは詐称を検出したら、UDP問い合わせを
      破棄し、TCPで再発⾏行行させてもよい(MAY)
     –  TCPは詐称に対する耐性が強い
182



RFC  5936
DNS  Zone  Transfer  Protocol  (AXFR)
•  タイトル
   ▫  DNS  Zone  Transfer  Protocol  (AXFR)
   ▫  DNSのゾーン転送プロトコル  (AXFR)
•  概要
   ▫  RFC  1034とRFC  1035におけるAXFRの定義が不不
      ⼗十分であり、仮定して実装しなければならないと
      ころがあり、相互運⽤用性を阻害している。
   ▫  この⽂文書はAXFRの新しい定義である。
   ▫  「新しい」は相互運⽤用できるAXFR機能の正確な
      定義を記録する的な意味合いで。
183



RFC  5966
DNS  Transport  over  TCP  -‐‑‒  Implementation  Requirements
•  タイトル
   ▫  DNS  Transport  over  TCP  -‐‑‒  Implementation  
      Requirements
   ▫  DNSのTCP転送  –  実装と要求事項
•  概要
   ▫  この⽂文書はDNSのTCPでの転送の要求事項を更更新
      する。
   ▫  TCPサポートがSHOULDであったのをMUSTにす
      る。
184



RFC  5966
DNS  Transport  over  TCP  -‐‑‒  Implementation  Requirements
•  4.    Transport  Protocol  Selection
   ▫  すべての通常の⽬目的のDNSの実装はUDPとTCPの両⽅方
      をサポートしなければならない(MUST)
     –  権威サーバーの実装は、応答のサイズを⼀一つのUDPパ
         ケットに収めるサイズに制限しないようにTCPをサポー
         トしなければならない(MUST)。
     –  再帰検索索サーバー(あるいはフォワーダー)の実装は、
         TCPを利利⽤用できるサーバーからの⼤大きなサイズの応答を
         TCPが利利⽤用できるクライアントに達するのを妨げないよ
         うに、TCPをサポートしなければならない(MUST)。
     –  スタブリゾルバーの実装は、⾃自⾝身のクライアントと上流流
         のサーバーとの相互運⽤用性を制限しないように応答サイ
         ズを、TCPをサポートしなければならない(MUST)。
185



    DNSの基本仕様およびアップデート(再掲)

                                           RFC  1982  /  PS                       RFC  4343  /  PS
                                           Serial  Number  Arithmetic             Domain  Name  System  
                                                                                  (DNS)  Case  Insensitivity  
                                                                                  Clarification
RFC  1034  /  STD  13
DOMAIN  NAMES  -‐‑‒  
CONCEPTS  AND                                  RFC  2181  /  PS
FACILITIES                                     Clarifications  to  the  DNS            RFC  5452  /  PS
                                               Specification                           Measures  for  Making  DNS  
                                                                                      More  Resilient  against  
RFC  1035  /  STD  13
DOMAIN  NAMES  -‐‑‒                                                                   Forged  Answers
IMPLEMENTATION  AND  
SPECIFICATION                                      RFC  2308  /  PS
                                                   Negative  Caching  of  DNS              RFC  5936  /  PS
                                                   Queries  (DNS  NCACHE)                  DNS  Zone  Transfer  
     RFC  1123  /  STD  3                                                                  Protocol  (AXFR)
     Requirements  for  Internet  
     Hosts  -‐‑‒-‐‑‒  Application  and  
     Support
                                                         RFC  3425  /  PS
                                                         Obsoleting  IQUERY                      RFC  5966  /  PS
               アップデート                                                                            DNS  Transport  over  TCP  -‐‑‒  
                                                                                                 Implementation  
               参照                                                                                Requirements
186
187



RFC  2671
Extension  Mechanisms  for  DNS  (EDNS0)
•  タイトル
  ▫  Extension  Mechanisms  for  DNS  (EDNS0)
  ▫  DNSの拡張機構(EDNS0)
•  概要
  ▫  DNSのプロトコルを機能する。
  ▫  これにより、UDPで512オクテットを超えるメッ
     セージを扱うことができる。
188



RFC  1995
Incremental  Zone  Transfer  in  DNS
•  タイトル
  ▫  Incremental  Zone  Transfer  in  DNS
  ▫  DNSの差分ゾーン転送
•  概要
  ▫  DNSのプロトコルにIXFR(差分ゾーン転送)機
     能を提供するための拡張を提案する。
189



RFC  1996
A  Mechanism  for  Prompt  Notification  of  Zone  Changes  (DNS  NOTIFY)

•  タイトル
   ▫  A  Mechanism  for  Prompt  Notification  of  Zone  
      Changes  (DNS  NOTIFY)
   ▫  ゾーン変更更の通知機能(DNS  NOTIFY)
•  概要
   ▫  マスターサーバーがスレーブサーバーにゾーンの
      変更更を通知するNOTIFY  opcodeを提案する。
190



RFC  2845
Secret  Key  Transaction  Authentication  for  DNS  (TSIG)
•  タイトル
   ▫  Secret  Key  Transaction  Authentication  for  
      DNS  (TSIG)
   ▫  DNSの秘密鍵によるトランザクション認証
      (TSIG)
•  概要
   ▫  共有秘密鍵を⼀一⽅方向ハッシュを使ったトランザク
      ションレベルの認証を提案する。
191

RFC  3645
Generic  Security  Service  Algorithm  for  Secret  Key  Transaction  
Authentication  for  DNS  (GSS-‐‑‒TSIG)

•  タイトル
   ▫  Generic  Security  Service  Algorithm  for  Secret  
      Key  Transaction  Authentication  for  DNS  
      (GSS-‐‑‒TSIG)
   ▫  DNSの秘密鍵トランザクション認証のための
      GSS-‐‑‒API(GSS-‐‑‒TSIG)
•  概要
   ▫  TSIGでGSS-‐‑‒APIを使う拡張を提案する。
192



RFC  4635
HMAC  SHA  TSIG  Algorithm  Identifiers
•  タイトル
   ▫  HMAC  SHA  TSIG  Algorithm  Identifiers
   ▫  HMAC  SHA  TSIGアルゴリズム識識別⼦子
•  概要
   ▫  TSIGでHMAC  SHAを扱う⽅方法を提案する。
193



RFC  2136
Dynamic  Updates  in  the  Domain  Name  System  (DNS  UPDATE)

•  タイトル
   ▫  Dynamic  Updates  in  the  Domain  Name  
      System  (DNS  UPDATE)
   ▫  DNSにおける動的更更新(DNS  UPDATE)
•  概要
   ▫  UPDATE  opcodeを使って、指定したゾーンのRR
      やRRsetの追加や削除を⾏行行う⽅方法を提案する。
194



RFC  3007
Secure  Domain  Name  System  (DNS)  Dynamic  Update
•  タイトル
  ▫  Secure  Domain  Name  System  (DNS)  
     Dynamic  Update
  ▫  セキュアなDNS動的更更新
•  概要
  ▫  DNS動的更更新に認証機能を追加する。
195

More Related Content

PDF
#dnstudy 01 ドメイン名の歴史
PPTX
VPP事始め
PDF
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
PDF
IPv6 を始めてみた
PDF
SRv6 study
PDF
How to run P4 BMv2
PDF
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
PDF
WiFi の電波の話
#dnstudy 01 ドメイン名の歴史
VPP事始め
OpenStack検証環境構築・トラブルシューティング入門 - OpenStack最新情報セミナー 2014年8月
IPv6 を始めてみた
SRv6 study
How to run P4 BMv2
IPv6 最新動向 〜世界共通語で最適化が進むインターネット〜
WiFi の電波の話

What's hot (20)

PDF
お小遣いでKubernetesクラスタ
PDF
社内ドキュメント検索システム構築のノウハウ
PDF
マイクロサービスバックエンドAPIのためのRESTとgRPC
PDF
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
PDF
HTTPを理解する
 
PDF
about Tcpreplay
PDF
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
PDF
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
PDF
リクルート流Elasticsearchの使い方
PDF
動画配信プラットフォーム on AWS
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
PDF
バックボーン運用から見るインターネットの実情
 
PDF
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
PDF
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
PDF
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
PDF
Learned from KIND
PDF
○ヶ月でできた!?さくらのクラウド開発秘話(【ヒカ☆ラボ】さくらインターネットとMilkcocoa!年末イベント:ここだけのウラ話)
PPTX
Dockerと外部ルータを連携させる仕組みを作ってみた
PDF
Rookの基礎・バージョンアップ
PDF
KubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjp
お小遣いでKubernetesクラスタ
社内ドキュメント検索システム構築のノウハウ
マイクロサービスバックエンドAPIのためのRESTとgRPC
Grafana Lokiの Docker Logging Driver入門 (Docker Meetup Tokyo #34, 2020/01/16)
HTTPを理解する
 
about Tcpreplay
Stargz Snapshotter: イメージのpullを省略しcontainerdでコンテナを高速に起動する
コンテナを突き破れ!! ~コンテナセキュリティ入門基礎の基礎~(Kubernetes Novice Tokyo #11 発表資料)
リクルート流Elasticsearchの使い方
動画配信プラットフォーム on AWS
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
バックボーン運用から見るインターネットの実情
 
200,000 Req/sec をさばく広告入札システムを支えるパフォーマンスチューニング術 #jjug_ccc #ccc_g6
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
Kubernetes Service Account As Multi-Cloud Identity / Cloud Native Security Co...
Learned from KIND
○ヶ月でできた!?さくらのクラウド開発秘話(【ヒカ☆ラボ】さくらインターネットとMilkcocoa!年末イベント:ここだけのウラ話)
Dockerと外部ルータを連携させる仕組みを作ってみた
Rookの基礎・バージョンアップ
KubeCon 2021 NA Recap - Scheduler拡張事例最前線 / Kubernetes Meetup Tokyo #47 / #k8sjp
Ad

Viewers also liked (8)

PDF
20111029 part2-dnsトリビア(出張版)-事後資料
PDF
DNS悩み多きシステムの基礎から最新状況まで
PPTX
DNS RFCの歩き方(短縮版)
PDF
20111029 part1-dnsをあえてdisってみる-事後資料
PDF
10分でわかる幽霊問題-事後資料
PDF
DNS RFC系統図
PDF
DNS再入門
PPTX
セキュリティの都市伝説を暴く
20111029 part2-dnsトリビア(出張版)-事後資料
DNS悩み多きシステムの基礎から最新状況まで
DNS RFCの歩き方(短縮版)
20111029 part1-dnsをあえてdisってみる-事後資料
10分でわかる幽霊問題-事後資料
DNS RFC系統図
DNS再入門
セキュリティの都市伝説を暴く
Ad

Similar to DNSのRFCの歩き方 (20)

PDF
RFCについての復習
PDF
Dns primer
PDF
IETFにおける標準化の進め方
PPTX
GLT Vol.39 オススメの技術(文)書
PDF
Bind 9.8 feature overview
PDF
セマンテックウェブとRDFDB
PDF
WebDAV, ATOM, and REST
PDF
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
PDF
#dnstudy 01 Unboundの紹介
KEY
activerecord-turntable
PDF
20131209_buildinsidermeetup
KEY
ざっくり分かるDNSの基礎
PDF
XLWrapについてのご紹介
PPTX
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
PPTX
インターネッツの繋がるしくみ(DNS編) #sa_study
PPTX
ServiceStackの紹介
PDF
Solrベースの全文検索サーバ Fess
KEY
20090528 open seminar @ okayama
PDF
【さくらのクラウド】DNSアプライアンス導入ガイド
PDF
DNS について
RFCについての復習
Dns primer
IETFにおける標準化の進め方
GLT Vol.39 オススメの技術(文)書
Bind 9.8 feature overview
セマンテックウェブとRDFDB
WebDAV, ATOM, and REST
20140212 develove テスト自動化のアプローチ拡張トレンド 〜Excel項目定義手動テストから自動テストへ〜
#dnstudy 01 Unboundの紹介
activerecord-turntable
20131209_buildinsidermeetup
ざっくり分かるDNSの基礎
XLWrapについてのご紹介
2014 03-15 業務アプリinsider ソフトウェア方面の先進テクノロジー
インターネッツの繋がるしくみ(DNS編) #sa_study
ServiceStackの紹介
Solrベースの全文検索サーバ Fess
20090528 open seminar @ okayama
【さくらのクラウド】DNSアプライアンス導入ガイド
DNS について

More from Takashi Takizawa (15)

PDF
サバフェス! 2015 Spring LT資料
PPTX
BIND of Summer (2017-04-13)
PDF
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
PDF
nginx入門
PDF
nginxの紹介
PDF
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
PPTX
initとプロセス再起動
PDF
#mailerstudy 02 メールと暗号 - SSL/TLS -
PDF
#mailerstudy 02 暗号入門 (2012-02-22更新)
PDF
#logstudy 01 rsyslog入門
PDF
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
PDF
Unboundの最適化(OSC2011 Tokyo/Spring)
PDF
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
PDF
#mailerstudy 01 LT POP/IMAP入門
PPTX
hbstudy20100821 SpamAssassin
サバフェス! 2015 Spring LT資料
BIND of Summer (2017-04-13)
Unbound/NSD最新情報(OSC 2014 Tokyo/Spring)
nginx入門
nginxの紹介
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
initとプロセス再起動
#mailerstudy 02 メールと暗号 - SSL/TLS -
#mailerstudy 02 暗号入門 (2012-02-22更新)
#logstudy 01 rsyslog入門
UnboundとDNSSEC(OSC2011 Tokyo/Spring)
Unboundの最適化(OSC2011 Tokyo/Spring)
qpstudy08 lsyncdによる共有ファイルシステムっぽい何かの検証
#mailerstudy 01 LT POP/IMAP入門
hbstudy20100821 SpamAssassin

DNSのRFCの歩き方

  • 1. 1 2012-‐‑‒08-‐‑‒31      DNS  Summer  Days  2012 DNSのRFCの歩き⽅方 株式会社ハートビーツ  滝澤隆史 ⽇日本Unboundユーザー会
  • 2. 2 私は誰 •  ⽒氏名:  滝澤  隆史  @ttkzw •  所属:  株式会社ハートビーツ ▫  サーバの構築・運⽤用や 24時間365⽇日の有⼈人監視をやっている会社 ▫  いわゆるMSP(マネージド  サービス  プロバイダ) •  DNSとの関わり ▫  システム管理理者として1997年年から2006年年までネームサー バの運⽤用 –  BIND4,  BIND8,  djbdns,  BIND9 ▫  現在は個⼈人サーバでネームサーバを運⽤用 –  NSD,  Unbound ▫  ⽇日本Unboundユーザー会 –  Unbound/NSDの⽂文書の翻訳 ▫  DNSは趣味です(キリッ
  • 4. 4 このセッションの概要 •  DNSの概念念や仕様を定めている ▫  RFC  1034  DOMAIN  NAMES  –   CONCEPTS  AND  FACILITIES (ドメイン名  –  概念念と機能)と ▫  RFC  1035  DOMAIN  NAMES  –   IMPLEMENTATION  AND  SPECIFICATION (ドメイン名  –  実装と仕様) •  と、後に発⾏行行されたRFCで変更更・修正された内 容および拡張された仕様の⼀一部について説明す る。
  • 5. 5 注意点 •  この資料料ではRFCの⽂文書を⼀一部翻訳しています が、おおざっぱな訳なので、後で⾃自⾝身で原⽂文を 当たってください。 •  話者は英語が得意ではありません。発⾳音は酷い のでご容赦ください。 •  今回は拡張された機能についてはほとんど説明 しません。特にDNSSECについては全く説明し ません。DNSSECについてのRFCについては DNSSECジャパンのサイトを訪問してください。
  • 6. 6
  • 7. 7 RFCとは •  IETF(Internet  Engineering  Task  Force)に より発⾏行行されている技術⽂文書 ▫  インターネット標準や情報提供の⽂文書などがある •  RFCは"Request  for  Comments"の略略 •  RFCとは何かを理理解するためにはRFCを読むの がよい。
  • 8. 8 RFCの形式 著者 RFCの番号 この番号の RFCを廃⽌止 Network Working Group R. Arends Request for Comments: 4033 Telematica Instituut Obsoletes: 2535, 3008, 3090, 3445, 3655, 3658, R. Austein 3755, 3757, 3845 ISC Updates: 1034, 1035, 2136, 2181, 2308, 3225, M. Larson 3007, 3597, 3226 VeriSign この番号の Category: Standards Track D. Massey RFCを更更新 Colorado State University 分類 S. Rose NIST March 2005 タイトル RFCの発⾏行行⽉月 本⽂文 DNS Security Introduction and Requirements Status of This Memo This document specifies an Internet standards track protocol for the
  • 9. 9 RFCの番号 •  発⾏行行されたRFCの番号は変わらない。 ▫  代わりに、致命的な間違いや編集ミスについて は"ERATTA"が別途出ることがあるので注意。 ▫  新しいRFCにより"obsoletes"されることがある。 •  RFCに慣れてくるとRFCのタイトルではなく RFCの番号で会話をするようになってくる。 ▫  「RFC  1034ではこう書かれているけどRFC   2181ではこうだ」
  • 10. 10 RFCの分類 •  RFC  1796  "Not  All  RFCs  are  Standards" すべてのRFCが標準であるわけではない ▫  Infomational  (情報提供) ▫  Experimental  (実験的) ▫  Standard  Track  (標準化過程) –  Proposed  Standard  (標準への提唱) –  Draft  Standard  (標準への草稿) –  Internet  Standard  (インターネット標準) ▫  Historic  (歴史的)
  • 11. 11 分類:  標準化過程 •  Standard  Track  (標準化過程) ▫  Proposed  Standard  (標準への提唱) ▫  Draft  Standard  (標準への草稿) –  RFC  6410(2011年年10⽉月発⾏行行)により"Internet   Standard"に統合 ▫  Internet  Standard  (インターネット標準) –  「STD  xxx」のように別途番号付けされる
  • 12. 12 分類:  ⾮非標準化過程、BCP •  Non-‐‑‒Standards  Track  (⾮非標準化過程) ▫  Experimental  (実験的) –  研究や開発の成果 ▫  Infomational  (情報提供) –  インターネットコミュニティーのための情報 ▫  Historic  (歴史的) –  新しい仕様に置き換えられ、役割が終わったもの •  Best  Current  Practice  (現時点での最良良な⽅方法) ▫  運⽤用についての⽂文書 ▫  「BCP  xxx」のように別途番号付けされる
  • 13. 13 要求レベルを⽰示すために⽤用いられるキーワード •  RFCの⽂文書中に次のような説明がある The  key  words  "MUST",  "MUST  NOT",  "REQUIRED",  "SHALL",   "SHALL  NOT",  "SHOULD",  "SHOULD  NOT",  "RECOMMENDED",     "MAY",  and  "OPTIONAL"  in  this  document  are  to  be   interpreted  as  described  in  RFC  2119. •  RFC  2119  /  BCP  14  "Key  words  for  use  in   RFCs  to  Indicate  Requirement  Levels" ▫  RFCにおいて要求レベルを⽰示すために⽤用いられる キーワード
  • 14. 14 要求レベルを⽰示すために⽤用いられるキーワード ⼤大⽂文字の時にキーワードとして意味を持つ キーワード 邦訳 意味 MUST しなければならない 要求事項 REQUIRED 要求される SHALL するもとのする MUST  NOT してはならない 禁⽌止事項 SHALL  NOT しないものとする SHOULD すべきである 推奨事項 (無視する場合は慎重な判断が必要) RECOMMENDED 推奨される SHOULD  NOT すべきでない ⾮非推奨事項 (容認する場合は慎重な判断が必要) NOT  RECOMMEDED 推奨されない MAY してもよい 任意事項 OPTIONAL 任意である
  • 15. 15 RFCに関するサイト •  RFC  Editor ▫  http://www.rfc-‐‑‒editor.org/ •  IETF  TOOLS ▫  http://tools.ietf.org/html/ ▫  RFCを追いかけるには⾮非常に便便利利 •  JPRS  DNS関連技術情報 ▫  http://jprs.jp/tech/ ▫  DNS関連のRFCの邦訳がある •  DNSSECジャパン ▫  http://dnssec.jp/ ▫  DNSSECに関連するRFCの邦訳や技術情報がある
  • 16. 16
  • 17. 17 DNSの基本仕様のこの2つのRFC •  RFC  1034 ▫  DOMAIN  NAMES  –   CONCEPTS  AND  FACILITIES ▫  ドメイン名  –  概念念と機能 •  RFC  1035   ▫  DOMAIN  NAMES  –   IMPLEMENTATION  AND  SPECIFICATION ▫  ドメイン名  –  実装と仕様
  • 18. 18 RFC  1034 DOMAIN  NAMES  -‐‑‒  CONCEPTS  AND  FACILITIES •  タイトル ▫  DOMAIN  NAMES  –   CONCEPTS  AND  FACILITIES ▫  ドメイン名  –  概念念と機能 •  概要 ▫  DNSの構成要素の役割や機能についての説明 –  ドメイン名空間とリソースレコード –  ネームサーバー –  リゾルバー
  • 19. 19 RFC  1035 DOMAIN  NAMES  -‐‑‒  IMPLEMENTATION  AND  SPECIFICATION •  タイトル ▫  DOMAIN  NAMES  –   IMPLEMENTATION  AND  SPECIFICATION ▫  ドメイン名  –  実装と仕様 •  概要 ▫  DNSのプロトコルの仕様 –  ドメイン名空間 –  リソースレコード –  メッセージ –  マスターファイル –  ネームサーバーの実装 –  リゾルバーの実装 –  メールエクスチェンジャ
  • 20. 20 DNSの構成要素 ネームサーバー ゾーン転送 ネームサーバー ロード (権威サーバー) (権威サーバー) マスター ファイル ゾーン内のリソース メッセージ レコードを記述 ドメイン名空間 ネームサーバー (フルサービス リソースレコード リゾルバー) example.jp. IN SOA ns.exampele.jp. .. example.jp. IN NS ns.example.jp. メッセージ com jp ns.example.jp. IN A 192.0.2.1 ドメイン名 タイプ リゾルバー example example co ns www
  • 21. 21 RFC  1034とRFC  1035への道 •  DNSの仕組みをある程度度理理解していないとRFC   1034とRFC  1035の内容を理理解できない。 ▫  いきなりRFCを読んでもたぶん理理解できない。 •  時代背景が異異なることを意識識すること。 ▫  DNSが検討開始されたのはARPANETからThe   Internetへの過渡期 ▫  現在は、IN以外のクラス(CS,  CH,  HS)は使わ ない。 –  ただし、CHは本来の⽤用途とは異異なり、ネームサー バーの情報の取得に使われている。 –  $  dig  TXT  CH  version.bind.
  • 22. 22 RFC  1034とRFC  1035への道 •  曖昧さや間違いがある。 ▫  RFC  1034とRFC  1035が基本仕様であるが、 ▫  後から公開されたRFCにより、 ▫  曖昧な点や間違いが訂正されたり、仕様が変更更された りしているため、 ▫  RFC  1034とRFC  1035の内容がすべて正しいとは思 わないように。 •  RFC  1034と1035をアップデートしているRFCも合 わせて読みたい。 ▫  RFC  2181  "Clarifications  to  the  DNS   Specification"はDNSの仕様の明確化をしているRFC であるので、読むべき。
  • 23. 23 RFC  1034と1035のアップデート (拡張機能のRFCは除く) •  RFC  1123 ▫  Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  Application  and  Support •  RFC  1982 ▫  Serial  Number  Arithmetic •  RFC  2181 ▫  Clarifications  to  the  DNS  Specification •  RFC  2308 ▫  Negative  Caching  of  DNS  Queries  (DNS  NCACHE) •  RFC  3425 ▫  Obsoleting  IQUERY •  RFC  4343 ▫  Domain  Name  System  (DNS)  Case  Insensitivity  Clarification •  RFC  5452 ▫  Measures  for  Making  DNS  More  Resilient  against  Forged  Answers •  RFC  5936 ▫  DNS  Zone  Transfer  Protocol  (AXFR) •  RFC  5966 ▫  DNS  Transport  over  TCP  -‐‑‒  Implementation  Requirements
  • 24. 24 DNSの基本仕様およびアップデート RFC  1982  /  PS RFC  4343  /  PS Serial  Number  Arithmetic Domain  Name  System   (DNS)  Case  Insensitivity   Clarification RFC  1034  /  STD  13 DOMAIN  NAMES  -‐‑‒   CONCEPTS  AND   RFC  2181  /  PS FACILITIES Clarifications  to  the  DNS   RFC  5452  /  PS Specification Measures  for  Making  DNS   More  Resilient  against   RFC  1035  /  STD  13 DOMAIN  NAMES  -‐‑‒   Forged  Answers IMPLEMENTATION  AND   SPECIFICATION RFC  2308  /  PS Negative  Caching  of  DNS   RFC  5936  /  PS Queries  (DNS  NCACHE) DNS  Zone  Transfer   RFC  1123  /  STD  3 Protocol  (AXFR) Requirements  for  Internet   Hosts  -‐‑‒-‐‑‒  Application  and   Support RFC  3425  /  PS Obsoleting  IQUERY RFC  5966  /  PS アップデート DNS  Transport  over  TCP  -‐‑‒   Implementation   参照 Requirements
  • 25. 25 RFC  1034  ドメイン名  –  概念念と機能 1987年年11⽉月公開 著者:  ポール  モカペトリス(Paul  Mockapetris)
  • 26. 26 RFC  1034の⽬目次 •  1.  STATUS  OF  THIS  MEMO   本⽂文書の位置づけ •  2.  INTRODUCTION   はじめに •  3.  DOMAIN  NAME  SPACE  and  RESOURCE  RECORDS   ドメイン名空間とリソースレコード •  4.  NAME  SERVERS   ネームサーバー •  5.  RESOLVERS   リゾルバー •  6.  A  SCENARIO   シナリオ •  7.  REFERENCES  and  BIBLIOGRAPHY   出典および参考⽂文献
  • 27. 27 RFC  1034の概要 •  DNSの構成要素の役割や機能についての説明 ▫  ドメイン名空間とリソースレコード ▫  ネームサーバー ▫  リゾルバー
  • 28. 28 1.  STATUS  OF  THIS  MEMO 1.  本⽂文書の位置づけ •  概要 ▫  このRFCはDNSについての紹介を⾏行行う。 –  タイトルの通り「概念念と機能」について説明 ▫  詳細はRFC  1035にて⾏行行う。
  • 29. 29 2.  INTRODUCTION 2.  はじめに •  2.1.  The  history  of  domain  names            ドメイン名の歴史 •  2.2.  DNS  design  goals            DNSの設計⽬目標 •  2.3.  Assumptions  about  usage            利利⽤用についての想定 •  2.4.  Elements  of  the  DNS            DNSの要素
  • 30. 30 2.  INTRODUCTION 2.  はじめに •  概要 ▫  DNSを導⼊入するに⾄至った経緯やDNSがどういうも のかを紹介している。
  • 31. 31 3.  DOMAIN  NAME  SPACE  and  RESOURCE  RECORDS 3.  ドメイン名空間とリソースレコード •  3.1.  Name  space  specifications  and   terminology            名前空間の仕様と⽤用語 •  3.2.  Administrative  guidelines  on  use            利利⽤用上の管理理ガイドライン •  3.3.  Technical  guidelines  on  use            利利⽤用上の技術ガイドライン •  3.4.  Example  name  space            名前空間の例例 •  3.5.  Preferred  name  syntax            名前の構⽂文
  • 32. 32 3.  DOMAIN  NAME  SPACE  and  RESOURCE  RECORDS 3.  ドメイン名空間とリソースレコード •  3.6.  Resource  Records            リソースレコード •  3.7.  Queries            問い合わせ •  3.8.  Status  queries  (Experimental)            状態問い合わせ(実験機能) •  3.9.  Completion  queries  (Obsolete)            補完問い合わせ(廃⽌止機能)
  • 33. 33 3章の位置づけ ネームサーバー ゾーン転送 ネームサーバー ロード (権威サーバー) (権威サーバー) マスター ファイル ゾーン内のリソース メッセージ レコードを記述 ドメイン名空間 ネームサーバー (フルサービス リソースレコード リゾルバー) example.jp. IN SOA ns.exampele.jp. .. example.jp. IN NS ns.example.jp. メッセージ com jp ns.example.jp. IN A 192.0.2.1 ドメイン名 タイプ リゾルバー example example co ns www
  • 34. 34 3.1.  Name  space  specifications  and  terminology 3.1.  名前空間の仕様と⽤用語 •  ツリー構造とノード ルート ▫  ドメイン名空間はツリー構造 ノード ▫  各ノードとリーフはリソース の集まりに対応している ▫  内部ノードとリーフノードを com jp 区別しない。両⽅方とも「ノー ノード ド」と呼ぶ。 example example co ns www リーフ ノード
  • 35. 35 3.1.  Name  space  specifications  and  terminology 3.1.  名前空間の仕様と⽤用語 •  ラベル ルート ノード ▫  各ノードは「ラベル」を持つ。 ラベル "com" ”” ▫  ラベルの⻑⾧長さは0オクテットから 63オクテットまで ▫  兄弟ノードは同じラベルを持たな com jp い。 ▫  兄弟でないノードは同じラベルを example example co 持てる。 ▫  ルートのためにnullラベル(⻑⾧長さ ns www 0)が予約されている。
  • 36. 36 3.1.  Name  space  specifications  and  terminology 3.1.  名前空間の仕様と⽤用語 •  ドメイン名 ▫  ノードのドメイン名はそのノードか らルートノードまでのパス上のラベ ルのリスト –  例例)  "www",  "example",  "jp",  "" com jp example example co ns www
  • 37. 37 3.1.  Name  space  specifications  and  terminology 3.1.  名前空間の仕様と⽤用語 •  ドメイン名の内部表現 ▫  ドメイン名はラベルをつなげたもの ▫  ラベルはオクテットの⻑⾧長さと⽂文字列列で表 される。 –  "www"の内部表現を16進数で表すと"3   77  77  77"となる。 ▫  すべてのドメイン名はルートで終わり、 ルートのラベルはnull⽂文字であるため、 com jp 内部表現はドメイン名の終わりに0バイ トの⻑⾧長さを使う。 –  www.example.jp.の内部表現 example example co 3  77  77  77  8  65  78  61  6d  70  6c  65  2   6a  70  0 ns www •  ドメイン名の⻑⾧長さ ▫  ドメイン名のオクテット数は255まで
  • 38. 38 3.1.  Name  space  specifications  and  terminology 3.1.  名前空間の仕様と⽤用語 •  ⼤大⽂文字⼩小⽂文字 ▫  ドメイン名の⽐比較の際には⼤大⽂文字⼩小⽂文字を区別し ない。 ▫  ドメイン名を受け取ったときには⼤大⽂文字⼩小⽂文字を 維持すべき •  RFC  4343  "Domain  Name  System  (DNS)   Case  Insensitivity  Clarification"
  • 39. 39 3.1.  Name  space  specifications  and  terminology 3.1.  名前空間の仕様と⽤用語 •  ドメイン名の⼊入⼒力力は表⽰示上の表現 ルート ノード ▫  ラベルの⻑⾧長さを省省き、ラベル ”” を"."で分ける。 –  例例)www.example.jp. ▫  ドメイン名はルート(空の)ラベ com jp ルで終わるため、ドットで終わる 形式になる。 example example co –  例例)www.example.jp."空のラベ ル(⾮非表⽰示)" ns www
  • 40. 40 3.1.  Name  space  specifications  and  terminology 3.1.  名前空間の仕様と⽤用語 •  絶対ドメイン名と相対ドメイン名 www.example.jp. 絶対ドメイン名 com jp example example co ns www www 相対ドメイン名
  • 41. 41 3.1.  Name  space  specifications  and  terminology 3.1.  名前空間の仕様と⽤用語 •  相対ドメイン名とオリジンや検索索リ スト ▫  相対ドメイン名はオリジン(注:マス ターファイルのオリジン)や検索索リス ト(注:リゾルバーの検索索リスト)に 対して相対。 com jp ▫  オリジンや検索索リストのメンバーとし てルート"."が解釈される。⼊入⼒力力を省省略略 example example co するために最後の"."がよく省省かれる。 –  例例)www.example.jp   ns www –  →FQDN(Fully  Qualified  Domain   Name、完全修飾ドメイン名)?
  • 42. 42 3.1.  Name  space  specifications  and  terminology 3.1.  名前空間の仕様と⽤用語 •  FQDN(Fully  Qualified  Domain   Name、完全修飾ドメイン名) ▫  トップレベルドメインまでを含んだド メイン名 –  例例:  www.example.jp ▫  この⽂文法を⽰示した明確な定義はない? ▫  RFC  1594  FYI  on  Questions  and   com jp Answers  -‐‑‒  Answers  to  Commonly   asked  "New  Internet  User"   Questions example example co –  5.2    What  is  a  Fully  Qualified   Domain  Name? ns www ▫  RFC  1983  Internet  Users'  Glossary –  Fully  Qualified  Domain  Name   (FQDN)
  • 43. 43 3.2.  Administrative  guidelines  on  use 3.2.  利利⽤用上の管理理ガイドライン •  概要 ▫  DNSの技術仕様としては特定のツリー構造やラベ ルの選択規則を強要しないという⽅方針について記 述されている。
  • 44. 44 3.3.  Technical  guidelines  on  use 3.3.  利利⽤用上の技術ガイドライン •  概要 ▫  DNSで扱うオブジェクトの要件について述べてい る。 –  オブジェクト名とドメイン名のマッピング –  RRタイプとオブジェクトを記述するデータ形式
  • 45. 45 3.4.  Example  name  space 3.4.  名前空間の例例 •  当時の例例。現在とは異異なるので注意。 | | +---------------------+------------------+ | | | MIL EDU ARPA | | | | | | +-----+-----+ | +------+-----+-----+ | | | | | | | BRL NOSC DARPA | IN-ADDR SRI-NIC ACC | +--------+------------------+---------------+--------+ | | | | | UCI MIT | UDEL YALE | ISI | | +---+---+ | | | | LCS ACHILLES +--+-----+-----+--------+ | | | | | | XX A C VAXA VENERA Mockapetris
  • 46. 46 3.5.  Preferred  name  syntax 3.5.  好ましい名前の構⽂文 •  概要 ▫  ラベルの構⽂文について •  ラベルとホスト名 ▫  ラベルはARPANETホスト名の規則に従う。 –  RFC  952  DOD  INTERNET  HOST  TABLE  SPECIFICATION –  RFC  1123  Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  Application   and  Support  によりホスト名の仕様が変更更された •  ホスト名 ▫  英⽂文字で始まる   →  英⽂文字あるいは数字で始まる(RFC  1123) ▫  英⽂文字あるいは数字で終わる ▫  間の⽂文字は英⽂文字、数字、ハイフンが使える •  ラベル ▫  ラベルは63⽂文字未満
  • 47. 47 3.6.  Resource  Records 3.6.  リソースレコード •  概要 ▫  リソースレコードについての説明を記述する。
  • 48. 48 3.6.  Resource  Records ドメイン名空間 3.6.  リソースレコード •  リソースレコード ▫  ドメイン名はノードを識識別す com jp る。 ▫  各ノードはリソース情報の集 example example co まりを持つ。空でもよい。 ▫  特定の名前に関連づけられた ns www リソース情報の集まりは別々 のリソースレコード(RRs) リソースレコード から構成される。 example.jp. IN SOA ns.exampele.jp. .. ▫  集まりの中のRRsの順番は指 example.jp. IN NS ns.example.jp. 定できないし、維持される必 要も無い。 ns.example.jp. IN A 192.0.2.1 ドメイン名 タイプ
  • 49. 49 3.6.  Resource  Records 3.6.  リソースレコード •  リソースレコードの⽤用語 ▫  owner(オーナー) –  そのRRがあるドメイン名 ▫  type(タイプ) –  このリソースレコードのリソースのタイプを識識別する符 号化された16ビットの値。タイプは抽象的なリソースを 参照する。 –  A,  CNAME,  HINFO,  MX,  NS,  PTR,  SOA ▫  class –  プロトコルファミリーを識識別する符号化された16ビット の数 –  IN(the  Internet  system),  CH(the  Chaos  system)
  • 50. 50 3.6.  Resource  Records 3.6.  リソースレコード •  リソースレコードの⽤用語 ▫  TTL –  RRの⽣生存期間。このフィールドは秒単位の32ビット整 数。リゾルバーがキャッシュするときに使う。TTLはRR が破棄されるまでにキャッシュしてよい期間を⽰示す。 –  RFC  2181  Clarifications  to  the  DNS  Specification "8.  Time  to  Live  (TTL)" –  符号無し整数 –  最⼩小値:  0 –  最⼤大値:  2147483647    (2^31  -‐‑‒  1) –  最上位ビットが1であるときにはTTLを0と扱うべき ▫  RDATA –  タイプとクラスに依存するデータ。
  • 51. 51 3.6.1.  Textual  expression  of  RRs 3.6.1.  RRsのテキスト表現 •  RRのテキスト表現の形式 ▫  RRは1⾏行行で⽰示される。複数⾏行行になる場合には括弧を使 う。 example.com. 172800 IN NS a.iana-servers.net. example.com. 3600 IN SOA dns1.icann.org. ( hostmaster.icann.org. 2012080872 7200 3600 1209600 3600 ) ▫  ⾏行行の先頭はRRのオーナー。 example.com. 172800 IN NS a.iana-servers.net. ▫  空⽩白で始まる⾏行行は、オーナーが前のRRと同じと想定 される。 example.com. 172800 IN NS a.iana-servers.net. 172800 IN NS b.iana-servers.net.
  • 52. 52 3.6.1.  Textual  expression  of  RRs 3.6.1.  RRsのテキスト表現 •  RRのテキスト表現の形式  –  TTL,タイプ,クラス •  オーナーの次は、TTLとタイプとクラス。 ▫  クラスとタイプはニーモニックを使う。 ▫  TTLは整数を使う。 ▫  タイプは必ず最後である。 ▫  INクラスとTTLはわかりやすさのために例例からよ く省省略略される。 •  RRのテキスト表現の形式  –  RDATA ▫  リソースデータあるいはRRのRDATAセクション は典型的表現の知識識を使って与えられる。
  • 53. 53 3.6.2.  Aliases  and  canonical  names 3.6.2.  別名と正式名 •  概要 ▫  CNAMEについての説明 •  CNAME ▫  CNAMEは別名に対するオーナー名を識識別する。 RRのRDATAセクションの対応する正式名を⽰示す。 ▫  CNAME  RRがノードに存在したら、他のデータは 存在すべきではない。これは、正式名とその別名 に違いがでないを保証する。 ▫  この規則はキャッシュされたCNAMEは権威サー バーに他のRRタイプを確認することなしに使われ ることも保証する。
  • 54. 54 3.6.2.  Aliases  and  canonical  names 3.6.2.  別名と正式名 •  RFC  2181  Clarifications  to  the  DNS   Specification   "10.1.  CNAME  resource  records" ▫  CNAMEの意味を明確化 –  CNAME  ("canonical  name")「正式名」は"alias   name"「別名」と関連づけるために使う –  CNAMEは「別名」を⽰示すのでなく、「別名」に対 する「正式名」を⽰示す。 –  別名  IN  CNAME  正式名
  • 55. 55 3.7.  Queries 3.7.  問い合わせ •  概要 ▫  問い合わせについて •  問い合わせ ▫  DNS問い合わせと応答は標準メッセージフォーマット で運ばれる。 ▫  メッセージフォーマットは常に存在するいくつかの固 定フィールドと問い合わせパラメータとRRを運ぶ4つ のセクション ▫  ヘッダーにある最も重要なフィールドは異異なる問い合 わせを分けるopcodeと呼ばれる4ビットのフィールド である。
  • 56. 56 3.7.  Queries 3.7.  問い合わせ •  4つのセクション ▫  Question –  問い合わせ名と他の問い合わせパラメータ ▫  Answer –  回答のRR ▫  Authority –  他の権威サーバーを⽰示すRR。answerセクションの 権威データのSOA  RRでもよい。 ▫  Additional –  他のセクションのRRを使う際に役に⽴立立つかもしれな いRR
  • 57. 57 3.7.1.  Standard  queries 3.7.1.  標準の問い合わせ ▫  標準の問い合わせは –  ターゲットドメイン名(QNAME)、 –  問い合わせタイプ(QTYPE)、 –  問い合わせクラス(QCLASS) –  を⽰示し、⼀一致するRRを尋ねる。
  • 58. 58 3.7.2.  Inverse  queries  (Optional) 3.7.2.  逆問い合わせ  (付加機能) •  RFC  3425  Obsoleting  IQUERYにより廃⽌止
  • 59. 59 4.  NAME  SERVERS 4.  ネームサーバー •  4.1.  Introduction            はじめに •  4.2.  How  the  database  is  divided  into  zones            データベースのゾーンの分割⽅方法 •  4.3.  Name  server  internals            ネームサーバーの内部
  • 60. 60 4章の位置づけ ネームサーバー ゾーン転送 ネームサーバー ロード (権威サーバー) (権威サーバー) マスター ファイル ゾーン内のリソース メッセージ レコードを記述 ドメイン名空間 ネームサーバー (フルサービス リソースレコード リゾルバー) example.jp. IN SOA ns.exampele.jp. .. example.jp. IN NS ns.example.jp. メッセージ com jp ns.example.jp. IN A 192.0.2.1 ドメイン名 タイプ リゾルバー example example co ns www
  • 61. 61 4.1.  Introduction 4.1.  はじめに •  概要 ▫  ネームサーバーとゾーンについて記述している。 •  ネームサーバーとゾーン ▫  ネームサーバーはドメインのデータベースのリポ ジトリーである。 ▫  データベースはゾーンと呼ばれる部分に分割され、 ネームサーバー間に分散されている。 ▫  ネームサーバーの基本的なタスクはゾーン内の データへの問い合わせに回答することである。
  • 62. 62 4.2.  How  the  database  is  divided  into  zones 4.2.  データベースをゾーンに分割する⽅方法 •  概要 ▫  データベースをゾーンに分割する⽅方法について説 明する。
  • 63. 63 4.2.  How  the  database  is  divided  into  zones 4.2.  データベースをゾーンに分割する⽅方法 •  名前空間の分割は2つの隣隣接した ノードの間で⾏行行われる。 ▫  左記の例例ではexampleとjpの間 •  接続された名前空間の各グループ は別々のゾーンとなる。 •  ゾーンは領領域内のすべての名前の com jp 権威となる。 •  RFC  2181  Clarifications  to  the   example example co DNS  Specification  "6.  Zone   ns www Cuts"に詳細に説明あり
  • 64. 64 4.2.1.  Technical  considerations 4.2.1.  技術的な考慮 •  ゾーンを記述するデータは4つの部分 を持つ ▫  ゾーン内のすべてのノードの権威デー タ com jp ▫  ゾーンのトップノードを定義するデー タ example example co ▫  委任したサブゾーンを記述するデータ。 すなわち、ゾーンの最下部の切切断。 sub ns www ▫  サブゾーンのネームサーバーにアクセ スをさせるデータ ns www (グルー"glue"データと呼ばれる。)
  • 65. 65 4.2.2.  Administrative  considerations 4.2.2.  管理理上の考慮 •  組織が⾃自⾝身のドメインを管理理したいときの最初の⼀一 歩は、正しい親ゾーンを識識別し、親ゾーンの所有者 に管理理を委任してもらうように同意を得ることであ る。 •  新しいサブゾーンに適した名前が選ばれたら、新し い所有者は複数のネームサーバーを⽤用意することを ⽰示すべきである。 •  最後の導⼊入の段階では、委任が効果を持つのに必要 なNS  RRsとグルーRRsを親ゾーンに追加してもら う。両⽅方のゾーンの管理理者はゾーンカットの両側で 同じNSとグルーRRsを持ち続けるようにする。
  • 66. 66 4.3.  Name  server  internals 4.3.  ネームサーバーの内部
  • 67. 67 4.3.1.  Queries  and  responses 4.3.1.  問い合わせと応答 •  ネームサーバの主要な活動は標準問い合わせに 回答することである。 •  問い合わせと応答はRFC  1035のメッセージ フォーマットで運ばれる。 •  問い合わせはQTYPE,  QCLASS,  QNAMEを含む。
  • 68. 68 4.3.1.  Queries  and  responses 4.3.1.  問い合わせと応答 •  ⾮非再帰検索索モード ▫  サーバーとして最も単純なモードは⾮非再帰である。 ▫  ローカル情報のみを使って回答する。 ▫  応答はエラー、回答、回答に最も近い他のサーバ への参照のいずれかを含む。 ▫  すべてのネームサーバーは⾮非再帰問い合わせを実 装しなければならない。
  • 69. 69 4.3.1.  Queries  and  responses 4.3.1.  問い合わせと応答 •  再帰検索索モード ▫  クライアントとして最も単純なモードは再帰検索索 モードである。 ▫  このモードでは、ネームサーバーはリゾルバーの 役割として動作し、エラーあるいは回答を返す。 しかし、参照は返さない。 ▫  このサービスはネームサーバーでは付加機能であ る。ネームサーバーは再帰検索索モードを使うクラ イアントを制限してもよい。
  • 70. 70 4.3.2.  Algorithm 4.3.2.  アルゴリズム •  概要 ▫  ネームサーバーの問い合わせに対するアルゴリズ ムを説明している。
  • 71. 71 4.3.3.  Wildcards 4.3.3.  ワイルドカード •  概要 ▫  ラベル"*"で始まる所有者名を持つRRsは特別な扱 いを⾏行行う。 ▫  このようなRRをワイルドカードと呼ぶ。
  • 72. 72 4.3.4.  Negative  response  caching  (Optional) 4.3.4.  ⽐比例例応答のキャッシュ  (付加機能) •  否定応答をキャッシュすることについての説明 •  誤りあり ▫  The  method  is  that  a  name  server  may  add  an   SOA  RR  to  the  additional  section  of  a  response   when  that  response  is  authoritative. •  RFC  2181  Clarifications  to  the  DNS   Specification   "7.1.  Placement  of  SOA  RRs  in  authoritative   answers"により訂正 ▫  リソースが存在しないときにレスポンスに含めるSOA レコードはadditionalセクションではなくauthorityセ クションに置く。
  • 73. 73 4.3.4.  Negative  response  caching  (Optional) 4.3.4.  ⽐比例例応答のキャッシュ  (付加機能) •  RFC  2308  Negative  Caching  of  DNS  Queries   (DNS  NCACHE)で詳細な説明と再定義 ▫  RFC  1034からの変更更点(8  -‐‑‒  Changes  from  RFC   1034) –  ネガティブキャッシュはoptionalであったが、RFC   2308ではキャッシュする場合は、ネガティブキャッシュ もしなければならないよう(must)になった。 –  AuthorityセクションのSOAレコードはキャッシュしな ければならない(MUST)。 –  キャッシュしたSOAレコードは応答に加えなければなら ない(MUST)。
  • 74. 74 4.3.5.  Zone  maintenance  and  transfers 4.3.5.  ゾーンの保守と転送 •  概要 ▫  ゾーン転送についての説明 •  RFC  5936  DNS  Zone  Transfer  Protocol   (AXFR)でAXFRのすべてがアップデートされて いる。
  • 75. 75 5.  RESOLVERS 5.  リゾルバー •  5.1.  Introduction            はじめに •  5.2.  Client-‐‑‒resolver  interface            クライアント-‐‑‒リゾルバー  インターフェイ ス •  5.3.  Resolver  internals            リゾルバーの内部
  • 76. 76 5章の位置づけ ネームサーバー ゾーン転送 ネームサーバー ロード (権威サーバー) (権威サーバー) マスター ファイル ゾーン内のリソース メッセージ レコードを記述 ドメイン名空間 ネームサーバー (フルサービス リソースレコード リゾルバー) example.jp. IN SOA ns.exampele.jp. .. example.jp. IN NS ns.example.jp. メッセージ com jp ns.example.jp. IN A 192.0.2.1 ドメイン名 タイプ リゾルバー example example co ns www
  • 77. 77 5.1.  Introduction 5.1.  はじめに •  概要 ▫  リゾルバーはユーザープログラムとドメインネー ムサーバーへのインターフェイスのプログラムで ある。 ▫  リゾルバーはユーザープログラムからサブルー ティンコールあるいはシステムコールにより要求 を受け付け、ローカルのホストのデータ形式と互 換性のある形式で欲しい情報を返す。
  • 78. 78 5.2.  Client-‐‑‒resolver  interface 5.2.  クライアント-‐‑‒リゾルバーのインターフェイス •  概要 ▫  典型的な機能 –  ホスト名からホストアドレスへの変換 –  ホストアドレスからホスト名への変換 –  ⼀一般的な検索索機能
  • 79. 79 5.3.  Resolver  internals 5.3.  リゾルバーの内部 •  概要 ▫  リゾルバーの実装についての説明 ▫  スタブリゾルバー ▫  リソース ▫  アルゴリズム
  • 80. 80 6.  A  SCENARIO 6.  シナリオ •  省省略略
  • 81. 81 7.  REFERENCES  and  BIBLIOGRAPHY 7.  出典と参考⽂文献 •  省省略略
  • 82. 82 RFC  1035  ドメイン名  –  実装と仕様 1987年年11⽉月発⾏行行 著者:  ポール  モカペトリス(Paul  Mockapetris)
  • 83. 83 RFC  1035の⽬目次 •  1.  STATUS  OF  THIS  MEMO   この⽂文書の位置づけ •  2.  INTRODUCTION   はじめに •  3.  DOMAIN  NAME  SPACE  AND  RR  DEFINITIONS   ドメイン名空間とリソースレコードの定義 •  4.  MESSAGES   メッセージ •  5.  MASTER  FILES   マスターファイル •  6.  NAME  SERVER  IMPLEMENTATION   ネームサーバーの実装 •  7.  RESOLVER  IMPLEMENTATION   リゾルバーの実装 •  8.  MAIL  SUPPORT   メールのサポート •  9.  REFERENCES  and  BIBLIOGRAPHY   出典と参考⽂文献
  • 84. 84 RFC  1035の概要 •  DNSのプロトコルの定義 ▫  ドメイン名空間 ▫  リソースレコード ▫  メッセージ ▫  マスターファイル ▫  ネームサーバーの実装 ▫  リゾルバーの実装 ▫  メールエクスチェンジャ
  • 85. 85 1.  STATUS  OF  THIS  MEMO 1.  本⽂文書の位置づけ •  概要 ▫  この⽂文書はドメイン名システムとそのプロトコル についての詳細を記述するものである。
  • 86. 86 2.  INTRODUCTION 2.  はじめに •  2.1.  Overview            概説 •  2.2.  Common  configuration            共通の構成 •  2.3.  Conventions            取り決め
  • 88. 88 2.2.  Common  configurations 2.2.  共通の構成 •  リゾルバーの最も単純で典型的な構成 Local Host | Foreign | +---------+ +----------+ | +--------+ | | user queries | |queries | | | | User |-------------->| |---------|->|Foreign | | Program | | Resolver | | | Name | | |<--------------| |<--------|--| Server | | | user responses| |responses| | | +---------+ +----------+ | +--------+ | A | cache additions | | references | V | | +----------+ | | cache | | +----------+ |
  • 89. 89 2.2.  Common  configurations 2.2.  共通の構成 •  ネームサーバーの単純な構成 Local Host | Foreign | +---------+ | / /| | +---------+ | +----------+ | +--------+ | | | | |responses| | | | | | | Name |---------|->|Foreign | | Master |-------------->| Server | | |Resolver| | files | | | |<--------|--| | | |/ | | queries | +--------+ +---------+ +----------+ |
  • 90. 90 2.2.  Common  configurations 2.2.  共通の構成 •  フルサービスリゾルバーのある構成 Local Hosts | Foreign | +---------+ | | | responses | | Stub |<--------------------+ | | Resolver| | | | |----------------+ | | +---------+ recursive | | | queries | | | V | | +---------+ recursive +----------+ | +--------+ | | queries | |queries | | | | Stub |-------------->| Recursive|---------|->|Foreign | | Resolver| | Server | | | Name | | |<--------------| |<--------|--| Server | +---------+ responses | |responses| | | +----------+ | +--------+ | Central | | | cache | | +----------+ |
  • 91. 91 2.2.  Common  configurations 2.2.  共通の構成 •  ゾーン転送を使う構成 Local Host | Foreign | +---------+ | / /| | +---------+ | +----------+ | +--------+ | | | | |responses| | | | | | | Name |---------|->|Foreign | | Master |-------------->| Server | | |Resolver| | files | | | |<--------|--| | | |/ | | queries | +--------+ +---------+ +----------+ | A |maintenance | +--------+ | +------------|->| | | queries | |Foreign | | | | Name | +------------------|--| Server | maintenance responses | +--------+
  • 93. 93 2.3.1.  Preferred  name  syntax 2.3.1.  名前の構⽂文 •  概要 ▫  ドメイン名の構⽂文 ▫  ラベルの構⽂文 •  ドメイン名の構⽂文 ▫  <domain>  ::=  <subdomain>  |  "  " ▫  <subdomain>  ::=  <label>  |  <subdomain>  "."  <label> ▫  <label>  ::=  <letter>  [  [  <ldh-‐‑‒str>  ]  <let-‐‑‒dig>  ] ▫  <ldh-‐‑‒str>  ::=  <let-‐‑‒dig-‐‑‒hyp>  |  <let-‐‑‒dig-‐‑‒hyp>  <ldh-‐‑‒str> ▫  <let-‐‑‒dig-‐‑‒hyp>  ::=  <let-‐‑‒dig>  |  "-‐‑‒" ▫  <let-‐‑‒dig>  ::=  <letter>  |  <digit> ▫  <letter>  ::=  any  one  of  the  52  alphabetic  characters  A   through  Z  in ▫  upper  case  and  a  through  z  in  lower  case ▫  <digit>  ::=  any  one  of  the  ten  digits  0  through  9
  • 94. 94 2.3.1.  Preferred  name  syntax 2.3.1.  名前の構⽂文 •  ラベル ▫  ラベルはホスト名の規則に従う。 –  英⽂文字で始まる  →  英⽂文字あるいは数字で始まる(RFC   1123) –  英⽂文字あるいは数字で終わる –  間の⽂文字は英⽂文字、数字、ハイフンが使える ▫  当時のホスト名の仕様 –  RFC  952  DOD  INTERNET  HOST  TABLE   SPECIFICATION ▫  RFC  1123  Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒   Application  and  Support  によりホスト名の仕様が変 更更された ▫  ラベルは63⽂文字未満
  • 95. 95 2.3.2.  Data  Transmission  Order 2.3.2.  データ転送の順番 •  概要 ▫  データのオクテットレベルでの順番を説明してい る。
  • 96. 96 2.3.3.  Character  Case 2.3.3.  ⼤大⽂文字⼩小⽂文字 •  概要 ▫  ⼤大⽂文字⼩小⽂文字の取り扱いについて •  ⼤大⽂文字⼩小⽂文字の区別 ▫  ラベルやドメイン名などの⽐比較の際には⼤大⽂文字⼩小 ⽂文字を区別しない。 •  ⼤大⽂文字⼩小⽂文字の維持 ▫  可能な限り⼤大⽂文字⼩小⽂文字を維持する。 •  RFC  4343  "Domain  Name  System  (DNS)   Case  Insensitivity  Clarification"
  • 97. 97 2.3.4.  Size  limits 2.3.4.  サイズの制限 •  概要 ▫  サイズの制限 •  サイズの制限 ▫  ラベル –  63オクテット以下 ▫  名前 –  255オクテット以下 ▫  TTL –  符号付き32ビット整数の正の数 ▫  UDPメッセージ –  512オクテット以下
  • 98. 98 3.  DOMAIN  NAME  SPACE  AND  RR  DEFINITIONS 3.  ドメイン名空間とRRの定義 •  3.1.  Name  space  definitions            名前空間の定義 •  3.2.  RR  definitions            RRの定義 •  3.3.  Standard  RRs            標準のRRs •  3.4.  ARPA  Internet  specific  RRs            Internet特有のRRs •  3.5.  IN-‐‑‒ADDR.ARPA  domain            IN-‐‑‒ADDR.ARPAドメイン •  3.6.  Defining  new  types,  classes,  and  special   namespaces            新しいタイプ、クラス、特別な名前空間の定義⽅方法
  • 99. 99 3章の位置づけ ネームサーバー ゾーン転送 ネームサーバー ロード (権威サーバー) (権威サーバー) マスター ファイル ゾーン内のリソース メッセージ レコードを記述 ドメイン名空間 ネームサーバー (フルサービス リソースレコード リゾルバー) example.jp. IN SOA ns.exampele.jp. .. example.jp. IN NS ns.example.jp. メッセージ com jp ns.example.jp. IN A 192.0.2.1 ドメイン名 タイプ リゾルバー example example co ns www
  • 100. 100 3.1.  Name  space  definitions 3.1.  名前空間の定義 •  概要 ▫  ドメイン名 ▫  ラベル •  ドメイン名とラベルの定義 ▫  メッセージ内のドメイン名は⼀一続きのラベルで説明される。 ▫  各ラベルは⼀一つのオクテットの⻑⾧長さとオクテットの数で表 現される。 ▫  各ドメイン名はルートのnullラベルで終わる。ドメイン名 は0の⻑⾧長さのバイトで終わる。 ▫  各⻑⾧長さの上位2ビットは0になり、⻑⾧長さのオクテットの残り の6ビットはラベルを63オクテット以下に制限する。 ▫  ドメイン名の⻑⾧長さは255オクテット以下。
  • 102. 102 3.2.1.  Format 3.2.1.  フォーマット 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | / / / NAME / | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TYPE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | CLASS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TTL | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | RDLENGTH | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--| / RDATA / / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  • 103. 103 3.2.1.  Format 3.2.1.  フォーマット •  NAME ▫  所有者名。このリソースレコードに関するノード の名前 •  TYPE ▫  RR  TYPEコードの⼀一つを含む2オクテット •  CLASS ▫  RR  CLASSコードの⼀一つを含む2オクテット
  • 104. 104 3.2.1.  Format 3.2.1.  フォーマット •  TTL ▫  符号付き32ビット整数。リソースレコードが キャッシュされてもよい時間間隔。 •  RDLENGTH ▫  RDATAフィールドのオクテット⻑⾧長を⽰示す符号無し 16ビット整数。 •  RDATA ▫  リソースを⽰示す可変⻑⾧長の⽂文字。
  • 105. 105 3.2.1.  Format 3.2.1.  フォーマット •  間違い ▫  "SOA  records  are  always  distributed  with  a   zero  TTL  to  prohibit  caching." •  RFC  2181  Clarifications  to  the  DNS   Specification  "7.2.  TTLs  on  SOA  RRs" ▫  どこにも⾔言及されていないし、そのような実装は ⾏行行われていない。実装はTTLが0であることを想 定すべきではないし、0のTTLを持つSOAレコー ドを送信することを要求してもいけない。
  • 106. 106 3.2.2.  TYPE  values 3.2.2.  TYPEの値 TYPE value meaning A 1 a  host  address NS 2 a  host  address CNAME 5 the  canonical  name  for  an  alias SOA 6 marks  the  start  of  a  zone  of  authority WKS 11 a  well  known  service  description PTR 12 a  domain  name  pointer MX 15 mail  exchange TXT 16 text  strings
  • 107. 107 3.2.3.  QTYPE  values 3.2.3.  QTYPEの値 •  QTYPEは問い合わせのquestionパートで出てくる。 •  QTYPEはTYPEのスーパーセット。 •  QTYPEの"MAILB"と"MAILA"は使われていない。 QTYPE value meaning AXFR 252 A  request  for  a  transfer  of  an  entire  zone * 255 A  request  for  all  records
  • 108. 108 3.2.4.  CLASS  values 3.2.4.  CLASSの値 CLASS value meaning mnemonics IN 1 the  Internet CS 2 the  CSNET  class  (Obsolete) CH 3 the  CHAOS  class HS 4 Hesiod
  • 109. 109 3.2.5.  QCLASS  values 3.2.5.  QCLASSの値 •  QCLASSは問い合わせのquestionセクションで出てくる。 •  QCLASSはCLASSのスーパーセット QCLASS value meaning mnemonics * 255 any  class
  • 111. 111 3.3.1.  CNAME  RDATA  format +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ / CNAME / / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ where: CNAME A <domain-name> which specifies the canonical or primary name for the owner. The owner name is an alias. CNAME RRs cause no additional section processing, but name servers may choose to restart the query at the canonical name in certain cases. See the description of name server logic in [RFC-1034] for details.
  • 112. 112 3.3.9.  MX  RDATA  format +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | PREFERENCE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ / EXCHANGE / / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ where: PREFERENCE A 16 bit integer which specifies the preference given to this RR among others at the same owner. Lower values are preferred. EXCHANGE A <domain-name> which specifies a host willing to act as a mail exchange for the owner name. MX records cause type A additional section processing for the host specified by EXCHANGE. The use of MX RRs is explained in detail in [RFC-974].
  • 113. 113 3.3.11.  NS  RDATA  format +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ / NSDNAME / / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ where: NSDNAME A <domain-name> which specifies a host which should be authoritative for the specified class and domain. NS records cause both the usual additional section processing to locate a type A record, and, when used in a referral, a special search of the zone in which they reside for glue information.
  • 114. 114 3.3.12.  PTR  RDATA  format +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ / PTRDNAME / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ where: PTRDNAME A <domain-name> which points to some location in the domain name space. PTR records cause no additional section processing. These RRs are used in special domains to point to some other location in the domain space. These records are simple data, and don't imply any special processing similar to that performed by CNAME, which identifies aliases. See the description of the IN-ADDR.ARPA domain for an example.
  • 115. 115 3.3.13.  SOA  RDATA  format +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ / MNAME / / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ / RNAME / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | SERIAL | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | REFRESH | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | RETRY | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | EXPIRE | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | MINIMUM | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  • 116. 116 3.3.13.  SOA  RDATA  format •  MNAME ▫  このゾーンのデータのオリジナルあるいはプライ マリであるネームサーバーのドメイン名。 ▫  RFC  2181  Clarifications  to  the  DNS   Specification  "7.3.  The  SOA.MNAME  field" –  SOAレコードのMNAMEフィールドはゾーンのマス ターサーバの名前を設定する。 –  ゾーン⾃自体の名前を書くべきではない。
  • 117. 117 3.3.13.  SOA  RDATA  format •  RNAME ▫  このゾーンの責任者のメールアドレス。 ▫  訳注)メールアドレスの"@"を"."に置き換える。 –  例例)"foo@example.com"は"foo.example.com"に。 •  SERIAL ▫  ゾーンのオリジナルコピーの符号無し32ビット バージョン番号。ゾーン転送はこの値を維持する。 この値は周回し、sequence  space  arithmeticを 使って⽐比較する。 ▫  RFC  1982  Serial  Number  Arithmeticで⽐比較 について詳細な説明がある。
  • 118. 118 3.3.13.  SOA  RDATA  format •  REFRESH ▫  ゾーンをリフレッシュするまでの32ビット時間間 隔。 •  RETRY ▫  失敗したリフレッシュを再試⾏行行するまでの32ビッ ト時間間隔。 •  EXPIRE ▫  ゾーンが権威をなくすまでの時間の上限を⽰示す32 ビットの時間の値。
  • 119. 119 3.3.13.  SOA  RDATA  format •  MINIMUM ▫  このゾーンのRRを送信するときに指定されるTTL の最⼩小値。符号無し32ビット。 ▫  RFC  2308  Negative  Caching  of  DNS   Queries  (DNS  NCACHE)により否定応答の キャッシュのTTLとして再定義された。
  • 120. 120 3.3.14.  TXT  RDATA  format +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ / TXT-DATA / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ where: TXT-DATA One or more <character-string>s. TXT RRs are used to hold descriptive text. The semantics of the text depends on the domain where it is found.
  • 121. 121 3.4.  Internet  specific  RRs 3.4.1.  A  RDATA  format +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ADDRESS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ where: ADDRESS A 32 bit Internet address. Hosts that have multiple Internet addresses will have multiple A records. A records cause no additional section processing. The RDATA section of an A line in a master file is an Internet address expressed as four decimal numbers separated by dots without any imbedded spaces (e.g., "10.2.0.52" or "192.0.5.6").
  • 122. 122 3.5.  IN-‐‑‒ADDR.ARPA  domain •  概要 ▫  IN-‐‑‒ADDR.ARPAドメインは逆引き(IPアドレスか らホスト名へのマッピング)のために⽤用いられる。
  • 123. 123 3.6.  Defining  new  types,  classes,   and  special  namespaces •  概要 ▫  新しいタイプやクラスや特別な名前空間の定義の 仕⽅方を説明。
  • 124. 124 4.  MESSAGES 4.  メッセージ •  4.1.  Format            フォーマット •  4.2.  Transport            転送
  • 125. 125 4章の位置づけ ネームサーバー ゾーン転送 ネームサーバー ロード (権威サーバー) (権威サーバー) マスター ファイル ゾーン内のリソース メッセージ レコードを記述 ドメイン名空間 ネームサーバー (フルサービス リソースレコード リゾルバー) example.jp. IN SOA ns.exampele.jp. .. example.jp. IN NS ns.example.jp. メッセージ com jp ns.example.jp. IN A 192.0.2.1 ドメイン名 タイプ リゾルバー example example co ns www
  • 126. 126 4.1.  Format 4.1.  フォーマット +---------------------+ | Header | +---------------------+ | Question | the question for the name server +---------------------+ | Answer | RRs answering the question +---------------------+ | Authority | RRs pointing toward an authority +---------------------+ | Additional | RRs holding additional information +---------------------+
  • 127. 127 4.1.1.  Header  section  format 4.1.1.  Headerセクションフォーマット 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |QR| Opcode |AA|TC|RD|RA| Z | RCODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QDCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ANCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | NSCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ARCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  • 128. 128 4.1.1.  Header  section  format 4.1.1.  Headerセクションフォーマット •  ID ▫  16ビットの識識別⼦子。 •  QR ▫  Query(0)かResponse(1)かを⽰示す1ビット •  OPCODE ▫  問い合わせの種類を⽰示す4ビット。 •  AA ▫  Authoritative  Answer(権威ある回答)であるかを⽰示 す1ビット。 ▫  対応したネームサーバーがquestionセクションのドメ イン名に対する権威を持っているかを⽰示す。
  • 129. 129 4.1.1.  Header  section  format 4.1.1.  Headerセクションフォーマット •  TC ▫  TrunCation  –  メッセージが⼤大きくて切切り詰められた ことを⽰示す。 •  RD ▫  Recursion  Desired  –  ネームサーバーに再帰問い合わ せをすることを指⽰示する。 •  RA ▫  Recursion  Available  –  ネームサーバーが再帰問い合 わせをサポートしているかを⽰示す。 •  Z ▫  将来のための予約。0にする。
  • 130. 130 4.1.1.  Header  section  format 4.1.1.  Headerセクションフォーマット •  RCODE ▫  Response  code  –  応答コード –  0:  No  error  condition –  1:  Format  error –  2:  Server  failure –  3:  Name  Error –  4:  Not  Implemented –  5:  Refused –  6-‐‑‒15:  Reserved  for  future  use.
  • 131. 131 4.1.1.  Header  section  format 4.1.1.  Headerセクションフォーマット •  QDCOUNT ▫  questionセクションのエントリーの数を⽰示す符号無し 16ビット整数 •  ANCOUNT ▫  answerセクションのエントリーの数を⽰示す符号無し 16ビット整数 •  NSCOUNT ▫  authorityレコードセクションのリソースレコードの 数を⽰示す符号無し16ビット整数 •  ARCOUNT ▫  additionalレコードセクションのリソースレコードの 数を⽰示す符号無し16ビット整数
  • 132. 132 4.1.1.  Header  section  format 4.1.1.  Headerセクションフォーマット 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ID | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ |QR| Opcode |AA|TC|RD|RA| Z | RCODE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QDCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ANCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | NSCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | ARCOUNT | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  • 133. 133 4.1.1.  Header  section  format 4.1.1.  Headerセクションフォーマット $ dig @127.0.0.1 emaillab.jp. NS 略略 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 33981 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2 ;; QUESTION SECTION: ;emaillab.jp. IN NS ;; ANSWER SECTION: emaillab.jp. 86400 IN NS ns.emaillab.jp. emaillab.jp. 86400 IN NS ns2.emaillab.jp. ;; ADDITIONAL SECTION: ns.emaillab.jp. 86400 IN A 49.212.17.32 ns2.emaillab.jp. 86400 IN A 49.212.24.158
  • 134. 134 4.1.1.  Header  section  format 4.1.1.  Headerセクションフォーマット $ dig +norec @ns.emaillab.jp. emaillab.jp. NS 略略 ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24693 ;; flags: qr aa; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2 ;; QUESTION SECTION: ;emaillab.jp. IN NS ;; ANSWER SECTION: emaillab.jp. 86400 IN NS ns.emaillab.jp. emaillab.jp. 86400 IN NS ns2.emaillab.jp. ;; ADDITIONAL SECTION: ns.emaillab.jp. 86400 IN A 49.212.17.32 ns2.emaillab.jp. 86400 IN A 49.212.24.158
  • 135. 135 4.1.1.  Header  section  format 4.1.1.  Headerセクションフォーマット $ dig +norec @a.dns.jp. emaillab.jp. NS ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35302 ;; flags: qr; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2 ;; QUESTION SECTION: ;emaillab.jp. IN NS ;; AUTHORITY SECTION: emaillab.jp. 86400 IN NS ns.emaillab.jp. emaillab.jp. 86400 IN NS ns2.emaillab.jp. ;; ADDITIONAL SECTION: ns.emaillab.jp. 86400 IN A 49.212.17.32 ns2.emaillab.jp. 86400 IN A 49.212.24.158
  • 136. 136 4.1.2.  Question  section  format 4.1.2.  Questionセクションフォーマット 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | / QNAME / / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QTYPE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | QCLASS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  • 137. 137 4.1.3.  Resource  record  format 4.1.3.  リソースレコードフォーマット      1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | | / / / NAME / | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TYPE | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | CLASS | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | TTL | | | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ | RDLENGTH | +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--| / RDATA / / / +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  • 138. 138 4.2.  Transport 4.2.  転送 •  概要 ▫  DNSのメッセージがUDPあるいはTCPで転送され ることを説明している。
  • 139. 139 4.2.1.  UDP  usage •  メッセージは512バイトに制限される。 •  512バイトより⼤大きいメッセージは切切り詰めら れ、ヘッダーにTCビットを⽴立立てる。 •  RFC  2181  Clarifications  to  the  DNS   Specification  "9    The  TC  (truncated)  header   bit"にTCビットがどういうときにセットされる かについての説明がある。 •  RFC  2671  Extension  Mechanisms  for  DNS   (EDNS0)  により、UDPで512バイトより⼤大きい メッセージを送ることが可能である。
  • 140. 140 4.2.2.  TCP  usage •  RFC  5966  DNS  Transport  over  TCP  -‐‑‒   Implementation  RequirementsによりDNS   over  TCPの仕様が更更新されている。
  • 141. 141 5.  MASTER  FILES 5.  マスターファイル •  5.1.  Format •  5.2.  Use  of  master  files  to  define  zones •  5.3.  Master  file  example
  • 142. 142 5章の位置づけ ネームサーバー ゾーン転送 ネームサーバー ロード (権威サーバー) (権威サーバー) マスター ファイル ゾーン内のリソース メッセージ レコードを記述 ドメイン名空間 ネームサーバー (フルサービス リソースレコード リゾルバー) example.jp. IN SOA ns.exampele.jp. .. example.jp. IN NS ns.example.jp. メッセージ com jp ns.example.jp. IN A 192.0.2.1 ドメイン名 タイプ リゾルバー example example co ns www
  • 143. 143 5.1.  Format •  エントリーは⾏行行毎に。 •  アイテムが⾏行行を跨がる場合には括弧()で囲む。 •  アイテム間のデリミターとしてスペースとタブ およびその組み合わせが使える。 •  ⾏行行の終わりはコメントで終わることができる。 •  コメントは";"で始まる。 •  @はオリジンを元に戻す。
  • 144. 144 5.1.  Format •  エントリーの形式 ▫  <blank>[<comment>] ▫  $ORIGIN  <domain-‐‑‒name>  [<comment>] ▫  $INCLUDE  <file-‐‑‒name>  [<domain-‐‑‒name>]   [<comment>] ▫  <domain-‐‑‒name><rr>  [<comment>] ▫  <blank><rr>  [<comment>] •  <rr>の定義 ▫  [<TTL>]  [<class>]  <type>  <RDATA> ▫  [<class>]  [<TTL>]  <type>  <RDATA>
  • 145. 145 6.  NAME  SERVER  IMPLEMENTATION 6.  ネームサーバーの実装 •  6.1.  Architecture •  6.2.  Standard  query  processing •  6.3.  Zone  refresh  and  reload  processing •  6.4.  Inverse  queries  (Optional) •  6.5.  Completion  queries  and  responses •  本章はネームサーバーの開発者向けの内容であ り、チュートリアルには向かない内容なので、 説明は省省略略する。
  • 146. 146 7.  RESOLVER  IMPLEMENTATION 7.  リゾルバーの実装 •  7.1.  Transforming  a  user  request  into  a   query •  7.2.  Sending  the  queries •  7.3.  Processing  responses •  7.4.  Using  the  cache •  本章はネームサーバーの開発者向けの内容であ り、チュートリアルには向かない内容なので、 説明は省省略略する。
  • 147. 147 8.  MAIL  SUPPORT 8.  メールサポート •  省省略略
  • 148. 148 9.  REFERENCES  and  BIBLIOGRAPHY 9.  出典と参考⽂文献 •  省省略略
  • 149. 149
  • 150. 150 RFC  1123 Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  Application  and  Support •  タイトル ▫  Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒   Application  and  Support ▫  インターネットホストの要求事項  –   アプリケーションとサポート •  概要 ▫  インターネットに接続するホストが満たすべき要 求事項を定めている。 ▫  もちろん、ホスト名やDNSのサポートについても
  • 151. 151 RFC  1123 Requirements  for  Internet  Hosts  -‐‑‒-‐‑‒  Application  and  Support •  2.1    Host  Names  and  Numbers ホスト名と数 ▫  ホスト名の⽂文法の改訂(RFC  952の改訂) –  ホスト名の最初の⽂文字は英⽂文字のみであったが、数字も使える ようになった。 –  ホスト名の⻑⾧長さは24⽂文字までであったが、下記のようになっ た。 ▫  ホスト名 –  英⽂文字あるいは数字で始まる –  英⽂文字あるいは数字で終わる –  間の⽂文字は英⽂文字、数字、ハイフンが使える ▫  ホストソフトウェアは –  63⽂文字までのホスト名を扱わなければならない(MUST) –  255⽂文字までのホスト名を扱うべきである(SHOULD)
  • 152. 152 RFC  1982 Serial  Number  Arithmetic •  タイトル ▫  Serial  Number  Arithmetic ▫  シリアル番号演算 •  概要 ▫  RFC  1034とRFC  1035ではゾーン転送における SOAレコードのシリアル番号の⽐比較に"sequence   space  arithmetic"を使うと記述されている。 ▫  しかし、"sequence  space  arithmetic"そのもの の定義がない。 ▫  RFC  1982ではその定義を⾏行行う。
  • 153. 153 RFC  1982 Serial  Number  Arithmetic •  おおざっぱにまとめると ▫  シリアル番号の扱い –  32ビットの符号無し整数 –  範囲は[0  ..  4294967295](2^32  -‐‑‒  1) –  最⼤大値から0に周回する。つまり、4294967295+1 は0 –  増加の範囲は[0  ..  2147483647]    (2^31  -‐‑‒  1) ▫  シリアル番号の増分が増加の最⼤大値以下であれば 「シリアル番号の増加(increment)」と判断する。 –  例例)「4294967295  →  0」は増分が1なので、「増 加」と判断できる。
  • 154. 154 RFC  1982 Serial  Number  Arithmetic •  シリアル番号の保守 ▫  RFC  2182  "Selection  and  Operation  of   Secondary  DNS  Servers" –  "7.  Serial  Number  Maintenance" –  間違って⼤大きすぎる番号を付けてしまった場合に、⼩小 さい番号に付け直す⽅方法が書いてある。
  • 155. 155 RFC  2181 Clarifications  to  the  DNS  Specification •  タイトル ▫  Clarifications  to  the  DNS  Specification ▫  DNSの仕様の明確化 •  概要 ▫  この⽂文書はDNSの仕様の問題として確認されてい る分野について考察し、確認された⽋欠陥の改善を 提案する。
  • 156. 156 RFC  2181 Clarifications  to  the  DNS  Specification •  4.  Server  Reply  Source  Address  Selection ▫  マルチホームのサーバにおける応答の送信元アド レスの選択⽅方法 •  4.1.  UDP  Source  Address  Selection –  問い合わせの宛先アドレスを応答の送信元アドレス としてセットする。 •  4.2.  Port  Number  Selection –  問い合わせの送信元ポート番号を応答の宛先ポート 番号として使う。 –  応答は指⽰示されたポート番号から送信される。 –  DNSのウェルノウンポート、53
  • 157. 157 RFC  2181 Clarifications  to  the  DNS  Specification •  5.  Resource  Record  Sets ▫  同じラベル、クラス、タイプのリソースレコード の集まりを「リソースレコードセット」 (RRset)と定義する。 ▫  問い合わせに対して、関連するRRが複数あるとき には、RRsetのすべてのRRを返す。 ▫  RRsetのすべてのRRは同じTTLを使う。
  • 158. 158 RFC  2181 Clarifications  to  the  DNS  Specification •  5.4.1.  Ranking  data ▫  データの信頼性の順位について論論じている。下に⾏行行くほど低い。 –  Data  from  a  primary  zone  file,  other  than  glue  data, –  Data  from  a  zone  transfer,  other  than  glue, –  The  authoritative  data  included  in  the  answer  section  of  an   authoritative  reply. –  Data  from  the  authority  section  of  an  authoritative  answer, –  Glue  from  a  primary  zone,  or  glue  from  a  zone  transfer, –  Data  from  the  answer  section  of  a  non-‐‑‒authoritative  answer,   and  non-‐‑‒authoritative  data  from  the  answer  section  of   authoritative  answers, –  Additional  information  from  an  authoritative  answer,   Data  from  the  authority  section  of  a  non-‐‑‒authoritative   answer,   Additional  information  from  non-‐‑‒authoritative  answers.
  • 159. 159 RFC  2181 Clarifications  to  the  DNS  Specification •  6.  Zone  Cuts ▫  zone ▫  zone  cut ▫  "child"  zone ▫  "parent"  zone ▫  zone's  "origin" •  6.1.  Zone  authority ▫  ゾーンの権威について
  • 160. 160 RFC  2181 Clarifications  to  the  DNS  Specification •  7.  SOA  RRs ▫  SOAレコードに関する記述を3つ修正
  • 161. 161 RFC  2181 Clarifications  to  the  DNS  Specification •  7.1.  Placement  of  SOA  RRs  in  authoritative   answers ▫  RFC  1034  "4.3.4  Negative  response  caching   (Optional)"の内容が間違っている。 –  The  method  is  that  a  name  server  may  add  an   SOA  RR  to  the  additional  section  of  a  response   when  that  response  is  authoritative. ▫  ネガティブキャッシュのときにもSOAレコードを authorityセクションにおいて回答する。 –  SOA  records,  if  added,  are  to  be  placed  in  the   authority  section.
  • 162. 162 RFC  2181 Clarifications  to  the  DNS  Specification •  7.2.  TTLs  on  SOA  RRs ▫  RFC  1035  "3.2.1.  Format"の内容が間違っている。 –  SOA  records  are  always  distributed  with  a  zero  TTL   to  prohibit  caching. •  7.2.  TTLs  on  SOA  RRs ▫  どこにも⾔言及されていないし、そのような実装は⾏行行わ れていない。実装はTTLが0であることを想定すべき ではないし、0のTTLを持つSOAレコードを送信する ことを要求してもいけない。 –  This  is  mentioned  nowhere  else,  and  has  not   generally  been  implemented.  Implementations   should  not  assume  that  SOA  records  will  have  a   TTL  of  zero,  nor  are  they  required  to  send  SOA   records  with  a  TTL  of  zero.
  • 163. 163 RFC  2181 Clarifications  to  the  DNS  Specification •  7.3.  The  SOA.MNAME  field ▫  仕様では明確になっているが広く無視されている。 ▫  SOAレコードのMNAMEフィールドはゾーンのマ スターサーバの名前を設定する。 ▫  ゾーン⾃自体の名前を書くべきではない。
  • 164. 164 RFC  2181 Clarifications  to  the  DNS  Specification •  8.  Time  to  Live  (TTL) ▫  RFC  1035におけるTTLの定義 –  2.3.4.  Size  limits –  positive  values  of  a  signed  32  bit  number. –  3.2.1.  Format –  a  32  bit  signed  integer  that  specifies  the  time  interval –  4.1.3.  Resource  record  format –  a  32  bit  unsigned  integer  that  specifies  the  time   interval ▫  明確にする –  符号無し整数 –  最⼩小値:  0 –  最⼤大値:  2147483647    (2^31  -‐‑‒  1) –  最上位ビットが1であるときにはTTLを0と扱うべき
  • 165. 165 RFC  2181 Clarifications  to  the  DNS  Specification •  9.  The  TC  (truncated)  header  bit ▫  TCビットについての説明
  • 166. 166 RFC  2181 Clarifications  to  the  DNS  Specification •  10.  Naming  issues
  • 167. 167 RFC  2181 Clarifications  to  the  DNS  Specification •  10.1.  CNAME  resource  records ▫  CNAMEの意味を明確化 –  CNAME  ("canonical  name")「正式名」は"alias   name"「別名」と関連づけるために使う –  CNAMEは「別名」を⽰示すのでなく、「別名」に対 する「正式名」を⽰示す。 –  別名  IN  CNAME  正式名
  • 168. 168 RFC  2181 Clarifications  to  the  DNS  Specification •  10.2.  PTR  records ▫  PTRレコードは⼀一つだけ持つというのは誤り。 ▫  PTRレコードの値には(CNAMEで定義される) 別名であってならない。
  • 169. 169 RFC  2181 Clarifications  to  the  DNS  Specification •  10.3.  MX  and  NS  records ▫  MXレコードとNSレコードの値は(CNAMEで定 義される)別名であってはならない。
  • 170. 170 RFC  2181 Clarifications  to  the  DNS  Specification •  11.  Name  syntax ▫  DNSはホスト名からデータへ、IPアドレスからホ スト名へとマッピングするためだけのものではな い。 ▫  DNSは汎⽤用的な階層型データベースであり、様々 なデータを様々な⽬目的で格納できる。
  • 171. 171 RFC  2308 Negative  Caching  of  DNS  Queries  (DNS  NCACHE) •  タイトル ▫  Negative  Caching  of  DNS  Queries  (DNS   NCACHE) ▫  DNS問い合わせのネガティブキャッシュ •  概要 ▫  ネガティブキャッシュについての詳細な説明と再 定義を⾏行行っている。
  • 172. 172 RFC  2308 Negative  Caching  of  DNS  Queries  (DNS  NCACHE) •  RFC  1034からの変更更点(8  -‐‑‒  Changes  from  RFC   1034) ▫  ネガティブキャッシュはoptionalであったが、RFC   2308ではキャッシュする場合は、ネガティブキャッ シュもしなければならないよう(must)になった。 ▫  AuthorityセクションのSOAレコードはキャッシュし なければならない(MUST)。 ▫  キャッシュしたSOAレコードは応答に加えなければな らない(MUST)。 •  SOA  Minimumフィールド ▫  否定応答のTTLとして使われる。 ▫  元々別の意味で定義されていたが再定義された。
  • 173. 173 RFC  4343 Domain  Name  System  (DNS)  Case  Insensitivity  Clarification •  タイトル ▫  Domain  Name  System  (DNS)  Case   Insensitivity  Clarification ▫  DNSの⼤大⽂文字⼩小⽂文字を区別しないことの明確化 •  概要 ▫  ドメイン名の⼤大⽂文字⼩小⽂文字を区別しない。 –  ASCII⽂文字が対象 ▫  この⽂文書はその意味を説明し、仕様を明確にする。
  • 174. 174 RFC  4343 Domain  Name  System  (DNS)  Case  Insensitivity  Clarification •  問い合わせにおいては⼤大⽂文字⼩小⽂文字を区別すべきで ない。 ▫  次の2つのドメイン名の問い合わせは同じ結果となる。 –  foo.example.net. –  Foo.ExamplE.net. ▫  実装 –  ⽐比較前に0x61-‐‑‒0x7Aの範囲の⽂文字(⼩小⽂文字)であれば 0x20を引く。 •  ⼤大⽂文字⼩小⽂文字の維持 ▫  可能な限りオリジナルの⼤大⽂文字⼩小⽂文字を維持すべきで ある。
  • 175. 175 RFC  4343 Domain  Name  System  (DNS)  Case  Insensitivity  Clarification •  ラベルのエスケープ⽅方法 ▫  DNSのプロトコル上は8ビット⽂文字も使える。 ▫  ⽂文字コードが0x00-‐‑‒0x20,0x2E(.),0x7F-‐‑‒0xFFである ⽂文字をバックスラッシュでエスケープする記法 –  バックスラッシュ()  +  ⽂文字コードの3桁の⼗十進数 –  バックスラッシュ()  +  ⽂文字(ASCII印字可能⽂文字の場 合) ▫  例例 –  バックスラッシュ""  →  "092"  or  "" –  ピリオド"."  →  "046"  or  "." –  スペース" "  →  "032"
  • 176. 176 RFC  4343 Domain  Name  System  (DNS)  Case  Insensitivity  Clarification •  Use  of  Bit  0x20  in  DNS  Labels  to  Improve   Transaction  Identity ▫  というInternet  Draftがかつて提案されていた。 ▫  通称"dns  0x20" –  ⼤大⽂文字のコードに対して0x20ビットを⽴立立てると⼩小 ⽂文字のコードになる。 –  0x41  (A)  +  0x20  =  0x61  (a) ▫  キャッシュポイズニングへの耐性を向上させるこ とを⽬目的とする。 ▫  問い合わせとその回答において⼤大⽂文字⼩小⽂文字を維 持する仕様を利利⽤用する。
  • 177. 177 RFC  4343 Domain  Name  System  (DNS)  Case  Insensitivity  Clarification •  Use  of  Bit  0x20  in  DNS  Labels  to  Improve   Transaction  Identity ▫  リゾルバーは問い合わせに⼤大⽂文字⼩小⽂文字をランダ ムに設定する。 –  FoO.ExAmplE.nEt. ▫  権威サーバーは問い合わせの名前を⼤大⽂文字⼩小⽂文字 を維持したままコピーして回答する。 –  FoO.ExAmplE.nEt. ▫  リゾルバーは問い合わせと回答の⽂文字列列を⽐比較し て同じであれば信⽤用する。異異なれば偽の回答と判 断する。
  • 178. 178 RFC  5452 Measures  for  Making  DNS  More  Resilient  against  Forged  Answers •  タイトル ▫  Measures  for  Making  DNS  More  Resilient   against  Forged  Answers ▫  DNSを偽の回答に対する耐性の強化⽅方法 •  概要 ▫  DNSを不不正な応答を受け付けることに対して耐性 を強化する⽅方法について説明する。
  • 179. 179 RFC  5452 Measures  for  Making  DNS  More  Resilient  against  Forged  Answers •  9.1.    Query  Matching  Rules ▫  RFC  2181  "5.4.1.  Ranking  data"のDNSの信頼性規則を 適応する前に ▫  リゾルバーの実装は次のような問い合わせの属性のすべて に、応答が⼀一致していなければならない(MUST)。 –  問い合わせの宛先アドレスに対する送信元アドレス –  問い合わせの送信元アドレスに対する宛先アドレス –  問い合わせの送信元ポートに対する宛先ポート –  問い合わせID –  問い合わせの名前 –  問い合わせのクラスとタイプ ▫  ⼀一致しない応答は不不正と判断しなければならない (MUST)。
  • 180. 180 RFC  5452 Measures  for  Making  DNS  More  Resilient  against  Forged  Answers •  9.2.    Extending  the  Q-‐‑‒ID  Space  by  Using   Ports  and  Addresses ▫  リゾルバーの実装(MUST): –  外部への問い合わせには、実際に利利⽤用できて可能な 限り⼤大きい範囲のポート番号から予測不不能な送信元 ポート番号を使う –  同時に複数の問い合わせが起こる場合には、複数の 異異なる送信元ポート番号を使う –  外部への問い合わせには、全範囲(0-‐‑‒65535)を利利 ⽤用して、予測不不能な問い合わせIDを使う。
  • 181. 181 RFC  5452 Measures  for  Making  DNS  More  Resilient  against  Forged  Answers •  9.3.    Spoof  Detection  and  Countermeasure ▫  リゾルバは詐称を検出したら、UDP問い合わせを 破棄し、TCPで再発⾏行行させてもよい(MAY) –  TCPは詐称に対する耐性が強い
  • 182. 182 RFC  5936 DNS  Zone  Transfer  Protocol  (AXFR) •  タイトル ▫  DNS  Zone  Transfer  Protocol  (AXFR) ▫  DNSのゾーン転送プロトコル  (AXFR) •  概要 ▫  RFC  1034とRFC  1035におけるAXFRの定義が不不 ⼗十分であり、仮定して実装しなければならないと ころがあり、相互運⽤用性を阻害している。 ▫  この⽂文書はAXFRの新しい定義である。 ▫  「新しい」は相互運⽤用できるAXFR機能の正確な 定義を記録する的な意味合いで。
  • 183. 183 RFC  5966 DNS  Transport  over  TCP  -‐‑‒  Implementation  Requirements •  タイトル ▫  DNS  Transport  over  TCP  -‐‑‒  Implementation   Requirements ▫  DNSのTCP転送  –  実装と要求事項 •  概要 ▫  この⽂文書はDNSのTCPでの転送の要求事項を更更新 する。 ▫  TCPサポートがSHOULDであったのをMUSTにす る。
  • 184. 184 RFC  5966 DNS  Transport  over  TCP  -‐‑‒  Implementation  Requirements •  4.    Transport  Protocol  Selection ▫  すべての通常の⽬目的のDNSの実装はUDPとTCPの両⽅方 をサポートしなければならない(MUST) –  権威サーバーの実装は、応答のサイズを⼀一つのUDPパ ケットに収めるサイズに制限しないようにTCPをサポー トしなければならない(MUST)。 –  再帰検索索サーバー(あるいはフォワーダー)の実装は、 TCPを利利⽤用できるサーバーからの⼤大きなサイズの応答を TCPが利利⽤用できるクライアントに達するのを妨げないよ うに、TCPをサポートしなければならない(MUST)。 –  スタブリゾルバーの実装は、⾃自⾝身のクライアントと上流流 のサーバーとの相互運⽤用性を制限しないように応答サイ ズを、TCPをサポートしなければならない(MUST)。
  • 185. 185 DNSの基本仕様およびアップデート(再掲) RFC  1982  /  PS RFC  4343  /  PS Serial  Number  Arithmetic Domain  Name  System   (DNS)  Case  Insensitivity   Clarification RFC  1034  /  STD  13 DOMAIN  NAMES  -‐‑‒   CONCEPTS  AND   RFC  2181  /  PS FACILITIES Clarifications  to  the  DNS   RFC  5452  /  PS Specification Measures  for  Making  DNS   More  Resilient  against   RFC  1035  /  STD  13 DOMAIN  NAMES  -‐‑‒   Forged  Answers IMPLEMENTATION  AND   SPECIFICATION RFC  2308  /  PS Negative  Caching  of  DNS   RFC  5936  /  PS Queries  (DNS  NCACHE) DNS  Zone  Transfer   RFC  1123  /  STD  3 Protocol  (AXFR) Requirements  for  Internet   Hosts  -‐‑‒-‐‑‒  Application  and   Support RFC  3425  /  PS Obsoleting  IQUERY RFC  5966  /  PS アップデート DNS  Transport  over  TCP  -‐‑‒   Implementation   参照 Requirements
  • 186. 186
  • 187. 187 RFC  2671 Extension  Mechanisms  for  DNS  (EDNS0) •  タイトル ▫  Extension  Mechanisms  for  DNS  (EDNS0) ▫  DNSの拡張機構(EDNS0) •  概要 ▫  DNSのプロトコルを機能する。 ▫  これにより、UDPで512オクテットを超えるメッ セージを扱うことができる。
  • 188. 188 RFC  1995 Incremental  Zone  Transfer  in  DNS •  タイトル ▫  Incremental  Zone  Transfer  in  DNS ▫  DNSの差分ゾーン転送 •  概要 ▫  DNSのプロトコルにIXFR(差分ゾーン転送)機 能を提供するための拡張を提案する。
  • 189. 189 RFC  1996 A  Mechanism  for  Prompt  Notification  of  Zone  Changes  (DNS  NOTIFY) •  タイトル ▫  A  Mechanism  for  Prompt  Notification  of  Zone   Changes  (DNS  NOTIFY) ▫  ゾーン変更更の通知機能(DNS  NOTIFY) •  概要 ▫  マスターサーバーがスレーブサーバーにゾーンの 変更更を通知するNOTIFY  opcodeを提案する。
  • 190. 190 RFC  2845 Secret  Key  Transaction  Authentication  for  DNS  (TSIG) •  タイトル ▫  Secret  Key  Transaction  Authentication  for   DNS  (TSIG) ▫  DNSの秘密鍵によるトランザクション認証 (TSIG) •  概要 ▫  共有秘密鍵を⼀一⽅方向ハッシュを使ったトランザク ションレベルの認証を提案する。
  • 191. 191 RFC  3645 Generic  Security  Service  Algorithm  for  Secret  Key  Transaction   Authentication  for  DNS  (GSS-‐‑‒TSIG) •  タイトル ▫  Generic  Security  Service  Algorithm  for  Secret   Key  Transaction  Authentication  for  DNS   (GSS-‐‑‒TSIG) ▫  DNSの秘密鍵トランザクション認証のための GSS-‐‑‒API(GSS-‐‑‒TSIG) •  概要 ▫  TSIGでGSS-‐‑‒APIを使う拡張を提案する。
  • 192. 192 RFC  4635 HMAC  SHA  TSIG  Algorithm  Identifiers •  タイトル ▫  HMAC  SHA  TSIG  Algorithm  Identifiers ▫  HMAC  SHA  TSIGアルゴリズム識識別⼦子 •  概要 ▫  TSIGでHMAC  SHAを扱う⽅方法を提案する。
  • 193. 193 RFC  2136 Dynamic  Updates  in  the  Domain  Name  System  (DNS  UPDATE) •  タイトル ▫  Dynamic  Updates  in  the  Domain  Name   System  (DNS  UPDATE) ▫  DNSにおける動的更更新(DNS  UPDATE) •  概要 ▫  UPDATE  opcodeを使って、指定したゾーンのRR やRRsetの追加や削除を⾏行行う⽅方法を提案する。
  • 194. 194 RFC  3007 Secure  Domain  Name  System  (DNS)  Dynamic  Update •  タイトル ▫  Secure  Domain  Name  System  (DNS)   Dynamic  Update ▫  セキュアなDNS動的更更新 •  概要 ▫  DNS動的更更新に認証機能を追加する。
  • 195. 195