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

DNSにちょっとだけ詳しくなりたい人に贈る少し突っ込んだDNSの話 / devioday1_dns

DNSにちょっとだけ詳しくなりたい人に贈る少し突っ込んだDNSの話 / devioday1_dns

知っているようで知らないことの多いDNS。ちょっとだけ詳しくなるためのDNSの仕組み講座から最近のDNS事情までをまるっと紹介する30分です。

takipone

April 11, 2023
Tweet

More Decks by takipone

Other Decks in Technology

Transcript

  1. DNSにちょっとだけ詳しくなりたい人に贈る少し
    突っ込んだDNSの話

    2023/4/11

    DevelopersIO BASECAMPディレクター 大瀧隆太 / takipone


    View Slide

  2. 2

    ● 名前: 大瀧隆太 @takipone

    ● お仕事: 事業開発

    ● 好きな技術:

    ○ Amazon Route 53, CloudFront

    ○ SORACOM

    ○ Tailscale

    ○ Starlink


    View Slide

  3. 3
    DevelopersIO BASECAMP(デベキャン)第1期完走!

    View Slide

  4. 4
    聴講者のターゲット
    ● ITエンジニア

    ○ フロントエンド、バックエンド、クラウドインフラ

    ○ プリセールス、PM、PdM

    ● DNSの学び方

    ○ 現場で叩き上げ

    ○ 学校で習った

    DNSにちょっと詳しくなるためのTips集を紹介する30分


    View Slide

  5. 5
    事前リサーチ(社内アンケート)

    View Slide

  6. 6
    お品書き
    1. DNS概説

    2. DNSちょっと詳しくなる1: 勉強方法とデバッグ

    3. DNSちょっと詳しくなる2: Amazon Route 53

    4. DNSちょっと詳しくなる3: DNS over なにか


    View Slide

  7. 7
    DNS概説
    DNS(Domain Name System)は名前解決の手段のひとつ

    名前解決は通信相手のホスト名をIPアドレスに変換する仕
    組み

    yakiniku.local
    ホスト名

    192.168.1.1
    IPアドレス


    View Slide

  8. 8
    DNS概説
    DNSはシンプルなクライアント/サーバシステム

    DNSクライアント
    スマホやPC
    DNSサーバー
    ルーターやクラウド
    リクエスト
    レスポンス

    View Slide

  9. 9
    DNS概説
    簡素な分散システムとキャッシュ

    クライアント
    (リゾルバ)
    キャッシュサーバ
    (スタブリゾルバ)
    コンテンツサーバ
    (ドメインによる
     階層化と委譲)

    View Slide

  10. 10
    DNS概説
    今日のTCP/IPネットワーク、インターネットの根幹

    ありとあらゆるクライアントが、ありとあらゆるTCP/IP通信の
    前段としてDNSサーバにリクエストを送りまくる

    DNSサーバは基本的につらい役回り

    落ちるとすごく怒られるし、攻撃で狙われる


    View Slide

  11. 11
    ここからは
    ちょっとだけ詳しくなる足がかりを
    DNSちょっと詳しくなる1:

    勉強方法とデバッグ

    View Slide

  12. 12
    勉強方法とデバッグ
    インターネット技術なので公開
    情報が豊富

    ● JPRSのWebサイト

    ● RFC:
    https://jprs.jp/tech/index.html

    #dns-rfc-info

    書籍もたくさん出てる

    ● 「DNSをはじめよう」


    View Slide

  13. 13
    勉強方法とデバッグ
    digコマンド: DNSの通信をほぼダンプしてくれる

    cURLみたいなコマンド

    % dig classmethod.jp
    ; <<>> DiG 9.10.6 <<>> classmethod.jp
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28062
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 4, ADDITIONAL: 9
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;classmethod.jp. IN A
    ;; ANSWER SECTION:
    トラブルシューティングには
    ヘッダ情報が大事
    メッセージボディはセクションに分類される

    View Slide

  14. 14
    勉強方法とデバッグ
    Amazon VPC内などを除き公開サー
    ビスなので手元からデバッグできる

    実際の動きを追いやすいのがDNS
    のいいところ

    便利なクエリオプションがたくさんあ
    るので頑張ってmanを見よう

    % dig +short @8.8.8.8 . NS
    f.root-servers.net.
    a.root-servers.net.
    k.root-servers.net.
    h.root-servers.net.
    i.root-servers.net.
    j.root-servers.net.
    m.root-servers.net.
    l.root-servers.net.
    g.root-servers.net.
    b.root-servers.net.
    d.root-servers.net.
    c.root-servers.net.
    e.root-servers.net.
    %

    View Slide

  15. 15
    勉強方法とデバッグ
    digコマンドのエラー

    ● NXDOMAIN : HTTP 404 NotFound

    ● SERVFAIL : HTTP 5XX Server Error

    ● NOERROR : HTTP 2XX OK

    NOERRORでもANSWER SECTIONが空っぽなど問題があ
    る場合も


    View Slide

  16. 16
    DNSちょっと詳しくなる2:

    Amazon Route 53

    View Slide

  17. ↓

    大規模DNSマネージドサービスの登場

    ● キャッシュサーバ

    ● コンテンツサーバ

    17
    Amazon Route 53 - 大規模DNSサービスを知ろう
    DNSサーバは運用が大変

    ここで説明するのはコンテンツサーバ
    ※ Route 53は両方の機能を持つことに
    注意

    View Slide

  18. 18
    大規模DNSサービスの特徴
    古典的な冗長化はプライマリ/セカンダリの2台構成

    プライマリサーバ セカンダリサーバ
    ゾーン転送
    これに代わるIP Anycastによる大規模な分散構成


    View Slide

  19. 19
    IP Anycastとは
    ● 複数ホストに同じグローバルIPアドレスを割り当て

    ● インターネットのルータの構成で最寄りのホストを

    向ける

    X.X.X.X
    X.X.X.X
    X.X.X.X

    View Slide

  20. 20
    IP Anycastとは
    DNS専用の仕組みではなく、インターネットの様々なサービ
    スで活用されている

    ● Amazon Global Accelerator

    ● Cloudflare

    ● Google Cloud CDN

    検証にはEC2が便利(リージョン選び放題はありがたい)


    View Slide

  21. 21
    多彩なDNSルーティングポリシー
    単一のリソースレコードに対してフェイルオーバー

    (障害検出と振り替え)やロードバランス(負荷分散)などロジッ
    クを持たせる

    プライマリの
    サーバ
    セカンダリの
    サーバ
    Route 53
    死活監視

    View Slide

  22. 22
    多彩なDNSルーティングポリシー
    ● フェイルオーバー

    ● 位置情報

    ● 地理的近接性

    ● レイテンシー

    ● IPベース

    ● 複数値回答

    ● 加重

    ● EDNS0 Client Subnet


    View Slide

  23. 23
    DNSちょっと詳しくなる3 :

    DNS over なにか

    View Slide

  24. 24
    DNS over なにか
    DNSクライアント周りの最近の話題

    DNSは非暗号化プロトコル

    ISPでクエリーログが収集されてしまうリスク

    ISPのキャッシュサーバ

    View Slide

  25. 25
    DNS over なにか
    日本は法律で保護されるなど国によって状況はさまざま

    プライバシーに敏感なインターネットユーザー層

    ※ コンテンツサーバー側はDNSSECという別の技術


    View Slide

  26. 26
    DNSトラフィックの暗号化
    実装はたくさん

    ● DNS over TLS

    ● DNS over HTTPS

    ● DNS over HTTP/3

    Android Private DNSはover TLS

    だけど今後over HTTP/3に移るかも
    (iOSにもある)


    View Slide

  27. 27
    まとめ
    ● RFCと書籍、digコマンドでDNSをお友達にしよう

    ● 大規模DNSマネージドサービスはIP Anycast

    ● DNSクライアントの暗号化はプライバシー周辺の話題


    View Slide