Slide 1

Slide 1 text

「DNS浸透いうな」 と言うけれど… そういえば、どこに「浸透」するのだろう? OSC2018 Tokyo/Spring 日本Unboundユーザー会 @goto_ipv6

Slide 2

Slide 2 text

質問 • どこに「浸透」したら、あなたは満足ですか? • 具体的に言えますか? • 「浸透」というのだから、どこかに「浸透」するはずな のです • ここでは、そのあたりをちょっと考えてみたいと思 います

Slide 3

Slide 3 text

自己紹介 • 名前 : 後藤 芳和 • 「JANOG 後藤 芳和」でググってください • Twitter : @goto_ipv6 • https://www.slideshare.net/goto_ipv6 • https://togetter.com/id/goto_ipv6 • 仕事でDNSを運用しているわけではありません • 趣味でもないと思っていますが…

Slide 4

Slide 4 text

浸透するかも候補 • アプリケーション • Webブラウザーとか • Lightweight Languageも • OS • Windows • Linux (Ubuntu, CentOS, Debian, Gentoo, RHELなど) • BSD系 (FreeBSD, NetBSD, OpenBSDなど) • フルリゾルバー(キャッシュDNSサーバー) • 権威サーバー(コンテンツサーバー)

Slide 5

Slide 5 text

アプリケーションへ浸透? • 得られたドメイン名についての情報をキャッ シュする? • いつまでキャッシュしていればよいのかわからない ので、なかなかこんな実装はない(はず) • OSを介さずに独自で名前解決する? • 名前解決に必要な情報をどうやって得るの? • OSから得たとして、OS側で設定が変わったときに追随で きる? • OSにその機能があるのに、車輪を再発明するの?

Slide 6

Slide 6 text

OSへ浸透? • OSではなくてlibc/glibcといった「ライブラリ」 がアプリからの名前解決要求を受け付ける • この機能を「スタブリゾルバ」という • 当然、「キャッシュ」機能なんて持っていない • でも、「キャッシュ」機能を持ったOS(やディ ストリビューション)も存在する • デーモンやサービスとして実装されている • 例) Ubuntu (systemd-resolved), FreeBSD (local_unbound), Windows (DNS Client) • お?

Slide 7

Slide 7 text

フルリゾルバーへ浸透? • スタブリゾルバからの要求を受けて、実際に名 前解決をするサーバー • Unboundが有名 ;-) • Iterative(反復的)な問い合わせ「動作」をする • DNSメッセージとしては「再帰のフラグ(RD bit)無 し」であり「非再帰問い合わせ」と言います • RFC 1034に書いてあります ;-> • 「キャッシュ」機能を持つことが多い • お?

Slide 8

Slide 8 text

キャッシュへ浸透? • 問い合わせ要求を受けたときの、最終的な結果 を保持 • 要求を受けないと保持されないので「浸透」しない • TTLが切れるまで情報は有効なので「浸透」しない • 「要求されたドメイン名(など)はありませんで した」という情報も保持される • 「ネガティブキャッシュ」という • これにもTTLがあるので、その期間中はずっと、要 求に対して「ありませんでした」という応答が続く • 「DNSが浸透しない」ことの原因の一つ

Slide 9

Slide 9 text

権威サーバーへ浸透? • ドメイン名などの情報を保持するサーバー • その「ドメイン」に関する名前についての情報しか 知らない • www.example.jpのIPアドレス情報を、jpドメインの権威 サーバー(a.dns.jpなど)が保持することはない • ドメイン名の委譲元の権威サーバーへ「浸透」すること はない • ドメイン名の変更作業では実際に変更するため、結 果として作業内容が「即時反映」される • 「浸透」するわけではない • ゾーン転送は自分で制御可能 • そもそも「浸透」でもない

Slide 10

Slide 10 text

その他にも? • 既存の権威サーバーを新しいサーバーへ切り替 える手順を間違えると「DNSが浸透しない」 「DNSが反映されない」状態となる • ドメイン名の委譲元への変更「申請」と、権威サー バーに対するドメイン名の変更「作業」とを区別し なければならない • 前者は、作業タイミングがわからないことも • 後者は、引越し元と引越し先の両方への作業が必要だが 特に引越し元の方の作業を忘れがち

Slide 11

Slide 11 text

そもそも既存の説明が悪い? • 今までの説明(絵)ではそれぞれの登場人物が一 つずつなのが大半 • ルートサーバー • jp の権威サーバー • example.jp の権威サーバー • フルリゾルバー • クライアント(アプリケーション)

Slide 12

Slide 12 text

よくある例 簡略化して説明するのが 目的なのでこれはこれで 仕方がない ルートサーバー jp の権威サーバー example.jp の 権威サーバー フルリゾルバー クライアント

Slide 13

Slide 13 text

本来はこんな世界 • 登場人物があっちこっちに存在し、OSもアプ リケーションもいっぱい存在する • アプリケーション • OS • フルリゾルバー(キャッシュDNSサーバー) • ISPの数以上、あると言っても過言ではない • 権威サーバー(コンテンツサーバー) • 冗⻑構成を取っているため多数に

Slide 14

Slide 14 text

DNS関係者はいっぱいいる a.root-servers.net b.root-servers.net c.root-servers.net a.dns.jp b.dns.jp / c.dns.jp d.dns.jp ns1.example.jp ns2.example.jp フルリゾルバ クライアント http://www.dns.jp/index-j.html https://www.iana.org/domains/root/servers

Slide 15

Slide 15 text

よく考えてみて! • これら全てに「浸透」すると思うのはそもそも おかしい • p.3 に書いた質問を思い出してください • どこに「浸透」したら、あなたは満足ですか? • ドメイン名だって、星の数ほど存在する • これら全部、キャッシュで保持するの? • できません

Slide 16

Slide 16 text

気持ち悪いですよね? • あなたが使っている「アプリケーション」 • あなたが使っている「OS」 • あなたが構築した「フルリゾルバー」 • あなたが使っている「権威サーバー」 • これらに、他人のデータが「浸透」してきたら うれしいですか?

Slide 17

Slide 17 text

見るべき資料 • 浸透いうな! • http://www.e-ontap.com/dns/propagation/ • ネガティブキャッシュについて • http://www.e-ontap.com/dns/onsen4/index.html • JPRS さんの資料 • https://jprs.jp/related-info/guide/019.pdf • https://jprs.jp/tech/material/iw2011-lunch-L1-01.pdf • 浸透問題を解説してくださっています • https://jprs.jp/tech/material/iw2012-lunch-L3-01.pdf

Slide 18

Slide 18 text

まとめ • 「浸透」する先は存在しません • 「反映」は、いろいろな意味を含むので、適切に使 いましょう • DNSを勉強しましょう! • 「浸透」を待たなくても、作業確認のための正しい 方法はあります • フルリゾルバーの気持ちになって、dig/drillコマンドで、 自分でIterative(反復的)な問い合わせ手順をやってみたら 良いのです