わたしたちの DNSViz
アカマイ・テクノロジーズ合同会社
シニア・ソリューションズ・エンジニア

松本 陽⼀

1

© 2024 Akamai Technologies

このプレゼンテーションにおいてなされる記述は作成者個⼈の⾒解を⽰すものであり、アカマイ・テクノロジーズの⾒解を⽰すものではありません。提供される情報は作成時点において正確なものであると考えておりますが、当該情報についてなんら表明⼜は保証を⾏いません。

2© 2024 Akamai Technologies

あれ︖そのとき
地震︕ → 各種地震情報サイト
ある名前が引けない︕ → DNSViz
多くの情報が図や表でわかりやすく視覚化されている
過去のデータも公開

3© 2024 Akamai Technologies

例: bd. (バングラディシュの ccTLD)
2024-04-02 21:30:41 UTC
https://dnsviz.net/d/bd/Zgx5AQ/dnssec/

マウスオーバーによりエラーの詳細をツールチップで表⽰
委任の問題「DS に対応した DNSKEY に有効な RRSIG がない」

RRSIG の問題「署名が 8 分前に期限切れ」

レスポンスの問題「NS レコードを問い合わせるクエリーに対して⼀部の権威ネームサーバーが SERVFAIL を返している」
4© 2024 Akamai Technologies

DNSSEC 運⽤上の事故の多様性 – 他の例← ve. (ベネズエラの ccTLD)
2023-07-19 19:22:52 UTC

KSK ロールオーバーの失敗と⾒られる
新鍵に対応した DS をルートゾーンに登録していな
いのに旧鍵による署名をやめてしまった︖
https://dnsviz.net/d/ve/ZLg4DA/dnssec/

ci. (コートジボワールの ccTLD) →2023-10-22 14:55:35 UTC

DS がルートゾーンに登録されたまま公開鍵(DNSKEY)も署名(RRSIG)も消してしまった︖
権威ネームサーバの IP アドレスは変わっておらず、シリアル(SOA)も⾃然に増えている
https://dnsviz.net/d/ci/ZTU35w/dnssec/
5© 2024 Akamai Technologies

主要 gTLD のアルゴリズムロールオーバー
2023 年に順次 RSASHA256 (8) → ECDSAP256SHA256 (13)https://indico.dns-oarc.net/event/47/contributions/1012/attachments/973/1821/verisign-tld-updates.pdf

1.

2.

1. alg=8 のみ
2. alg=13 の ZSK による署名
3. alg=13 の ZSK/KSK の DNSKEY 登場
4. alg=13 KSK の DS 追加
5. alg=8 KSK の DS 削除
6. alg=8 の DNSKEY 削除
7. alg=8 の ZSK による署名削除
6© 2024 Akamai Technologies

3.

5.

4.

6.

7.

DNSSEC options (描画時のオプション)

Denial of existence: 不存在の証明(ランダムなサブドメインの情報も表⽰)
不存在証明に問題があると署名されていないサブドメインが BOGUS となるので重要Redundant Edges:(デフォルトでは表⽰されない)本来不要な署名の情報も表⽰。全ページの図ではオン
デフォルト (いずれもオフ)
7© 2024 Akamai Technologies

Deneial of exisitence と Redundant edges
をチェック

描画のオプションであり、過去のデータでも描画時に適⽤可能

Responses

レスポンスの詳細を表⽰

com/SOA が⼆つあった→ 複数の権威ネームサーバー間でシリアル値の異なる SOA
8© 2024 Akamai Technologies

Servers• 委任 (リファーラル) の NS、Additional Section の A/AAAA (グルー)• 権威ネームサーバーの応答する NS とその名前に対する A/AAAAずれがあった場合、図でも Warning が表⽰される
9© 2024 Akamai Technologies

