ネットワークの「迷子」を探せ!DNS応答の読み解き方でトラブルを解決しよう
インフラエンジニアの現場にいると、必ずと言っていいほどぶつかる壁が「名前解決ができない」という問題です。
「Webサイトが見られない」「サーバー間通信が通らない」。そんな時、真っ先に疑うのはDNS(Domain Name System)ですよね。しかし、ただ ping を打って「応答がないな」と悩むだけでは、現場のシニアエンジニアとしては少し物足りません。
DNSは、いわばインターネット上の「住所録」です。今日は、皆さんと一緒に dig コマンドを使って、DNSという名の郵便局が何を言っているのか、その「封筒の裏側(ヘッダー)」を覗き込む方法を学んでいきましょう!
—
1. 郵便配達員に例えてみよう
DNSの仕組みを理解するために、身近な郵便配達に例えてみます。
あなたが「example.com の住所を教えて!」と手紙(クエリ)を投げたとします。DNSサーバーという名の郵便局がそれを受け取り、返事(レスポンス)をくれます。その返事の封筒には、「Flags(フラグ)」という郵便局員からのメモと、「RCODE(ステータスコード)」という配達結果が書かれています。
このメモを読むことができれば、「宛先不明なのか?」「郵便局が忙しすぎて処理できなかったのか?」といった障害の原因が、一瞬で見えてくるのです。
—
2. まずは dig を叩いてみよう
まずは、手元の環境でコマンドを打ってみましょう。
# example.com の情報を問い合わせる
dig example.com
出力結果の中に ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, ... や status: NOERROR といった表示が出てくるはずです。これが今回の主役です。
注目すべきは「status」と「flags」
status(RCODE):配達の結果です。flags:郵便局員が残した「この手紙はどう処理されたか」のメモです。
—
3. よく遭遇する「お困りエラー」を読み解く
現場で最も遭遇する「困った時の応答」をいくつか見ていきましょう。
① status: NXDOMAIN :「そんな住所は存在しません!」
郵便局員がどれだけ探しても、宛先の住所が存在しない場合に返ってきます。
- 原因の切り分け:ドメイン名の打ち間違いか、既に廃止されたドメインである可能性が高いです。設定ファイル(
zoneファイル)を見直すか、本当に正しいドメイン名かを確認しましょう。
② status: SERVFAIL :「郵便局がパンクしています!」
DNSサーバーが忙しすぎたり、上流のDNSサーバーとの通信がうまくいかなかったりした時に返ってきます。
- 原因の切り分け:サーバーの負荷が高い、あるいは通信経路でパケットがドロップされている可能性があります。まずは
digで別のDNSサーバー(8.8.8.8など)に問い合わせてみて、特定のサーバーだけの問題か切り分けましょう。
# GoogleのDNSサーバーに問い合わせてみる
dig example.com @8.8.8.8
—
4. フラグ(Flags)を読み解く:郵便局の裏側
flags にある qr, rd, ra といったアルファベット、最初は呪文に見えますよね。これらは郵便局の「やり取りの作法」を示しています。
qr(Query Response):これがついていると「あ、これは応答の封筒なんだな」と分かります。rd(Recursion Desired):「再帰問い合わせをお願い!」というリクエスト。あなたが郵便局に「知らない住所なら、他の郵便局に聞いてきて!」と頼んでいる状態です。ra(Recursion Available):「再帰問い合わせに対応できるよ!」という郵便局からの返事。「あなたの代わりに調べてあげますよ」という親切なメッセージですね。
もし、自分が再帰問い合わせをお願いしたのに ra が返ってこない場合、そのDNSサーバーは「あなたの代行はできません」と拒否していることになります。これは設定ミスやセキュリティ上の制限であることが多いですよ。
—
5. まとめ:泥臭い調査の第一歩
トラブルシューティングの極意は、「見えないパケットの行方を可視化すること」です。
1. dig コマンドで応答を確認する。
2. status でエラーの種類(存在しないのか、処理できないのか)を特定する。
3. flags でDNSサーバーがどのような挙動をしているか(親切か、拒否しているか)を確認する。
教科書を丸暗記するのではなく、「今、このDNSサーバーはどんな顔をして返事をしたのかな?」と想像してみてください。その視点を持つだけで、皆さんのトラブルシューティング能力はぐっと引き上がります。
ネットワークの世界は広大ですが、一つひとつのパケットを丁寧に追っていけば、必ず答えが見つかります。焦らず、一歩ずつ進んでいきましょう!また現場でお会いしましょうね。
コメント