Slide 1

Slide 1 text

君のキャッシュDNSサーバが出すクエリ を君は本当に理理解しているか? あ、でもそのうちそうなっちゃうかも? 〜~QNAME Minimisation の話〜~ ENOG34@柏崎 2015年年9⽉月4⽇日 DMM.comラボ ⾼高嶋隆⼀一

Slide 2

Slide 2 text

1 おさらい. ドメイン名は階層構造を持つ . jp com org 酔っ払い co example ・・・ ・・・ 酔っ払い . JP . ü ⽊木構造っぽい

Slide 3

Slide 3 text

2 おさらい. 権威DNSサーバがいてデータを保管 . jp com org 酔っ払い co example ・・・ ・・・ a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … “.” の権威DNSサーバ 酔っ払い.jp の権威DNSサーバ urquell. 酔っ払い. jp jpの 権威DNSサーバ

Slide 4

Slide 4 text

3 おさらい. 権威DNSサーバがいてデータを保管 . jp com org 酔っ払い co example ・・・ ・・・ a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … “.” の権威DNSサーバ 酔っ払い.jp の権威DNSサーバ urquell. 酔っ払い. jp jpの 権威DNSサーバ 上位の階層で下位の階層の 権威DNSサーバを NSレコードで指定する (委任)

Slide 5

Slide 5 text

4 おさらい. キャッシュDNSサーバが “.” の権威DNSサーバから順番に名前検索索 . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ クライアント 酔っ払い.jpのIP アドレスは何? 酔っ払い.jpは 192.0.2.1 1 2 3 4 5 6 7 8

Slide 6

Slide 6 text

5 ここで質問です . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ クライアント 酔っ払い.jpのIP アドレスは何? 酔っ払い.jpは 192.0.2.1 1 2 3 4 5 6 7 8 〜~ のクエリ内容と の返答内容は何でしょう? 2 7

Slide 7

Slide 7 text

6 よくある回答 . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ 2 3 4 5 6 7 jp の NS は誰? jp の NS は [a-‐‑‒ f].dns.jp

Slide 8

Slide 8 text

7 よくある回答 . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ 2 3 4 5 6 7 酔っ払い.jp の NS は誰? 酔っ払い.jp の NS は urquell. 酔っ払い.jp

Slide 9

Slide 9 text

8 よくある回答 . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ 2 3 4 5 6 7 酔っ払い.jp の A は何? 酔っ払い.jp の A は 192.0.2.1

Slide 10

Slide 10 text

9 答え合わせ . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ 2 3 4 5 6 7 酔っ払い.jp の A は何? 酔っ払い.jp の A は 192.0.2.1 jp の NS は誰? jp の NS は [a-‐‑‒ f].dns.jp 酔っ払い.jp の NS は誰? 酔っ払い.jp の NS は urquell. 酔っ払い.jp

Slide 11

Slide 11 text

10 答え合わせ

Slide 12

Slide 12 text

11 正解 (注1) 133.242…v6.sakura.ne.jp, xavier.hanya-‐‑‒n.org はキャッシュDNSサーバの IPv4, IPv6アドレス (注2) ハードコードされたroot DNSのhint情報から 真のroot DNSの⼀一覧を得るためのクエリ (プライミングと呼ばれ、BIND9やUnboundなどに実装) (注3) BIND9 はルートサーバに何らかのクエリを送る際にも プライミングと同様のクエリを送る模様

Slide 13

Slide 13 text

12 正解 . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ 2 3 4 5 6 7

Slide 14

Slide 14 text

13 正解 Internet Protocol Version 6, Src: 133.242.136.218.v6.sakura.ne.jp (2401:2500:102:1201:133:242:136:218), Dst: i.root-servers.net (2001:7fe::53) User Datagram Protocol, Src Port: 18648 (18648), Dst Port: 53 (53) Domain Name System (query) Transaction ID: 0xab7c Flags: 0x0010 Standard query 〜〜snip~~ Questions: 1 Answer RRs: 0 Authority RRs: 0 Additional RRs: 1 Queries XN--N8J1C913R6J1B.JP: type A, class IN Name: XN--N8J1C913R6J1B.JP [Name Length: 20] [Label Count: 2] Type: A (Host Address) (1) Class: IN (0x0001) Additional records : type OPT ~~snip DO bit (DNSSEC ok) ~~ クライアントから問い合わされた 内容を聞いている

Slide 15

Slide 15 text

14 正解 . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ 2 3 4 5 6 7

Slide 16

Slide 16 text

15 正解 Internet Protocol Version 6, Src: i.root-servers.net (2001:7fe::53), Dst: 133.242.136.218.v6.sakura.ne.jp (2401:2500:102:1201:133:242:136:218) User Datagram Protocol, Src Port: 53 (53), Dst Port: 18648 (18648) Domain Name System (response) [Request In: 2] [Time: 0.020326000 seconds] Transaction ID: 0xab7c Flags: 0x8010 Standard query response, No error ~~snip~~ Questions: 1 Answer RRs: 0 Authority RRs: 10 Additional RRs: 14 Queries XN--N8J1C913R6J1B.JP: type A, class IN Name: XN--N8J1C913R6J1B.JP [Name Length: 20] [Label Count: 2] Type: A (Host Address) (1) Class: IN (0x0001) Authoritative nameservers JP: type NS, class IN, ns b.dns.JP ~~snip 以下、jp の権威サーバと DS, RRSIG の列列挙 ~~ Answer section ではなく、 Authority section に NS を返してる!

Slide 17

Slide 17 text

