DNS Summer Days 2013 チュートリアル 2013-07-19

DNS再⼊入⾨門

株式会社ハートビーツ 　滝澤隆史

2
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

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

 Unbound/NSDの⽂文書の翻訳▫ DNSは趣味です(ｷﾘｯ3
DNS Summer Days 2013 - DNS再⼊入⾨門

アジェンダ• イントロダクション▫ DNSの背景▫ DNSの概要• 本編▫ ドメイン名▫ ドメイン名の管理理▫ リソースレコード▫ マスターファイル▫ DNSメッセージ▫ リゾルバとネームサーバ

2013/07/19

4
DNS Summer Days 2013 - DNS再⼊入⾨門

注意• DNSの基本仕様を中⼼心に話します。
• 拡張機能については原則として話しません。
▫ EDNS0, DNSSECなど

2013/07/19

5
DNS Summer Days 2013 - DNS再⼊入⾨門

ホスト名とIPアドレスの関係。リゾルバの役割。

2013/07/19

6
DNS Summer Days 2013 - DNS再⼊入⾨門

コンピュータ間で通信するには• 互いに識識別できるユニークな識識別⼦子が必要?

?

2013/07/19

7
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ネットワーク  アドレス
• コンピュータに割り当てられたユニークな番号• ネットワーク上ではこのアドレスを使ってコン
ピュータ間の通信を⾏行行う

1

2

8
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ネットワーク  アドレスの例例• RFC 208 "ADDRESS TABLES"▫ ARPANET時代のネットワーク  アドレス表
	
 	
 	
 	
 IMP	
 	
 	
 	
 	
 	
 SITE	
 	 	 	 	
 HOST	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 NETWORK	 	 	 	 SCHEDULED	
 
	
 	
 	
 NUMBER	 	 	 	
 NAME	 	 	 	
 NUMBER	
 	
 	
 	
 	
 	
 	
 HOST	
 	
 	
 	
 	
 	
 	
 	
 ADDRESS	 	 	
 INSTALLATION	
 
	
 	
 	
 ------	 	 	 	
 ----	 	 	 	
 ------	
 	
 	
 	
 	
 	
 	
 ----	
 	
 	
 	
 	
 	
 	
 	
 -------	 	 	
 ------------	
 
	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 UCLA	
 	
 	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 SIGMA-7	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 IBM	
 360/91	
 	
 	
 	
 	
 	
 	
 65	
 
	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 SRI	
 	
 	
 	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 PDP-10	
 (NIC)	
 	
 	
 	
 	
 	
 2	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 PDP-10	
 (Al)	
 	
 	
 	
 	
 	
 66	
 
	
 	
 	
 	
 	
 3	
 	
 	
 	
 	
 	
 	
 UCSB	
 	
 	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 IBM	
 360/75	
 	
 	
 	
 	
 	
 	
 	
 3	
 
	
 	
 	
 	
 	
 4	
 	
 	
 	
 	
 	
 	
 UTAH	
 	
 	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 PDP-lO	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 4	
 
	
 	
 	
 	
 	
 5	
 	
 	
 	
 	
 	
 	
 BBN	
 	
 	
 	
 	
 	
 	
 0	
 	
 	
 	
 	
 	
 	
 DDP-516	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 5	
 	
 )	
 	
 	
 See	
 Note	
 1	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 1	
 	
 	
 	
 	
 	
 	
 PDP-10	
 (A)	
 	
 	
 	
 	
 	
 	
 69	
 	
 )	
 
	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 	
 2	
 	
 	
 	
 	
 	
 	
 PDP-1O	
 (B)	
 	
 	
 	
 	
 	
 133	
 

9
DNS Summer Days 2013 - DNS再⼊入⾨門

IPアドレス• TCP/IPにおけるネットワーク  アドレス
• IPアドレスの記述例例▫ 192.0.2.1▫ 2001:db8:dead:beef:123:4567:89ab:cdef• 数字の羅羅列列であるため覚えにくい▫ ⼈人に優しくない▫ 特にIPv6のアドレスなんて覚えられない。
▫ →ホスト名を使う

2013/07/19

10
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ホスト名• コンピュータを識識別するための名前• ホスト名の例例▫ OFFICE-1▫ SRI-NIC▫ www.example.jp• 通常はIPアドレスの代わりにホスト名を使ってコンピュータにアクセスする

11
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

名前解決• 通常はIPアドレスの代わりにホスト名を使ってコンピュータにアクセスする• 実際はネットワーク上のコンピュータにアクセ
スするにはIPアドレスを使う• ホスト名をIPアドレスに変換する（名前を解決する）仕組みがあればよい• →リゾルバ

12
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

リゾルバ• 名前を解決する仕組み▫ ホスト名に対するIPアドレスを⾒見見つける• OSの機能あるいはライブラリやソフトウェアとして⽤用意されている• OS上で動作するソフトウェアの要求に応じてホスト名に対するIPアドレスを調べてくれる13
DNS Summer Days 2013 - DNS再⼊入⾨門

リゾルバの検索索⽅方法• hostsファイル▫ /etc/hosts▫ C:\Windows\System32\drivers\etc\hosts• DNS▫ 今回のテーマ

2013/07/19

14
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

リゾルバ
ホスト名marsに接続したい

ホスト名marsのIPアドレスを教えて

ソフト
ウェア

リゾルバ

hostsファイルによる名前解決

hosts
ファイル
ネーム
サーバ

IPアドレス192.0.2.4に接続する

ホスト名marsのIPアドレスは192.0.2.4である

DNSによる
名前解決15
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

このセクションのまとめ• リゾルバがホスト名に対応するIPアドレスを⾒見見つけてくれる（名前の解決）▫ hostsファイルやDNSを使う• ネットワーク上のコンピュータにアクセスするために、覚えにくいIPアドレスの代わりにホスト名を使うことができる

16
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

17
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNS（Domain Name System）とは• ドメイン名を⽤用いた階層構造を持つ▫ www.example.jpのような形式• 分散型データベース▫ データベース  サーバ（権威ネームサーバ）が分散して存在している

comexamplejp

example

ns

www

co

18
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNSで扱うデータ• コンピュータやネットワークに関するリソースの情報（ホスト名やIPアドレスなど）▫ ホスト名の名前解決ができる▫ ホスト名とIPアドレス以外のリソースも扱う• リソースレコードという

19
DNS Summer Days 2013 - DNS再⼊入⾨門

DNSで扱うデータ• 主要なリソースレコード▫ ゾーンの権威の開始を⽰示すSOAレコード▫ 権威ネームサーバを⽰示すNSレコード▫ IPアドレスを⽰示すAレコード▫ IPアドレスに対する名前を⽰示すPTRレコード▫ 別名に対する正式名を⽰示すCNAMEレコード

2013/07/19

20
DNS Summer Days 2013 - DNS再⼊入⾨門

DNSのプレイヤー• スタブ  リゾルバ
• フルサービス  リゾルバ

▫ キャッシュ  ネームサーバ▫ キャッシュDNSサーバ▫ DNSキャッシュサーバ▫ キャッシュサーバ• 権威ネームサーバ▫ 権威DNSサーバ▫ DNS権威サーバ▫ コンテンツサーバ▫ 権威サーバ

いろいろな⼈人がいろいろな呼び⽅方をしている。

2013/07/19

