Slide 1

Slide 1 text

DNSにちょっとだけ詳しくなりたい人に贈る少し 突っ込んだDNSの話
 2023/4/11
 DevelopersIO BASECAMPディレクター 大瀧隆太 / takipone


Slide 2

Slide 2 text

2 誰 ● 名前: 大瀧隆太 @takipone
 ● お仕事: 事業開発
 ● 好きな技術:
 ○ Amazon Route 53, CloudFront
 ○ SORACOM
 ○ Tailscale
 ○ Starlink


Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

4 聴講者のターゲット ● ITエンジニア
 ○ フロントエンド、バックエンド、クラウドインフラ
 ○ プリセールス、PM、PdM
 ● DNSの学び方
 ○ 現場で叩き上げ
 ○ 学校で習った
 DNSにちょっと詳しくなるためのTips集を紹介する30分


Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

6 お品書き 1. DNS概説
 2. DNSちょっと詳しくなる1: 勉強方法とデバッグ
 3. DNSちょっと詳しくなる2: Amazon Route 53
 4. DNSちょっと詳しくなる3: DNS over なにか


Slide 7

Slide 7 text

7 DNS概説 DNS(Domain Name System)は名前解決の手段のひとつ
 名前解決は通信相手のホスト名をIPアドレスに変換する仕 組み
 yakiniku.local ホスト名
 192.168.1.1 IPアドレス


Slide 8

Slide 8 text

8 DNS概説 DNSはシンプルなクライアント/サーバシステム
 DNSクライアント スマホやPC DNSサーバー ルーターやクラウド リクエスト レスポンス

Slide 9

Slide 9 text

9 DNS概説 簡素な分散システムとキャッシュ
 クライアント (リゾルバ) キャッシュサーバ (スタブリゾルバ) コンテンツサーバ (ドメインによる  階層化と委譲)

Slide 10

Slide 10 text

10 DNS概説 今日のTCP/IPネットワーク、インターネットの根幹
 ありとあらゆるクライアントが、ありとあらゆるTCP/IP通信の 前段としてDNSサーバにリクエストを送りまくる
 DNSサーバは基本的につらい役回り
 落ちるとすごく怒られるし、攻撃で狙われる


Slide 11

Slide 11 text

11 ここからは ちょっとだけ詳しくなる足がかりを DNSちょっと詳しくなる1:
 勉強方法とデバッグ

Slide 12

Slide 12 text

12 勉強方法とデバッグ インターネット技術なので公開 情報が豊富
 ● JPRSのWebサイト
 ● RFC: https://jprs.jp/tech/index.html
 #dns-rfc-info
 書籍もたくさん出てる
 ● 「DNSをはじめよう」


Slide 13

Slide 13 text

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: トラブルシューティングには ヘッダ情報が大事 メッセージボディはセクションに分類される

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

15 勉強方法とデバッグ digコマンドのエラー
 ● NXDOMAIN : HTTP 404 NotFound
 ● SERVFAIL : HTTP 5XX Server Error
 ● NOERROR : HTTP 2XX OK
 NOERRORでもANSWER SECTIONが空っぽなど問題があ る場合も


Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

↓
 大規模DNSマネージドサービスの登場
 ● キャッシュサーバ
 ● コンテンツサーバ
 17 Amazon Route 53 - 大規模DNSサービスを知ろう DNSサーバは運用が大変
 ここで説明するのはコンテンツサーバ ※ Route 53は両方の機能を持つことに 注意

Slide 18

Slide 18 text

18 大規模DNSサービスの特徴 古典的な冗長化はプライマリ/セカンダリの2台構成
 プライマリサーバ セカンダリサーバ ゾーン転送 これに代わるIP Anycastによる大規模な分散構成


Slide 19

Slide 19 text

19 IP Anycastとは ● 複数ホストに同じグローバルIPアドレスを割り当て
 ● インターネットのルータの構成で最寄りのホストを
 向ける
 X.X.X.X X.X.X.X X.X.X.X

Slide 20

Slide 20 text

20 IP Anycastとは DNS専用の仕組みではなく、インターネットの様々なサービ スで活用されている
 ● Amazon Global Accelerator
 ● Cloudflare
 ● Google Cloud CDN
 検証にはEC2が便利(リージョン選び放題はありがたい)


Slide 21

Slide 21 text

21 多彩なDNSルーティングポリシー 単一のリソースレコードに対してフェイルオーバー
 (障害検出と振り替え)やロードバランス(負荷分散)などロジッ クを持たせる
 プライマリの サーバ セカンダリの サーバ Route 53 死活監視

Slide 22

Slide 22 text

22 多彩なDNSルーティングポリシー ● フェイルオーバー
 ● 位置情報
 ● 地理的近接性
 ● レイテンシー
 ● IPベース
 ● 複数値回答
 ● 加重
 ● EDNS0 Client Subnet


Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

24 DNS over なにか DNSクライアント周りの最近の話題
 DNSは非暗号化プロトコル
 ISPでクエリーログが収集されてしまうリスク
 ISPのキャッシュサーバ

Slide 25

Slide 25 text

25 DNS over なにか 日本は法律で保護されるなど国によって状況はさまざま
 プライバシーに敏感なインターネットユーザー層
 ※ コンテンツサーバー側はDNSSECという別の技術


Slide 26

Slide 26 text

26 DNSトラフィックの暗号化 実装はたくさん
 ● DNS over TLS
 ● DNS over HTTPS
 ● DNS over HTTP/3
 Android Private DNSはover TLS
 だけど今後over HTTP/3に移るかも (iOSにもある)


Slide 27

Slide 27 text

27 まとめ ● RFCと書籍、digコマンドでDNSをお友達にしよう
 ● 大規模DNSマネージドサービスはIP Anycast
 ● DNSクライアントの暗号化はプライバシー周辺の話題