Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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(反復的)な問い合わせ手順をやってみたら 良いのです