DNS ツール
100%

DNS · レッスン 6

DNS ツール

getent、resolvectl、dig を使い、システムの名前解決と直接の DNS 問い合わせを比較する方法を学びます。

DNS のトラブルシューティングは、どの層をテストしているか特定するところから始まります。システム resolver のツールはローカルファイルとポリシーを含みますが、dignslookup は DNS 問い合わせを送り、特定サーバーを直接対象にできます。

システム Resolver をテストする

通常のホスト名前サービス経路を使います。

$ getent ahosts www.example.com

systemd-resolved のホストでは、リンクごとのサーバー、search domain、プロトコル状態を調べます。

$ resolvectl status
$ resolvectl query www.example.com

アプリケーションが独自 resolver library や proxy を使う場合もあるため、出力が異なるときはアプリケーション経由でも再現してください。

設定されたシステムの名前サービス経路を動かすコマンドはどれですか?

dig で問い合わせる

名前とレコード型を指定します。

$ dig www.example.com A
$ dig www.example.com AAAA
$ dig example.com MX

出力には応答サーバー、status、flag、question、answer、authority、additional data、query time、transport metadata が示されます。+short はスクリプトに便利ですが、診断に必要な証拠を隠します。

IPv6 address レコードを要求する問い合わせはどれですか?

サーバーを選ぶ

resolver または authoritative server を明示的に指定します。

$ dig @192.0.2.53 www.example.com A

cache と authority を切り分けるときは、設定済み recursive resolver、承認済みの二つ目の resolver、各 authoritative server を比較します。NOERROR status でも要求した answer がない場合があります。NXDOMAIN は問い合わせた名前が存在しないこと、SERVFAIL はサーバーが問い合わせを完了できなかったことを意味します。

NOERROR でも answer section が空になることはありますか?

Recursion と Authority を確認する

問い合わせの rd は recursion を要求し、応答の ra はサーバーが recursion を提供することを示します。aa は answer が authoritative であることを意味します。authoritative server へは +norecurse で問い合わせ、recursive cache と提供中の zone data を混同しないようにします。

dig +trace NAME は root hint から独自に反復探索します。production resolver の cache、forwarding、policy、DNSSEC validation、network location を通らないため、その resolver とは結果が異なる場合があります。

応答の aa flag は何を意味しますか?

Reverse Query と TCP Query をテストする

-x を使って reverse PTR query を組み立てます。

$ dig -x 192.0.2.25

truncation、zone transfer、ファイアウォール差異を調べるときは、TCP 上の DNS をテストします。

$ dig +tcp @192.0.2.53 example.com SOA

現代の DNS は UDP または TCP のポート 53 を使えます。必要な場所では両方を許可すべきです。UDP answer に truncation flag があると、準拠クライアントは適切なトランスポートで再試行します。

dig +tcp は何を変更しますか?

レッスン完了

DNS ツール を完了しました

これで、調査対象の resolver 層に合った DNS ツールを選べます。

  • 設定済みシステム resolver の経路には getent を使う。

  • 明示的なレコード型とサーバーを指定して dig を使う。

  • status、flag、section、応答サーバーをまとめて解釈する。

  • recursive cache と authoritative data を区別する。

  • reverse query と、必要な両方の DNS transport をテストする。

学習進捗を保存

無料アカウントを作成してこのレッスンを保存し、どのデバイスからでも学習を続けられます。

無料アカウントを作成
DNS に戻る