アカマイの権威 DNS サービス /あたらしかった dig
アカマイ・テクノロジーズ合同会社
シニア・ソリューションズ・エンジニア

松本 陽⼀

1

© 2024 Akamai Technologies

アカマイの権威 DNS サービス

世界で最も分散された Akamai Connected Cloud 上に数千台のサーバーで構成された権威 DNS
ソリューションNE W

Shield NS53

動的セキュリティーポリシーを備えた DNS プロキシ

ク

エ

リー＆レス

ポンス

ゾーンデータEdge DNS

フィ

ードバ

ック

プライマリー・セカンダリーの権威 DNS ゾーン管理

統合解析
2© 2024 Akamai Technologies

負荷フルサービス
リゾルバ

Global Traffic Management
クラウド型 GSLB

権威 DNS、GSLB
その他
オンプレのインフラ

Edge DNS

プライマリー、セカンダリーの権威ゾーンデータ管理• 最⼤規模の DDoS に対してもパフォーマンスと可⽤性を継続的に確保できるように設計された権威 DNS サービス• GUI、API、ゾーン転送による柔軟なゾーンデータ管理• 詳細なトラフィックレポート、ログの提供• ⾃動化された DNSSEC の鍵管理と署名• アカマイの配信系サービスを利⽤するにあたってゾーン頂点にCNAME を設定できない課題を解決• トラフィック量に左右されない課⾦体系

3© 2024 Akamai Technologies

Global Traffic Management

アカマイの配信技術に裏付けられた⾼機能なクラウド型 GSLB サービス

• 最⼤規模の DDoS に対してもパフォーマンスと可⽤性を継続的に確保できるように設計されたクラウド型 GSLB• EDNS Client Subnet (ECS) を活⽤し、アカマイの配信を⽀えるインテリジェンスに基づく地理マッピング• 負荷フィードバックに基づく⾼精度な加重負荷分散• クラウドからの監視に基づく動的フェイルオーバー• API によるリアルタイムな設定変更• トラフィック量に左右されない課⾦体系

4© 2024 Akamai Technologies

Shield NS53

オンプレの権威ネームサーバーを DDoS から保護するクラウド権威 DNS プロキシ

• GSLB 装置等アプライアンス型の権威ネームサーバーを利⽤している等といった理由で Edge DNS に移⾏できないユーザーに DDoSからの保護を提供• IP エニーキャストで分散された豊富なキャパシティーをもつ拠点の DNS プロキシでキャッシュ、応答• ⽔責め (PRSD、NXDOMAIN) 攻撃に対する保護機能• GUI、API による柔軟な設定管理• 顧客権威ネームサーバーに対するヘルスチェックとフェイルオーバー
5© 2024 Akamai Technologies

あたらしかった dig

6© 2024 Akamai Technologies

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

7© 2024 Akamai Technologies

DNS Summer Day 2023「あたらしい dig」
おかげさまで好評でした「あたらしい dig」の内容• dig は DNS のふるまいを表現する標準語• 思わぬ落とし⽳• バージョンによって異なるデフォルト動作• ANY クエリーはデフォルトで TCP• 知られざる便利なオプション• クエリも表⽰する +qr• dig のオプションを整理
Qiita にふり返りの記事を書きました
https://qiita.com/ymatsumo/items/5a64cc19ebe432a05931
8© 2024 Akamai Technologies

「チートシート、助かります︕」
発表では分類しただけだったのですが… 作りました︕• A4 ⼀枚 (PDF)に• 簡単な説明• デフォルト値

Qiita の記事で紹介しています。
「dig の全てのコマンドラインオプションを⼀覧にしたシートを作成しました」
https://qiita.com/ymatsumo/items/5a64cc19ebe432a05931
9© 2024 Akamai Technologies

「+qr オプション、知りませんでした︕」「+yaml オプション、知りませんでした︕」• yq というツールが便利
https://github.com/mikefarah/yq
YAML に対して jq と同じ操作ができる例) RCODE だけ取り出す% dig +yaml example.com MX |yq'.[].message.response_message_data.status'
NOERROR%yq は XML や CSV にも対応