21
DNS Summer Days 2013 - DNS再⼊入⾨門

DNSのプレイヤー
やりとりされるリソースの情報をリソース  レコード
という

反復復的に
問い合わせ
を⾏行行う
DNS
メッセージ

www.example.jpのIPアドレスを教えて？

2013/07/19

分散型
データベース
ルートゾーン
の権威サーバjpゾーンの
権威サーバ

www.example.jpのIPアドレスは192.0.2.4

スタブ  リゾルバ

フルサービス  リゾルバ
（キャッシュ  ネームサーバ）

example.jp
ゾーンの
権威サーバ
権威ネームサーバ22
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

本⽇日、学んでもらうことは• DNSの名前空間として、ドメイン名の仕組み• DNSで扱うデータとして、リソースレコード• ゾーンのリソースレコードの集まりを記述する
マスターファイル• DNSの問い合わせや応答で運ばれるDNSメッ
セージ• DNSをハンドリングするリゾルバとネームサーバ

23
DNS Summer Days 2013 - DNS再⼊入⾨門

ここからが本番2013/07/19

24
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNSの構成要素
ゾーン転送

ネームサーバ（権威サーバ）

ネームサーバロード（権威サーバ）マスター
ファイル
ゾーン内のリソース
レコードを記述

メッセージ

メッセージ

ネームサーバ

ドメイン名空間（フルサービス
リゾルバ）
メッセージ

リソースレコードcomjp

example.jp.

IN SOA ns.exampele.jp. ..

example.jp.

IN NS

ns.example.jp. IN A

スタブ
リゾルバ

ドメイン名
exampleexample

co

ゾーン
ns

www

ns.example.jp.
192.0.2.1

タイプ

25
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

参考資料料: DNSの基本仕様のRFC
RFC 1982 / PS
Serial Number Arithmetic
RFC 1034 / STD 13
DOMAIN NAMES CONCEPTS AND
FACILITIESRFC 1035 / STD 13
DOMAIN NAMES IMPLEMENTATION AND
SPECIFICATION

RFC 1123 / STD 3
Requirements for Internet
Hosts -- Application andSupportアップデート参照

RFC 2181 / PS
Clarifications to the DNS
Specification

RFC 2308 / PS
Negative Caching of DNS
Queries (DNS NCACHE)

RFC 3425 / PS
Obsoleting IQUERYRFC 4343 / PS
Domain Name System(DNS) Case Insensitivity
Clarification

RFC 5452 / PS
Measures for Making DNS
More Resilient against
Forged Answers

RFC 5936 / PS
DNS Zone Transfer
Protocol (AXFR)

RFC 5966 / PS
DNS Transport over TCP Implementation
Requirements

26
DNS Summer Days 2013 - DNS再⼊入⾨門

ドメイン名についてもう少し詳しく⾒見見ていこう

2013/07/19

27
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNSの構成要素
ゾーン転送

ネームサーバ（権威サーバ）

ネームサーバロード（権威サーバ）マスター
ファイル
ゾーン内のリソース
レコードを記述

メッセージ

メッセージ

ネームサーバ

ドメイン名空間（フルサービス
リゾルバ）
メッセージ

リソースレコードcomjp

example.jp.

IN SOA ns.exampele.jp. ..

example.jp.

IN NS

ns.example.jp. IN A

スタブ
リゾルバ

ドメイン名
exampleexample

co

ゾーン
ns

www

ns.example.jp.
192.0.2.1

タイプ

28
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ドメイン名空間の構造• ドメイン名空間はツリー構造• 各ノードとリーフはリソースの集まりに対応している• 内部ノードとリーフノードを区別しない。両⽅方とも「ノード」と呼ぶ。

ルート
ノード

com

jp

ノード
exampleexample

ns

リーフ
ノード

co

www

リソース
リソース
リソース

29
DNS Summer Days 2013 - DNS再⼊入⾨門

ラベル• 各ノードはラベルを持つ。
• ルートのためにnullラベル（⻑⾧長さ0）が予約されている。

2013/07/19

ルート
ノード
””

ラベル
"com"

com

examplejp

example

ns

www

co

30
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ドメイン名• ノードのドメイン名はそのノードからルートノードまでのパス
上のラベルのリスト▫ 例例) "www", "example", "jp", ""com

examplejp

example

ns

www

co

31
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ドメイン名の内部表現• ラベルはオクテットの⻑⾧長さと⽂文字列列で表される。
▫ "www"の内部表現を16進数で表すと
3 77 77 77

32
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ドメイン名の内部表現• ドメイン名はラベルをつなげたもの• すべてのドメイン名はルートで終わり、ルートのラベルはnull⽂文字であるため、内部表現はドメイン名の終わりに0バイトの⻑⾧長さを使う。
▫ www.example.jp.の内部表現
3 77 77 77 7 65 78 61 6d 70 6c
65 2 6a 70 0com

examplejp

example

ns

www

co

33
DNS Summer Days 2013 - DNS再⼊入⾨門

ドメイン名のテキスト表現

2013/07/19

ルート
ノード
””

• ラベルの⻑⾧長さを省省き、ラベルを"."で分ける。
▫ 例例）www.example.jp.

• ドメイン名はルート（空の）ラベ
ルで終わるため、ドットで終わる形式になる。
▫ 例例）www.example.jp."空のラベル（⾮非表⽰示）"com

examplejp

example

ns

www

co

34
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

絶対ドメイン名と相対ドメイン名• 絶対ドメイン名

www.example.jp.
絶対ドメイン名▫ "www.example.jp."のようにドットで終わるドメイン名• 相対ドメイン名▫ 親のドメイン名に対して相対的に表したドメイン名▫ "www" は親ドメイン名"example.jp."に対する相対ドメ
イン名

com

examplejp

examplens

www
相対ドメイン名

www

co

35
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

絶対ドメイン名• DNS関連の設定では原則として絶対ドメイン名を使う▫ マスターファイル

example.jp. IN NS ns.example.jp.

▫ 相対ドメイン名の⽅方がわかりやすい場合もある$ORIGIN example.jp.
www
IN A 192.0.2.4• 最後に"."が付いていないと相対ドメイン名として扱われてしまう▫ 最後に"."を付け忘れると

example.jp. IN NS ns.example.jp▫ 次のように解釈される

example.jp. IN NS ns.example.jp.example.jp

36
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

絶対ドメイン名• digなどのDNS関連のツールの場合も絶対ドメイ
ン名を使う。
▫ dig www.example.jp. A

37
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

相対ドメイン名• pingを実⾏行行したときに、相対ドメイン名だけで名前解決をしてくれる場合がある▫ リゾルバで検索索リストにより親ドメインを補完してくれるから• ゾーンファイルを記述するときもオリジンに対する相対ドメイン名で記述できる▫ $ORIGIN example.jp.
www IN A 192.0.2.4

38
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

検索索リスト• リゾルバの機能で、相対ドメイン名に対する親ドメイン名を補完するためのドメイン名のリス
ト▫ /etc/resolv.confの"domain"と"search"domain example.jp
nameserver 192.0.2.1
nameserver 192.0.2.2

39
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

検索索リスト• ルート"."は暗黙の検索索リストのメンバー▫ "example.jp"は最終的には"example.jp."と解釈される。
▫ そのため、実際にはアプリケーションに対して"example.jp"のように記述して使うことができる。
 →FQDN（後述します）