Analyze (新規の調査とそのオプション)• Analyze -> Advansed Option の中では権威ネームサーバーの選択ができる。実際に上位ゾーンから委任の設定をしてもらう前に確認できる• [Analyze] ボタンで調査開始
10© 2024 Akamai Technologiesあらためて DNSViz
主に権威ネームサーバーに様々なクエリーを⾏い、分析してゾーンの状態を可視化するツール• プロトコル上の正常性• 委任の状態• DNSSEC の鍵や署名など問題の発⾒や分析だけでなく、DNS や DNSSEC の勉強になる︕
２つの利⽤⽅法• WEB サービス https://dnsviz.net/ - これまで⾒てきたもの。以下 dnsviz.net• コマンドラインツール dnsviz - ここから説明 ( https://github.com/dnsviz/dnsviz )11© 2024 Akamai Technologiesコマンド版 dnsviz を使う理由• dnsviz.net は原則として履歴が残り公開される
恥ずかしい失敗が将来に渡って晒される• dnsviz.net はしばしば調⼦が悪いことが…
IPv6 の疎通が悪いことがあったり、⼀部の機能が使えなかったり過去のデータが⾶んでしまったことも• グラフだけでなく、JSON 形式でもアウトプットできる → チェッ
クの⾃動化• プライベート網内のサーバーの調査にも使えるなど
12© 2024 Akamai Technologiesコマンド版 dnsviz のインストール• GitHub の README に丁寧に解説されている
https://github.com/dnsviz/dnsviz• dnsviz ⾃体は Python で書かれているが、多くのモジュールやライブラリに依存する。⼀部機能には BIND も必要。必要なものが⽋けているとインストール時や実⾏時にエラー等• どこまでどのパッケージシステムを使うか、VirtualEnv の使⽤、各パッケージのオプションなど多くの選択肢• Docker コンテナも提供されている• UNIX ライクな OS 向けに書かれており、Windows では何らかの仮想化技術を使う必要がある
13© 2024 Akamai Technologies

dnsviz コマンドの使い⽅(サブコマンド)
probe
与えられたドメイン名に関するクエリーを⾏う

JSONgraph

分析結果をグラフで出⼒
dot, png, jpg, svg, html
※可視化に優れたレポート

grok

分析結果を詳細なJSON 形式で出⼒※⾃動処理に向く

print

分析結果を簡潔なテキストで出⼒※コマンドラインで⽬視確認

query (probe と print のラッパー)(dnsviz.net で表⽰されるような) HTML 形式のレポートを出⼒するには"dnsviz prove" で 出⼒した JSON を⼊⼒として "dnsviz graph" を実⾏HTML 形式の場合、ブラウザで表⽰すると dnsviz.net 同様にマウスオーバーしたときのツールチップ表⽰もされるので HTML 形式が最も有益
14© 2024 Akamai Technologies

dnsviz コマンドの使い⽅ (例)% dnsviz probe -A -a . example.com > example.com.jsonAnalyzing .
Analyzing com
Analyzing example.com% dnsviz graph -T html -O < example.com.json% lsexample.com.html
example.com.json%dnsviz probe-A: リゾルバーではなく権威ネームサーバーにクエリー-a <ancestor>: 開始する上位ドメイン
ここではルート (.) を指定
dnsviz graph-T: 出⼒フォーマット
-O: ドメイン名とタイプから出⼒ファイル名を決定出⼒された HTML には図はインライン SVG として埋め込まれているが、「file:」型 URI で⽰された CSS と Javascript は必要
15© 2024 Akamai Technologies

dnsviz コマンドをエイリアスにしておく
bash / zsh の例% alias dviz='function _dviz(){ date=`date +%Y%m%d%H%M%S`;dnsviz probe -A -a . $1|tee $1-$date.json|dnsviz graph -T html -o $1-$date.html;};_dviz'% dviz example.com
Analyzing .
Analyzing com
Analyzing example.com% ls
example.com-20240612151348.html
example.com-20240612151348.json%• 何回も実⾏し、履歴を確認したくなるのでファイル名に⽇付をいれて保存• 中間の json 形式で保存しておくと将来別の形式で出⼒したり、バージョンが変わった時に便利
16© 2024 Akamai Technologies

ちょっと抜き打ち調査
TOPIX 企業のドメイン名 2168 (DNSOPS.JP「統計」ページより) のうち 100 件を無作為抽出
Error があったもの: 5 ドメイン / Warning があったもの: 12 ドメイン
いずれかがあったもの: 15 ドメイン (両⽅あったものが 2)
Error の例
• ワイルドカードに設定されているとみられる CNAME の他社ドメインにおいて FQDN の上位ドメイ
ンが NXDOMAIN 応答 (RFC 8020 ⾮準拠)
• 複数あるネームサーバーのうち 1 つが応答しない、UDP では応答があるが TCP では応答がない
Warning の例• リファーラル / グルーと権威ネームサーバーの返す NS やそれに対応した A / AAAA が異なる
(利⽤している権威 DNS サービスやレジストリ側の事情も︖)• ⼀部の応答に AA フラグが⽴っていない17© 2024 Akamai Technologies

DNSViz - まとめ••DNSSEC 関連だけでなく権威ネームサーバのあらゆる問題や委任の問題も細かく調査して可視化してくれて、⾮常に有益
コマンドラインでローカルで実⾏できるインストールがちょっと⾯倒•
コマンドラインがちょっと複雑→ 苦労する価値はあるはず••18

DNS / DNSSEC について勉強する際、⼈に説明する際にも便利© 2024 Akamai Technologies

19© 2024 Akamai Technologies