• +qr と +yaml を組み合わせると最強(+yaml は dig のバージョン 9.16〜)
10© 2024 Akamai Technologies

kkey=value 形式で⼈の⽬にもわかりやすい「メッセージ・フォーマットとの対応が欲しい」

11© 2024 Akamai Technologies

dig による DNS リクエストメッセージのデフォルト値と指定するためのコマンドラインオプション ※ EDNS オプションなし (+nocookie) の前提
1

2

3456789101112131415

ID: ランダム値+qid=VALUE
QR: query(0)OPCODE: QUERY(0)+opcode=VALUE

AA: 0TC: 0
RD: 1
RA: 0+[no]aaflag +[no]tcflag +[no]rdflag +[no]raflag+[no]aaonly+[no]recurse

Z: 0+[no]zflag

AD: 1
CD: 0+[no]adflag +[no]cdflag

QDCOUNT:1+[no]header-only
ANCOUNT: 0NSCOUNT: 0ARCOUNT: 1+[no]edns
QNAME-q NAMEQTYPE: A-t TYPEQCLASS: IN-c CLASSNAME: .
TYPE: OPT (41)
UDP Payload Size: 1232+bufsize=VALUE
Extended RCODE: 0
DO: 0+[no]do+[no]dnssec

EDNS Version: 0+edns=VALUE
Z: 0+ednsflags=VALUERDLENGTH:0

12© 2024 Akamai Technologies

RCODE: NOERROR(0)16「kdig 版ください︕」

13© 2024 Akamai Technologies

「kdig 版ください︕」(´･ω･`)しらんがな…でもざっくり⽐較
dig (9.19.24) と kdig (3.3.5) で⽐較• 右に⽰したあたりはほぼ共通• コメント表⽰部分を制御する+comments の効果が少し違い、+cmd のかわりに +header• dig にしかないもの .. たくさん
• kdig にしかないもの .. 次ページ
14

© 2024 Akamai Technologies-4+[no]bufsize=B-6+[no]edns[=N]@server+[no]dnssec-p port+[no]nsid-b address+[no]subnet=SUBN+[no]tcp+[no]expire+[no]keepopen+[no]cookie[=HEX]+[no]https[=URL]+[no]padding[=N]+[no]https-get+[no]ednsopt=CODE[:HEX]+[no]tls-x address+[no]tls-ca[=FILE]+[no]all+[no]tls-hostname=STR+[no]question+[no]tls-certfile=FILE+[no]answer+[no]tls-keyfile=FILE+[no]authority+[no]proxy=SADDR+[no]additional
DADDR+[no]stats+[no]retry=N+[no]qr+[no]timeout=T+[no]ttl+[no]ignore+[no]class+[no]badcookie+[no]crypto+[no]aaflag+[no]generic+[no]tcflag(+[no]unknownformat 相当)+[no]rdflag, +[no]recurse +[no]multiline+[no]raflag+[no]short+[no]zflag+noidn+[no]adflag-V (-v 相当)+[no]cdflag-h-q name / -t type / -c class-k keyfile-y [algo:]keyname:key

dig にはなく kdig にあるコマンドラインオプション• +[no]opt• +[no]opttext• +[no]optpresesnt• +[no]tsig• +[no]fastopen• +[no]tls-pin=BASE64• +[no]tls-sni=STR• +[no]tls-ocsp-staping[=H]• +[no]quic• +[no]alignment[=N]• +[no]json• -d• EDNS の表⽰に関する制御• 暗号化周りのサポートが広い• +fastopen も興味深い• +json は (dig の +yaml と異なり)アンサーも構造化してくれる• dnstap 形式 (tapfile) サポート
-E 保存 -G 読み込み
• dig にはない +notsig があるのに +onesoa がな
い︖• -E tapfile• -G tapfile15© 2024 Akamai Technologies

なお、kdig では NOTIFY でシリアルが指定できる

16© 2024 Akamai Technologies