40
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ルートドメイン、TLD、SLD• 各ノードはノードの階層の深さによって呼び名が付く
ルート  ドメイン

org

net

com

examplejpkrexample

ns

www

co

トップ  レベル  ドメイン(TLD)

セカンド  レベル  ドメイン(SLD)41
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

完全修飾ドメイン名(FQDN)• トップレベルドメインまでのすべてのラベルを含んだドメイン名を完全修飾ドメイン名（Fully Qualified Domain Name、
略略称FQDN）と呼ぶ▫ 例例: "www.example.jp"

com

examplejp

example

ns

www

co

42
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

完全修飾ドメイン名(FQDN)• ソフトウェアがドメイン名を扱うときにはFQDNを⽤用いる• ソフトウェアにドメイン名を設定/⼊入⼒力力するときにはFQDNを⼊入⼒力力する• ルートドメインに対する相対ドメイン名と考えるとよい▫ 検索索リストのメンバーとしてルート"."が解釈されるため

43
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

サブドメイン• あるドメインに所属しているドメ
インをサブドメインと呼ぶ• ルートドメインのサブドメイン
▫ com
▫ jp

• "jp"ドメインのサブドメイン▫ co.jp▫ example.jp▫ www.example.jp

com

examplejp

example

ns

www

co

44
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

サブドメイン• サブドメインの側から⾒見見ると、"www.example.jp"は次のドメ
インのサブドメイン▫ example.jp▫ jp▫ ルートドメイン

com

examplejp

example

ns

www

co

45
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ドメイン名のラベルの規則• ホスト名の規則（RFC 952, RFC 1123）に従う▫ 英⽂文字あるいは数字で始まる▫ 英⽂文字あるいは数字で終わる▫ 間の⽂文字は英⽂文字、数字、ハイフンが使える

46
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ドメイン名のラベルの規則• 0オクテット以上63オクテット以下の⽂文字列列である▫ 0オクテットはルートドメインの空ラベルとして予約• 兄弟ノードでは同じラベルを使⽤用できない• ルートドメインは次の規則に従う▫ 0オクテットの空のラベルである▫ "."と表すことがある

47
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ドメイン名のラベルの規則• ホスト名の規則に従わないケース▫ プロトコル上はどの8bitコードも許容されている▫ ホスト名のラベルとの衝突を防ぐために"_"で始まるものがある RFC 2782 "A DNS RR for specifying the locationof services (DNS SRV)" _ldap._tcp.example.com.

 RFC 6376 DomainKeys Identified Mail (DKIM)
Signatures foo.bar._domainkey.example.com.

48
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ドメイン名とホスト名の⻑⾧長さ• 絶対ドメイン名は255オクテット以下に制限されている▫ FQDNとして扱える⽂文字数はルートドメインの空
ラベル分を除いて253⽂文字以下になる• RFC 1123

▫ ソフトウェアは63⽂文字までのホスト名を扱えなければならない（MUST）▫ 255⽂文字までのホスト名を扱うべき（SHOULD）▫ ネットワーク関連のソフトウェアの開発者はこの点に注意を払う必要がある

49
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

⼤大⽂文字⼩小⽂文字の取り扱い• ⼤大⽂文字⼩小⽂文字の区別▫ ラベルやドメイン名などの⽐比較の際には⼤大⽂文字⼩小
⽂文字を区別しない。

• ⼤大⽂文字⼩小⽂文字の維持▫ 可能な限り⼤大⽂文字⼩小⽂文字を維持する。

参考
RFC 4343 "Domain Name System (DNS) Case Insensitivity Clarification"

50
DNS Summer Days 2013 - DNS再⼊入⾨門

このセクションのまとめ• ドメインの階層構造• ルートドメイン、TLD、SLD• 絶対ドメイン名• 相対ドメイン名• 完全修飾ドメイン名（FQDN）• ドメイン名のラベルの規則• ドメイン名とホスト名の⻑⾧長さ

2013/07/19

51
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

52
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNSの構成要素
ゾーン転送

ネームサーバ（権威サーバ）

ネームサーバロード（権威サーバ）マスター
ファイル
ゾーン内のリソース
レコードを記述

メッセージ

メッセージ

ネームサーバ

ドメイン名空間（フルサービス
リゾルバ）
メッセージ

リソースレコードcomjp

example.jp.

IN SOA ns.exampele.jp. ..

example.jp.

IN NS

ns.example.jp. IN A

スタブ
リゾルバ

ドメイン名
exampleexample

co

ゾーン
ns

www

ns.example.jp.
192.0.2.1

タイプ

53
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ゾーン• ドメインを管理理する単位をゾーンと呼ぶ• "example.jp"ゾーンはexample.jp
をゾーンの頂点とするツリーを管
理理する

com

exampleゾーンの頂点(zone apex)jpexample

ns

www

co

54
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ゾーンと権威• ネームサーバがそのゾーンを管理理できる正式な権限を持っているときには、ネー
ムサーバはそのゾーンに対する権威（authority）となる• 権威を持つネームサーバを権威ネームサーバ（authoritative nameserver）と呼ぶ

example.jp.
ゾーン

com

examplejp

examplens

wwwexample.jp.ゾーンの権威ネームサーバ
ns.example.jp.はexample.jp.ゾーンに対して権威を持っているco55
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ゾーンの分割• 各ドメインのゾーンはサ
ブドメインのゾーンを分割することができる• "example.jp"ドメインのサブドメインであexample.jp.
ゾーンる"sub.example.jp"を別ゾーンの分割のゾーン（サブゾーン）
として分割することがで sub.example.jp.
ゾーン
きる

com

examplejp

example

sub

ns

ns

www

co

www

56
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

権威の委任• この分割されたゾーンを管理理する
正式な権限を他のネームサーバに譲ることを権威の委任と呼ぶ

com

example.jp.
ゾーン

exampleゾーンの分割
sub.example.jp.
ゾーンjp

example

sub

ns

ns

www

co

www

example.jp.
ゾーンの
権威サーバ
権威の委任
sub.example.jp.
ゾーンの
権威サーバ

57
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

権威の委任• 権威を委任する側を親ゾーン、• 委任される側を⼦子ゾーン、• ゾーンを分割している場所をゾーン分割
場所（zone cut）と
呼ぶ

com

親ゾーン
example.jp.
ゾーン

exampleゾーンの分割⼦子ゾーン
sub.example.jp.
ゾーンjp

example

sub

ns

ns

www

co

www

ゾーン分割場所(zone cut)

58
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

権威の委任• ゾーン分割場所（zone cut）のドメイン名に対してグルー（glue）RRsを登録する。

▫ 親ゾーンは⼦子ゾーンの権威ネームサーバのNSレコー
ドとAレコードを登録する▫ ⼦子ゾーンは⾃自⾝身のゾーンのSOAレコードとNSレコー
ドとAレコードを登録する。

59
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

権威の委任のためのRRsの記述例例• 親ゾーン example.jp.

sub.example.jp.
IN NS ns.sub.example.jp.
ns.sub.example.jp. IN A 192.0.2.4• ⼦子ゾーン sub.example.jp.
@ns

IN SOA ns hostmaster 2013071901 3600 900 604800 900
IN NS ns.sub.example.jp.
IN A
192.0.2.4

