Upgrade to Pro — share decks privately, control downloads, hide ads and more …

「 DNS 浸透いうな」と言うけれど ...

Yoshikazu GOTO
February 23, 2018

「 DNS 浸透いうな」と言うけれど ...

そういえば、どこに「浸透」するのだろう?

OSC2018 Tokyo/Spring 用発表資料です。
https://www.ospn.jp/osc2018-spring/modules/eguide/event.php?eid=22

Yoshikazu GOTO

February 23, 2018
Tweet

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  14. 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

    View Slide

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

    View Slide

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

    View Slide

  17. 見るべき資料
    • 浸透いうな!
    • 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

    View Slide

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

    View Slide