digを使い、通常のrecursive resolverへ最終answerだけを求めず、rootからauthoritative serverまでのdelegationを順に追跡する。
適切なコマンドはどれか。
dig +traceはroot serverから始め、referralをたどってauthoritative answerへ進むため、delegation問題の切り分けに使える。
詳細解説
dig +short example.test Aanswerを簡潔に表示するがdelegationを追跡しない。
誤り。+shortはconfigured resolverから得るanswerの表示を簡潔にするが、rootからdelegationを追わない。
dig +trace example.test Arootからiterativeにdelegationを追跡する。
正しい。+traceはroot serverへのqueryから始め、referral先を順にqueryしてauthoritative answerへ進む。
dig +tcp example.test AtransportをTCPへ変更するがdelegation追跡ではない。
誤り。+tcpはUDPではなくTCPを使う指定で、recursive/iterativeなquery経路をtraceへ変えない。
dig +noall example.test A表示sectionを抑えるoptionでtraceを有効にしない。
誤り。+noallは出力sectionを抑える表示optionで、delegation先への追加queryを有効にしない。
実際に確かめる
一時的な検証環境で実行できる例です。
printf '%s
' '+trace -> root, TLD, authoritative delegation path'期待される結果
+trace -> root, TLD, authoritative delegation path理解のポイント
- +trace
- iterativeな追跡
- +short/+tcpとは別
確認時の注意
- 確認環境: dig option対応表(DNS通信なし)
- 検証ではrootやauthoritative DNS serverへqueryを送信しない。
基礎のおさらい
delegation
parent zoneはchild zoneのNS recordと必要なglueを返し、resolverはauthoritative serverへqueryを進める。
診断範囲
+traceはclientから各authoritative serverへの到達性も必要で、local recursive resolverだけを検査する操作ではない。