60
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ゾーンの分割や権威の委任に関するよくある注意点• サブドメイン毎にゾーンを分割しなければいけないわけではない▫ 同じサーバで運⽤用するのであれば分割する必要はない▫ 次のような書き⽅方もできる
 www.sub

IN A

192.0.2.4

61
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

分散管理理• DNSはルートゾーンから下位のゾーンに対して権威を委任することにより、分散管理理が成り⽴立立っている▫ ルートゾーン→TLDのゾーン▫ TLDのゾーン→SLDのゾーン▫ TLD,SLDのゾーン→各組織のドメインのゾーン• この分散管理理を⾏行行う主要な組織について説明する62
DNS Summer Days 2013 - DNS再⼊入⾨門

ドメイン名の管理理組織• IANAとICANN• レジストリ• レジストラ• 個⼈人や組織

2013/07/19

63
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

IANA• IANA▫ Internet Assigned Numbers Authority▫ "アイアナ"と読む• DNSのルートゾーンの管理理を⾏行行っている組織• DNSのルートドメインの管理理、IPアドレスやAS
番号の調整、プロトコルの名前や番号の管理理などを⾏行行っている• INTドメインとARPAドメインのゾーンの管理理も⾏行行っている

64
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

IANAとICANN• IANA⾃自体はARPANET時代から運⽤用されていた• 1998年年にICANN（Internet Corporation for
Assigned Names and Numbers、読みは"アイキャン"）が⺠民間の⾮非営利利法⼈人として設⽴立立• IANAの業務はICANNに移管され、IANAはICANNの実⾏行行部⾨門として組み込まれた65
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

レジストリ• 各トップレベルドメインのゾーンの管理理はレジストリと呼ばれる組織により⾏行行われている• 各レジストリはICANNとの契約に基づき、委任されたトップレベルドメインのゾーンを⼀一元的に管理理する• 例例▫ JPドメインのレジストリは「株式会社⽇日本レジス
トリサービス」（略略称JPRS）

66
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

レジストラ• 個⼈人や組織などからのドメインの登録申請の依頼に対して、レジストリに登録申請する仲介業者

67
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

個⼈人や組織• 個⼈人や組織がドメインの登録申請を⾏行行うときには、レジストラに登録申請の仲介を依頼する• ドメインの登録が⾏行行われたら、運⽤用管理理しているネームサーバにそのドメインのゾーンの登録
を⾏行行い、ドメインの運⽤用を⾏行行う68
DNS Summer Days 2013 - DNS再⼊入⾨門

ドメイン名を管理理する組織

2013/07/19

69
DNS Summer Days 2013 - DNS再⼊入⾨門

トップ  レベル  ドメイン• トップ  レベル  ドメインの分類▫ ジェネリック  トップ  レベル  ドメイン
 generic top-level domain、略略称gTLD▫ 国コード  トップ  レベル  ドメイン

 country-code top-level domain、略略称ccTLD▫ 予約済みトップ  レベル  ドメイン

2013/07/19

70
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ジェネリック  トップレベル  ドメイン  (gTLD)
ドメイン名 ⽤用途
ARPA
インターネットのインフラのための	
ドメイン名空間
BIZ
ビジネス
COM
商⽤用の組織向け。現在は制限なし。
INFO
情報提供。現在は制限なし。
NAME
個⼈人名
NET
ネットワーク・プロバイダ向け。
現在は制限なし。
ORG
その他の組織向け。現在は制限なし。
PRO
有資格の専⾨門職（弁護⼠士、公認会計⼠士、医師等）

タイプ
インフラストラクチャ
制限あり
制限なし
制限なし
制限あり
制限なし
制限なし
制限あり

71
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ジェネリック  トップレベル  ドメイン  (gTLD)
ドメイン名
AERO
ASIA
CAT
COOP
EDU
GOV
INT
JOBS
MIL
MOBI
MUSEUMTELTRAVEL
XXX

⽤用途
航空運輸業界アジア太平洋地域
カタルーニャ⾔言語・⽂文化圏
協同組合
アメリカ合衆国の4年年制⼤大学
アメリカ合衆国の（連邦）政府機関
国際条約に基づいて設⽴立立された組織
⼈人的資源
アメリカ合衆国軍
モバイル機器・サービス
博物館・美術館
テレコミュニケーション
旅⾏行行業界アダルト

タイプ
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き
スポンサー付き

72
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

国コード  トップ  レベルド  メイン  (ccTLD)
ドメイン名
BR	
CA	
CN	
DE	
EU	
FR	
IN	
IT	
JP
KR	
RU	
UK	
US	

国名／地域
ブラジル
カナダ
中国
ドイツ
欧州連合
フランス
インド
イタリア
⽇日本
韓国
ロシア
イギリス
アメリカ合衆国

73
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

国コード  トップ  レベルド  メイン  (ccTLD)
ドメイン名
国名／地域
中国, 中國	中国(CN)⾹香港	
⾹香港(HK)台湾, 台灣	
台湾(TW)
한국	
韓国(KR)
ไทย	
タイ(TH)
ভারত, !ర#, ભારત, भारत, ‫بھارت‬, ਭਾਰਤ, இந்தியா	 インド(IN)சிங்கப்பூர், 新加坡	
シンガポール(SG)РФ	ロシア連邦(RU)ලංකා	
スリランカ(LK)УКР
ウクライナ(UA)‫اﻟﺴﻌﻮدﻳﺔ‬
サウジアラビア(SA)74
DNS Summer Days 2013 - DNS再⼊入⾨門

予約済みトップレベルドメイン
ドメイン名
test
exampleinvalid
localhost
local

⽤用途
DNS関連のコードのテスト⽤用
例例⽰示⽤用不不正なドメイン名の例例⽰示⽤用
ループバック⽤用
リンクローカル⽤用

参考
RFC 2606 Reserved Top Level DNS Names
RFC 6761 Special-Use Domain Names
RFC 6762 Multicast DNS

2013/07/19

75
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

評価⽤用  国際化  トップ  レベル  ドメイン  
ドメイン名
ラベル
⾔言語/⽂文字	‫إﺧﺘﺒﺎر‬XN--KGBECHTV	
アラビア語/アラビア⽂文字	‫ﺸﯽ‬4‫آزﻣﺎ‬XN--HGBK6AJ7F53BBA	
 ペルシャ語/アラビア⽂文字
XN--0ZWM56D	
中国語/簡体字
测试XN--G6W251D	
中国語/繁体字
測試	испытание XN--80AKHBYKNJ4F	
ロシア語/キリル⽂文字
परी'ा
XN--11B5BS3A9AJ6G	
 ヒンディー語/ディーヴァナーガリーδοκιµήXN--JXALPDLP	ギリシア語/ギリシア⽂文字테스트	  XN--9T4B11YI5A	
朝鮮語/ハングル	‫טעסט‬XN--DEBA0AD	
イディッシュ語/ヘブライ⽂文字テスト
XN--ZCKZAH	
⽇日本語/⽚片仮名பரிட்ைச
XN--HLCJ6AYA9ESC7A	
 タミル語/タミル⽂文字