16 正解 . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ 2 3 4 5 6 7 酔っ払い.jp の A は何? 酔っ払い.jp の A は 192.0.2.1 酔っ払い.jp の A は何? [a-‐‑‒f].dns.jp が 知ってるよ 酔っ払い.jp の A は何? urquell.酔っ払 い.jp が知って るよ

Slide 18

Slide 18 text

17 正解 ü キャッシュDNSサーバは常にクライアントから問い合わ された内容のクエリを送り続ける ü 権威DNSサーバは § ⾃自分のドメイン名の階層に含まれる § ⾃自分が直接対応するデータを持っていない § ⾃自分のドメイン名の下位の階層の権威DNSサーバ (NSレコード)が設定されている(委任されている) 場合は、Authority Section にそれらを⼊入れて返す

Slide 19

Slide 19 text

18 だがしかし!

Slide 20

Slide 20 text

19 何か変わるか もしんない!

Slide 21

Slide 21 text

20 QNAME Minimisation

Slide 22

Slide 22 text

21 QNAME Minimisation q 従来の⼿手法の問題点 Ø キャッシュDNSサーバ常にクライアントから要求され た最終的に必要な DNS クエリを送り続ける Ø 上位の権威DNSサーバ程、クライアントが何をしてい るのかわかっちゃう! Ø 権威DNSサーバへの通信経路路の⼈人も覗き⾒見見できちゃ う!

Slide 23

Slide 23 text

22 QNAME Minimisation . jp 酔っ払い ドメイン名 & 権威DNSサーバ キャッシュ DNSサーバ クライアント 秘密のエロ.酔っ払 い.jpのIPアドレス は何? 秘密のエロ.酔っ払 い.jpのIPアドレス は何? 秘密のエロ.酔っ払 い.jpのIPアドレス は何? 秘密のエロ.酔っ払 い.jpのIPアドレス は何?

Slide 24

Slide 24 text

管理理者 管理理者 23 QNAME Minimisation . jp 酔っ払い ドメイン名 & 権威DNSサーバ キャッシュ DNSサーバ 管理理者 途中経路路 ププ、あいつ あんなサイト⾒見見て るぜ!wwwwww

Slide 25

Slide 25 text

24 よくない!

Slide 26

Slide 26 text

25 QNAME Minimisation の提案内容 Ø 権威DNSサーバには、それから1階層下の NS を聞く様 にする

Slide 27

Slide 27 text

26 これだ! . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ドメイン名 キャッシュ DNSサーバ 2 3 4 5 6 7 酔っ払い.jp の A は何? 酔っ払い.jp の A は 192.0.2.1 jp の NS は誰? jp の NS は [a-‐‑‒ f].dns.jp 酔っ払い.jp の NS は誰? 酔っ払い.jp の NS は urquell. 酔っ払い.jp

Slide 28

Slide 28 text

27 これが . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ 2 3 4 5 6 7 酔っ払い.jp の A は何? 酔っ払い.jp の A は 192.0.2.1 jp の NS は誰? jp の NS は [a-‐‑‒ f].dns.jp 酔っ払い.jp の NS は誰? 酔っ払い.jp の NS は urquell. 酔っ払い.jp

Slide 29

Slide 29 text

28 こうなる . jp 酔っ払い a.dns.jp b.dns.jp … a.root-‐‑‒servers.net b.root-‐‑‒servers.net … 権威DNSサーバ urquell. 酔っ払い. jp ラベル キャッシュ DNSサーバ 2 3 4 5 6 7 酔っ払い.jp の A は何? 酔っ払い.jp の A は 192.0.2.1 jp の NS は誰? jp の NS は [a-‐‑‒ f].dns.jp 酔っ払い.jp の NS は誰? 酔っ払い.jp の NS は urquell. 酔っ払い.jp

Slide 30

Slide 30 text

29 よかったね!

Slide 31

Slide 31 text

30 QNAME Minimisation のいいところ q 既存の仕組みと互換性がある Ø 仮にすぐ下の階層に NS がなくて、2階層より下のド メイン名が定義されてても NO DATA が返ってくるだ けなので、更更に1個したのNSを聞くというのができる Ø というか、最終的に知りたい名前を聞くというやり⽅方 ⾃自体、伝統的にそうしているがそういう決まりではな いらしい

Slide 32

Slide 32 text

31 QNAME Minimisation のいいところ q Negative Cache 効率率率の向上 (例例) A.example、B.example、C.exampleを 順に問い合わせた場合 v 従来の⽅方法: Ø ルートサーバへの問い合わせが毎回発⽣生 v QNAME minimisation: Ø A.exampleの時にだけ問い合わせが発⽣生 ü exampleのNSを問い合わせるため、NS (委任)が存在しないことがわかる ü B.example、C.exampleに対する問い合 わせが発⽣生しない

Slide 33

Slide 33 text

32 まとめ +1 q 今の実装では、キャッシュDNSサーバは最終的に知り たいクエリを root から最終的にデータを持っている権 威DNSサーバまで繰り返し聞き続ける q QNAME Minimisation では root から1階層ずつ NS を 検索索する様なアプローチをとり、プライバシー対策に なると同時に、クエリ/応答のパケット数の削減も実現 できる +1 Ø 現在の状況: IETF dnsop WGで合意済、 Experimental RFCとなる予定

Slide 34

Slide 34 text

33 Special Thanks to: 重複の Orange の⼈人 q 当⽇日朝に内容チェックお願いしたにも関わらず ありがとうございまーす。

Slide 35

Slide 35 text

34 Thank you!