76
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ARPAドメイン• "ARPA"の経緯▫ "ARPA"というドメイン名は"ARPANET"を由来とす
る▫ HOSTS.TXTからDNSへの移⾏行行時にARPANETの各ホストを⼀一時的に格納するドメイン名空間▫ IPアドレスからホスト名を逆引きするときに使うドメイン名空間"IN-ADDR.ARPA"77
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ARPAドメイン• 現在▫ インターネットのインフラのためのドメイン名空間 E164.ARPA, IN-ADDR.ARPA, IP6.ARPA,
IRIS.ARPA, URI.ARPA, URN.ARPA▫ "ARPA"は"Address and Routing Parameter
Area"の略略語に再定義 RFC 3172 Management Guidelines & Operational
Requirements for the Address and Routing
Parameter Area Domain ("arpa")

78
DNS Summer Days 2013 - DNS再⼊入⾨門

このセクションのまとめ• ゾーン• ゾーンの分割と権威の委任• ドメイン名の管理理組織• トップレベルドメイン• ARPAドメイン

2013/07/19

79
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

リソースレコードの意味と記述⽅方法について理理解してもらう。

80
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNSの構成要素
ゾーン転送

ネームサーバ（権威サーバ）

ネームサーバロード（権威サーバ）マスター
ファイル
ゾーン内のリソース
レコードを記述

メッセージ

メッセージ

ネームサーバ

ドメイン名空間（フルサービス
リゾルバ）
メッセージ

リソースレコードcomjp

example.jp.

IN SOA ns.exampele.jp. ..

example.jp.

IN NS

ns.example.jp. IN A

スタブ
リゾルバ

ドメイン名
exampleexample

co

ゾーン
ns

www

ns.example.jp.
192.0.2.1

タイプ

81
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

リソースレコードとは• ホスト名やIPアドレスといった資源に関するデータをリソースレコードという• RRと略略す• 同じドメイン名とリソースタイプの集まりをリソース  レコード  セットと呼び、RRsetと略略す

82
DNS Summer Days 2013 - DNS再⼊入⾨門

リソースレコードの形式• 形式▫ OWNER TTL CLASS TYPE RDATA• 例例▫ www.example.jp. 3600 IN A 192.0.2.1

2013/07/19

83
DNS Summer Days 2013 - DNS再⼊入⾨門

リソースレコードの形式• OWNER TTL CLASS TYPE RDATA▫ www.example.jp. 3600 IN A 192.0.2.1• OWNER（オーナー）▫ このリソースレコードがあるドメイン名

2013/07/19

84
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

リソースレコードの形式• OWNER TTL CLASS TYPE RDATA▫ www.example.jp. 3600 IN A 192.0.2.1• TTL（⽣生存期間）▫ リソースレコードの⽣生存期間。秒単位の32ビット整数。
▫ リゾルバがキャッシュするときに使う。TTLはRRが破棄されるまでにキャッシュしてよい期間を⽰示す。
▫ 値の定義 符号無し整数
 最⼩小値: 0 （0はキャッシュ禁⽌止を表す）
 最⼤大値: 2147483647 (2^31 ー 1) 最上位ビットが1であるときにはTTLを0と扱うべき▫ 参考: RFC 2181 Clarifications to the DNS
Specification "8. Time to Live (TTL)"85
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

リソースレコードの形式• OWNER TTL CLASS TYPE RDATA▫ www.example.jp. 3600 IN A 192.0.2.1• CLASS（クラス）▫ プロトコルファミリーを識識別する符号化された16ビットの数▫ テキスト表現としてはニーモニックが使われる
ニーモニック 値

説明IN

1 Internet

CH

3 Chaos

HS

4 Hesiod

本来の⽤用途とは異異なり、現在はネーム
サーバの情報の取得に使われている。
$ dig version.bind. TXT CH86
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

リソースレコードの形式• OWNER TTL CLASS TYPE RDATA▫ www.example.jp. 3600 IN A 192.0.2.1• TYPE（タイプ）▫ このリソースレコードのリソースのタイプを識識別する符号化された16ビットの値。
▫ テキスト表現としてはニーモニックが使われる
 A, CNAME, MX, NS, PTR, SOA, TXT

87
DNS Summer Days 2013 - DNS再⼊入⾨門

主要なタイプとニーモニック
ニーモニック値

説明A

1 IPv4のIPアドレス

NS

2 ゾーンの権威ネームサーバ

CNAME

5 別名に対する正式名

SOA

6 ゾーンの権威の開始

PTR

12 IPアドレスに対するホスト名を⽰示すポインタMX

15 メールの送信先

TXT

16 テキスト

AAAA

28 IPv6のIPアドレス

2013/07/19

88
DNS Summer Days 2013 - DNS再⼊入⾨門

リソースレコードの形式• OWNER TTL CLASS TYPE RDATA▫ www.example.jp. 3600 IN A 192.0.2.1• RDATA（資源データ）▫ タイプとクラスに依存するデータ

2013/07/19

89
DNS Summer Days 2013 - DNS再⼊入⾨門

主要なタイプ（再掲）
ニーモニック値

説明A

1 IPv4のIPアドレス

NS

2 ゾーンの権威ネームサーバ

CNAME

5 別名に対する正式名

SOA

6 ゾーンの権威の開始

PTR

12 IPアドレスに対するホスト名を⽰示すポインタMX

15 メールの送信先

TXT

16 テキスト

AAAA

28 IPv6のIPアドレス

2013/07/19

90
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

SOA (Start Of Authority)• ゾーンの権威の開始• ゾーンそのものについての情報を記載する• セカンダリ  ネームサーバへのゾーン転送はこのRRで設定した値に基づいて動作する

91
DNS Summer Days 2013 - DNS再⼊入⾨門

SOAの記述⽅方法• OWNER TTL IN SOA MNAME RNAME (SERIALREFRESHRETRY
EXPIREMINIMUM )• OWNER▫ ゾーン名2013/07/19

92
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

SOAの記述⽅方法• MNAME▫ このゾーンのデータのオリジナルあるいはプライマリ（プライマリ  マスター）であるネームサーバーのドメイン名。
▫ プライマリ  マスター ゾーン転送におけるNOTIFYの送信元
 DNS UPDATEのリクエスト先▫ RFC 2181 Clarifications to the DNS Specification"7.3. The SOA.MNAME field"
 SOAレコードのMNAMEフィールドはゾーンのマスター
サーバの名前を設定する。
 ゾーン⾃自体の名前を書くべきではない。

93
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

SOAの記述⽅方法• RNAME▫ このゾーンの責任者のメールアドレス。
▫ メールアドレスの"@"を"."に置き換える。

 例例）"foo@example.com"は"foo.example.com."に。

94
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

SOAの記述⽅方法• SERIAL（シリアル値）▫ ゾーンのオリジナルコピーの符号無し32ビットバー
ジョン番号。ゾーン転送はこの値を維持する。
▫ この値は周回し、sequence space arithmeticを使って⽐比較する。

 RFC 1982 Serial Number Arithmeticで⽐比較について詳細な説明がある。

• REFRESH（更更新）▫ セカンダリ  ネームサーバがプライマリ  ネームサーバに更更新を確認する間隔• RETRY（再試⾏行行）▫ セカンダリ  ネームサーバが更更新に失敗した後に再試⾏行行する間隔

95
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

SOAの記述⽅方法• EXPIRE（満期）▫ セカンダリ  ネームサーバが更更新できないときに、データを期限切切れにするまでの上限値• MINIMUM（最⼩小）▫ 元々の意味はこのゾーンのRRに適応される最⼩小のTTL▫ RFC 2308 "Negative Caching of DNS Queries(DNS NCACHE)"により再定義され、現在はネガ
ティブキャッシュ（存在しないことのキャッシュ）のTTLとして使われている

96
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

SOAの記述例例• 記述例例

example.jp. IN SOA ns.example.jp. hostmaster.example.jp. (2013071901 ;serial
3600;refresh600;retry604800;expire900 );minimum• 記述例例の説明▫ プライマリ  ネームサーバは"ns.example.jp."▫ 責任者のメールアドレスは"hostmaster@example.jp"

97
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

NS (Name Server)• ゾーンの権威ネームサーバ• NSレコードの値には正式名を記述する▫ CNAMEで定義される別名を使ってはいけない。

98
DNS Summer Days 2013 - DNS再⼊入⾨門

NSの記述⽅方法• OWNER TTL IN NS NSDNAME▫ NSDNAME（ネームサーバの名前）
 ゾーンの権威ネームサーバのドメイン名• 記述例例

example.jp. 86400 IN NS ns.example.jp.

• 記述例例の説明▫ ゾーン"example.jp."の権威ネームサーバ
は"ns.example.jp."である。

2013/07/19

99
DNS Summer Days 2013 - DNS再⼊入⾨門

A (Address)• IPv4のIPアドレス

2013/07/19

100
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

Aの記述⽅方法• OWNER TTL IN A ADDRESS▫ ADDRESS（アドレス）
 IPv4のIPアドレスをドット付き10進記法で記述する• 記述例例

www.example.jp. 86400 IN A 192.0.2.1

101
DNS Summer Days 2013 - DNS再⼊入⾨門

AAAA• IPv6のIPアドレスを記述する• 「クワッド  エイ」と読む

2013/07/19

102
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

AAAAの記述⽅方法• OWNER TTL IN AAAA ADDRESS▫ ADDRESS
 IPv6のIPアドレス• 記述例例

www.example.jp. 86400 IN AAAA 2001:db8:dead:beef::1• 記述例例の説明▫ www.example.jp.のIPv6アドレス
は"2001:db8:dead:beef::1"である

103
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

CNAME (Canonical Name)• 別名に対する正式名を指定する• 別名を定義するために使われる。
• 制限▫ CNAMEで定義した別名をNSやMXなどのデータには利利⽤用してはいけない

104
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

CNAMEの記述例例• OWNER TTL IN CNAME CNAME▫ CNAME 別名に対する正式名を記述する• 記述例例

foo.example.jp. IN A
192.0.2.1
www.example.jp. IN CNAME foo.example.jp.

• 記述例例の説明▫ "foo.example.jp."の別名として"www.example.jp."を定義する。

105
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

PTR (Pointer)• IPアドレスに対するホスト名を⽰示すポインタ• 逆引き（IPアドレスからホスト名を求める）のために使われる

106
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

PTR (Pointer)のIPアドレスの表記• IPv4アドレスはIPアドレスを逆の順番にしてinaddr.arpa.を付ける▫ 192.0.2.1の表記
 1.2.0.192.in-addr.arpa.

• IPv6アドレスはIPアドレスを逆の順番にして、
ip6.arap.を付ける▫ 2001:db8:dead:beef::1の表記
 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.e.e.b.d.a.e.d.
8.b.d.0.1.0.0.2.ip6.arpa.

107
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

PTRの記述⽅方法• OWNER TTL IN PTR PTRDNAME▫ OWNER in-addr.arpa.やip6.arpa.の名前空間でのIPアドレスの表記▫ PTRDNAME

 IPアドレスに対するドメイン名

108
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

PTRの記述例例• IPv4の場合の記述例例▫ 1.2.0.192.in-addr.arpa. IN PTR www.example.jp.

▫ IPアドレス"192.0.2.1"のホスト名
は"www.example.jp."である。

• IPv6の場合の記述例例▫ 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.f.e.e.b.d.a.e.d.
8.b.d.0.1.0.0.2.ip6.arpa. IN PTR www.example.jp.

▫ IPv6アドレス"2001:db8:dead:beef::1"のホスト
名は"www.example.jp."である。

109
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

PTR (Pointer)• 制限▫ PTRレコードのデータにはCNAMEで定義される
別名を使ってはいけない• よくある間違い▫ 誤: ⼀一つのIPアドレスに対してPTRレコードは⼀一つだけしか記述できない▫ 正: ⼀一つのIPアドレスに対して複数のPTRレコー
ドを記述できる

110
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

MX (Mail Exchanger)• メールの送信先• 制限▫ MXレコードの値にはCNAMEで定義される別名を使ってはいけない。

111
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

MXの記述⽅方法• OWNER TTL IN MX PREFERENCE EXCHANGE▫ OWNER メールの宛先メールアドレスのドメイン名▫ PREFERENCE

 優先度度を⽰示す数値
 ⼩小さい⽅方が優先度度が⾼高い▫ EXCHANGE

 所有者名のドメイン名に対するメールの送信先のサーバのドメイン名

112
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

MXの記述例例• 記述例例

example.jp. IN MX 10 mx1.example.jp.
IN MX 20 mx2.example.jp.

• 記述例例の説明▫ example.jp.ドメイン宛のメールの送信先のメール
サーバはmx1.example.jp.とmx2.example.jp.である▫ mx1.example.jp.の優先度度が⾼高い113
DNS Summer Days 2013 - DNS再⼊入⾨門

TXT (Text)• テキスト• 任意の⽂文字列列を記述できる• 様々な⽬目的で利利⽤用される▫ SPF▫ DKIM▫ RBL

2013/07/19

114
DNS Summer Days 2013 - DNS再⼊入⾨門

TXTの記述⽅方法• OWNER TTL IN TXT TXT-DATA▫ TXT-DATA
 ⼀一つ以上の⽂文字• 記述例例▫ example.jp. IN TXT "nullpo. ga."

2013/07/19

115
DNS Summer Days 2013 - DNS再⼊入⾨門

このセクションのまとめ• リソースレコード• 各タイプのリソースレコードについての説明▫ SOA, NS, A, AAAA, CNAME, PTR, MX, TXT

2013/07/19

116
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

117
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNSの構成要素
ゾーン転送

ネームサーバ（権威サーバ）

ネームサーバロード（権威サーバ）マスター
ファイル
ゾーン内のリソース
レコードを記述

メッセージ

メッセージ

ネームサーバ

ドメイン名空間（フルサービス
リゾルバ）
メッセージ

リソースレコードcomjp

example.jp.

IN SOA ns.exampele.jp. ..

example.jp.

IN NS

ns.example.jp. IN A

スタブ
リゾルバ

ドメイン名
exampleexample

co

ゾーン
ns

www

ns.example.jp.
192.0.2.1

タイプ

118
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

マスターファイル
• マスターファイルはゾーンのリソースレコードの集まりを記述したテキストファイル• ゾーンファイルとも呼ばれる。
• 権威ネームサーバはこのマスターファイルをロードしてサービスを提供する。

119
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

マスターファイルの記述例例$ORIGIN example.jp.
$TTL 86400@
IN SOA ns.example.jp. hostmaster.example.jp. (2011061801 ; Serial
3600; Refresh
900; Retry604800; Expire
3600 ); Minimum
IN NS ns.example.jp.
IN MX 10 mx.example.jp.
IN A
192.0.2.2
ns
IN A
192.0.2.1
www IN A
192.0.2.2
mx
IN A
192.0.2.3

120
DNS Summer Days 2013 - DNS再⼊入⾨門

マスターファイルの形式• ";"はコメントの開始を意味する。
• 空⾏行行は無視される。

2013/07/19

121
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

マスターファイルの形式• 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.

122
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

マスターファイルの形式• $ORIGIN ドメイン名▫ オリジンを指定したドメイン名に変更更する。

 オリジンは相対ドメイン名を補完するドメイン名• $INCLUDE ファイル名▫ この場所に指定したファイル名のファイルを挿⼊入する。
▫ 挿⼊入されたファイルにより親ファイルのオリジンには影響を与えない。

• $TTL TTL▫ デフォルトのTTLを指定した値に変更更する。

123
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

マスターファイルの形式• TTLとクラス"IN"は省省略略可能。TTLを省省略略する$TTLで定義した値になる。
example.com. NS a.iana-servers.net.

• "@"はオリジン（相対ドメイン名を補完するドメ
イン名）を意味する。オリジンのデフォルトはゾーン頂点のドメイン名。
example.com.ゾーンの次の２⾏行行は同じ意味になる。
example.com. 172800 IN NS a.iana-servers.net.
@
172800 IN NS b.iana-servers.net.

124
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

マスターファイルの記述例例$ORIGIN example.jp.
$TTL 86400@
IN SOA ns.example.jp. hostmaster.example.jp. (2011061801 ; Serial
3600; Refresh
900; Retry604800; Expire
3600 ); Minimum
IN NS ns.example.jp.
IN MX 10 mx.example.jp.
IN A
192.0.2.2
ns
IN A
192.0.2.1
www IN A
192.0.2.2
mx
IN A
192.0.2.3

125
DNS Summer Days 2013 - DNS再⼊入⾨門

このセクションのまとめ• マスターファイルの記述⽅方法

2013/07/19

126
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

127
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNSの構成要素
ゾーン転送

ネームサーバ（権威サーバ）

ネームサーバロード（権威サーバ）マスター
ファイル
ゾーン内のリソース
レコードを記述

メッセージ

メッセージ

ネームサーバ

ドメイン名空間（フルサービス
リゾルバ）
メッセージ

リソースレコードcomjp

example.jp.

IN SOA ns.exampele.jp. ..

example.jp.

IN NS

ns.example.jp. IN A

スタブ
リゾルバ

ドメイン名
exampleexample

co

ゾーン
ns

www

ns.example.jp.
192.0.2.1

タイプ

128
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNSメッセージ• DNSの問い合わせと応答はDNSメッセージで運ばれる。
• DNSメッセージのサイズ▫ UDPメッセージは512オクテット以下に制限される。
▫ TCPでは512オクテット以上のメッセージを送ることができる。
▫ EDNS0を使うと、UDPで512オクテットより⼤大きいメッセージを送ることができる。

129
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

メッセージフォーマット
• ヘッダセクションとリソースレコードを扱う４
つのセクションから成り⽴立立つ$ dig @ns.example.jp. example.jp. +norec

HEADERQUESTIONANSWERAUTHORITY
ADDITIONAL; <<>> DiG 9.8.3-P1 <<>> @ns.example.jp. example.jp.
; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37953;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2;; QUESTION SECTION:;example.jp.

IN

A

3600

IN

A

192.0.2.4;; AUTHORITY SECTION:
example.jp.
86400
example.jp.
86400

IN
IN

NS
NS

ns.example.jp.
ns2.example.jp.

;; ADDITIONAL SECTION:
ns.example.jp.
86400
ns2.example.jp.
86400

IN
IN

A
A

192.0.2.1
192.0.2.2;; ANSWER SECTION:
example.jp.

130
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

セクション
セクション

説明

HEADER

いくつかの固定フィールドと問い合わせパラメータ

QUESTION

問い合わせ名と他の問い合わせパラメータ

ANSWER

回答のRR

AUTHORITY

他の権威サーバーを⽰示すRR。
ANSWERセクションの権威データのSOA RRでもよい。

ADDITIONAL

他のセクションのRRを使う際に役に⽴立立つかもしれないRR131
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

ヘッダ  セクション  フォーマット
0

1

2

3

4

5

6

7

8

9

10 11

AA TC RD RA

Z

AD CD

12

13 14

ID
QR

OPCODEQDCOUNTANCOUNTNSCOUNTARCOUNT

RCODE

15

132
DNS Summer Days 2013 - DNS再⼊入⾨門

項⽬目

説明

ID

16ビットの識識別⼦子。

QR

Query(0)かResponse(1)かを⽰示す1ビット
0: Query
1: Response

OPCODE

問い合わせの種類を⽰示す4ビット。
0: Query
2: Status
4: Notify
5: Update2013/07/19

133
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

項⽬目

説明

AA

Authoritative Answer対応したネームサーバがQUESTIONセクションのドメイン名に対する権威を持っているかを⽰示す。

TC

TrunCation
メッセージが⼤大きくて切切り詰められたことを⽰示す。

RD

Recursion Desired
ネームサーバに再帰検索索要求であることを指⽰示する。

RA

Recursion Available
ネームサーバが再帰検索索要求を処理理できるかを⽰示す。

Z

将来のための予約。0にする。

AD

Authentic Data
問い合わせにおいては、DNSSECの検証を指⽰示する。
応答においては、DNSSECの検証に成功したかを⽰示す。
成功したら1、失敗した、あるいは検証していなければ0CD

Checking Disabled
ネームサーバにDNSSECの検証を⾏行行わないことを指⽰示する。

134
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

項⽬目

説明

RCODE

応答コード
0: No error condition (NoError)
1: Format error (FormErr)
2: Server failure (ServFail)
3: Name Error (NXDomain)
4: Not Implemented (NotImp)
5: Refused

QDCOUNTQUESTIONセクションのエントリーの数を⽰示す符号無し16ビッ
ト整数

ANCOUNTANSWERセクションのエントリーの数を⽰示す符号無し16ビット
整数

NSCOUNTAUHTORITYレコードセクションのリソースレコードの数を⽰示す
符号無し16ビット整数

ARCOUNTADDITIONALレコードセクションのリソースレコードの数を⽰示す
符号無し16ビット整数

135
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

digの結果におけるヘッダセクション$ dig @ns.example.jp. example.jp. +norec; <<>> DiG 9.8.3-P1 <<>> @ns.example.jp. example.jp.
; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37953;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

136
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

QUESTIONセクション  フォーマット
0

1

2

3

4

5

6

7

8

QNAME
QTYPE
QCLASS

9

10 11

12

13 14

15

137
DNS Summer Days 2013 - DNS再⼊入⾨門

項⽬目

説明

QNAME

ドメイン名

QTYPE

問い合わせのタイプを⽰示す16ビット。
通常のタイプに加えて以下のものが使⽤用できる。
TSIG (250)IXFR (251)
AXFR (252)
ANY (255)

QCLASS

問い合わせのクラスを⽰示す16ビット。
通常のクラスに加えて以下のものが使⽤用できる。
ANY (255)

2013/07/19

138
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

リソースレコード  フォーマット
0

1

2

3

4

5

6

7

8

NAME
TYPE
CLASS
TTL
RDLENGTH
RDATA

9

10 11

12

13 14

15

139
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

項⽬目

説明

NAME

オーナー

TYPE

タイプ

CLASS

クラス

TTL

TTL

RDLENGTH

RDATAの⻑⾧長さ（オクテット）を⽰示す符号なし16ビット整数。

RDATA

リソースのデータ

140
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

digによるDNSメッセージの確認$ dig @ns.example.jp. example.jp. +norec

HEADER; <<>> DiG 9.8.3-P1 <<>> @ns.example.jp. example.jp.
; (1 server found);; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37953;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

QUESTION;; QUESTION SECTION:;example.jp.

ANSWER;; ANSWER SECTION:
example.jp.

AUTHORITY
ADDITIONAL

IN

A

3600

IN

A

192.0.2.4;; AUTHORITY SECTION:
example.jp.
86400
example.jp.
86400

IN
IN

NS
NS

ns.example.jp.
ns2.example.jp.

;; ADDITIONAL SECTION:
ns.example.jp.
86400
ns2.example.jp.
86400

IN
IN

A
A

192.0.2.1
192.0.2.2

141
DNS Summer Days 2013 - DNS再⼊入⾨門

このセクションのまとめ• DNSメッセージのフォーマット

2013/07/19

142
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

143
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

DNSの構成要素
ゾーン転送

ネームサーバ（権威サーバ）

ネームサーバロード（権威サーバ）マスター
ファイル
ゾーン内のリソース
レコードを記述

メッセージ

メッセージ

ネームサーバ

ドメイン名空間（フルサービス
リゾルバ）
メッセージ

リソースレコードcomjp

example.jp.

IN SOA ns.exampele.jp. ..

example.jp.

IN NS

ns.example.jp. IN A

スタブ
リゾルバ

ドメイン名
exampleexample

co

ゾーン
ns

www

ns.example.jp.
192.0.2.1

タイプ

144
DNS Summer Days 2013 - DNS再⼊入⾨門

DNSのプレイヤー
反復復的に
問い合わせ
を⾏行行う

やりとりされるリソースの情報をリソース  レコードという
www.example.jpのIPアドレスを教えて？
www.example.jpのIPアドレスは192.0.2.4

スタブ  リゾルバ

フルサービス  リゾルバ
（キャッシュ  ネームサーバ）

2013/07/19

分散型
データベース
ルートゾーン
の権威サーバjpドメインのゾーンの
権威サーバ
example.jp
ドメインの
ゾーンの
権威サーバ
権威ネームサーバ145
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

スタブ  リゾルバ• 名前解決を要求する（クライアント）側の機能• OSやライブラリの機能（関数/API）として実装されている• フルサービス  リゾルバに再帰検索索要求（RDフラグあり）リクエストを送って、名前の解決を⾏行行う▫ OSのネットワーク設定の「ネームサーバ」欄に利利⽤用するフルサービス  リゾルバのIPアドレスを設定
する▫ UNIX系OSの場合は/etc/resolv.conf

146
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

スタブ  リゾルバ• 同じ要求の繰り返しのリクエストを避けるために、キャッシュ機能を持ってもよい(MAY)147
DNS Summer Days 2013 - DNS再⼊入⾨門

スタブ  リゾルバ
スタブ  リゾルバはフルサービス  リゾルバに問い合わせるだけ

フルサービス  リゾルバ
は権威ネームサーバに対して反復復的に問い合わせをしてくれる

www.example.jpのIPアドレスを教えて？
www.example.jpのIPアドレスは192.0.2.4

スタブ  リゾルバ

フルサービス  リゾルバ
（キャッシュ  ネームサーバ）

権威ネームサーバ

2013/07/19

148
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

フル  サービス  リゾルバ
• リゾルバ  サービスの完全な実装であり、⾃自⾝身で名前の解決を⾏行行う機能• スタブ  リゾルバから再帰検索索要求（RDフラグあり）のリクエストを受け取り、
権威ネームサーバに対して（RDフラグなしで）、
反復復的な問い合わせを⾏行行い、
名前の解決を⾏行行う。
• 同じ要求の繰り返しのリクエストを避けるために、キャッシュ機能を持たなければならない(MUST)

149
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

フル  サービス  リゾルバ
• クライアントに対してサービスを提供するサーバである▫ クライアントのOSのネットワーク設定の「ネームサーバ」欄にこのフルサービス  リゾルバのIPアド
レスを設定する▫ UNIX系OSの場合は/etc/resolv.conf

150
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

フル  サービス  リゾルバ
• キャッシュ  ポイズニング▫ 誰でもアクセスできるリゾルバ（オープン  リゾルバ）はキャッシュ  ポイズニングの危険性が⾼高くなる。
▫ クライアントに対するサービスであるため、決められたクライアント以外にアクセスを許可する必要はない。
▫ オープンリゾルバにならないように、アクセス制
御を⾏行行う必要がある。
 LAN内に置いてもいいんだよ151
DNS Summer Days 2013 - DNS再⼊入⾨門

フル  サービス  リゾルバ
• 様々な呼び⽅方がある▫ キャッシュ  ネームサーバ▫ キャッシュDNSサーバ▫ DNSキャッシュサーバ▫ キャッシュサーバ

2013/07/19

152
DNS Summer Days 2013 - DNS再⼊入⾨門

フルサービス  リゾルバ
スタブ  リゾルバ
からリクエストを受け取る

フルサービス  リゾルバは権威ネームサーバに対して反復復的に問い合わせを⾏行行う

www.example.jpのIPアドレスを教えて？
www.example.jpのIPアドレスは192.0.2.4

スタブ  リゾルバ

フルサービス  リゾルバ
（キャッシュ  ネームサーバ）

2013/07/19

権威ネームサーバは
⾃自⾝身のゾーンに関する回答をそれぞれ⾏行行う

ルートゾーン
の権威サーバjpドメインのゾーンの
権威サーバ
example.jp
ドメインの
ゾーンの
権威サーバ
権威ネームサーバ153
DNS Summer Days 2013 - DNS再⼊入⾨門

フルサービス  リゾルバ

2013/07/19

ルートゾーン
の権威サーバ

ドは何？
ー
コ
レ
A
の
.
le.jp
www.examp
サーバ
威
権
の
ン
: jpドメイ
Y
T
I
R
O
H
T
AU

jpドメインのゾーンの
権威サーバ

www.example.jp.のAレコードは何？
AUTHORITY: example.jpドメインの権威サーバ
www.exa

mple.jp.
の

Aレコード
は何？
www.exa
mple.jp.
のAレコー
ドは192
.0.2.4
フルサービス  リゾルバ
（キャッシュ  ネームサーバ）

example.jp
ドメインの
ゾーンの
権威サーバ
権威ネームサーバ154
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19

権威ネームサーバ• ⾃自⾝身が権威を持っているゾーンの情報（リソー
ス  レコード）を提供する機能• 権威を持っていない情報に関しては情報を提供しない▫ 例例外はグルー• 様々な呼び⽅方がある▫ 権威DNSサーバ▫ DNS権威サーバ▫ コンテンツサーバ▫ 権威サーバ

155
DNS Summer Days 2013 - DNS再⼊入⾨門

このセクションのまとめ• スタブ  リゾルバ
• フルサービス  リゾルバ
• 権威ネームサーバ

2013/07/19

156
DNS Summer Days 2013 - DNS再⼊入⾨門

2013/07/19