知っておくとちょっと便利!dig コマンドの使い方

◆ Live配信スケジュール ◆
サイオステクノロジーでは、Microsoft MVPの武井による「わかりみの深いシリーズ」など、定期的なLive配信を行っています。
⇒ 詳細スケジュールはこちらから
⇒ 見逃してしまった方はYoutubeチャンネルをご覧ください
【6/19開催】Kong Community Japan Meetup #4
本イベントでは、Kong Inc. のVP of ProductであるReza Shafii氏もプレゼンターとして参加。当社からはアーキテクト マネージャーの槌野の登壇が決定!参加無料です!!
https://column.api-ecosystem.sios.jp/connect/kong/1081/

【6/21開催】開発者目線でのSBOMとの向き合い方
SBOMの導入から開発者がSBOMの作成・管理を自動で行っていくための方法(デモ)を紹介します。SBOMを全く知らない人から、開発との統合までを紹介するので様々なレベルの方に学びがあるライブとなる予定です!
https://tech-lab.connpass.com/event/321422/

【7/19開催】現場で役立つAzure神小技10+α 〜生成AI,RAG,コスト削減など旬な技術満載のLT大会〜
Azureの最新技術や実用的な小技を紹介する特別なライトニングトーク大会を開催します!
https://tech-lab.connpass.com/event/319077/

【7/26開催】最適なIaCツールを選ぼう
プロジェクトでのツール選びに困らないための重要な観点をご説明します!
https://tech-lab.connpass.com/event/319532/

今号では、dig コマンドの使い方やオプションについてご紹介します!

dig コマンドとは

dig コマンドは、DNS サーバに問合せを行ない、様々な情報を取得することができるコマンドです。

主に、下記の用途で使用される事が多いです。
 ・ホスト名から IP アドレスを調べる (正引き)
 ・IP アドレスからホスト名を調べる (逆引き)
 ・MX レコード (メールサーバ)、NS レコード (ネームサーバ) などの詳細な情報を取得する

dig コマンドにより DNS サーバに関する詳細を確認できるため、DNS に関連する設定に誤りがないか、
またネットワークの問題が発生した際に、名前解決に問題がないか等を確認できます。

dig コマンドのインストール

dig コマンドは bind-utils パッケージに含まれるコマンドです。
デフォルトではインストールされていないため (RHEL6~RHEL9 の環境で確認済み)、
まずは bind-utils をインストールしましょう。

# dnf install bind-utils

基本の使い方・結果の見方

  • A レコード (IPv4 アドレス) の情報を表示する

    dig コマンドの後にホスト名を入力すると、A レコード (IPv4 アドレス) の情報 が表示されます。

    # dig example.com
    
    ; <<>> DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 <<>> example.com
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35036
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;example.com.                   IN      A
    
    ;; ANSWER SECTION:
    example.com.            300     IN      A       93.184.215.14
    
    ;; Query time: 0 msec
    ;; SERVER: 172.31.0.2#53(172.31.0.2)
    ;; WHEN: Thu May 16 04:39:46 UTC 2024
    ;; MSG SIZE  rcvd: 56
    

    QUESTION SECTION:  example.com の A レコードへの問合せであることを示します。
    ANSWER SECTION:  example.com の A レコードが 93.184.215.14 であることを示します。
    Query time:  問合せにかかった時間 (この場合は 2ミリ秒) を示します。
    SERVER:  問合せを行なった DNS サーバのアドレス (この場合は 172.31.0.2) を示します。

  • AAAA レコード (IPv6 アドレス) の情報を表示する

    最初の例では IPv4 の情報のみ表示されますが、AAAA レコード (IPv6 アドレス) の情報を
    表示したい場合は、ホスト名の後に AAAA と記載します。
    すると、ANSWER SECTION の IP アドレスが、IPv6 に変化していることが分かります。

    # dig example.com AAAA
    
    ; <<>> DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 <<>> example.com AAAA
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6927
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;example.com.                   IN      AAAA
    
    ;; ANSWER SECTION:
    example.com.            300     IN      AAAA    2606:2800:21f:cb07:6820:80da:af6b:8b2c
    
    ;; Query time: 1 msec
    ;; SERVER: 172.31.0.2#53(172.31.0.2)
    ;; WHEN: Thu May 16 04:39:51 UTC 2024
    ;; MSG SIZE  rcvd: 68
    
  • MX レコード (メールサーバ) の情報を表示する

    メールサーバに関連する情報を表示したい場合は、ホスト名の後に MX と記載します。
    すると、ANSWER SECTION に MX レコードの情報 (mail.example.com) および優先度 (10) が
    表示されていることが分かります。

    # dig example.com MX
    ; <<>> DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 <<>> example.com MX
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45524
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;example.com.        IN    MX
    
    ;; ANSWER SECTION:
    example.com.    3599    IN    MX    10 mail.example.com.
    
    ;; Query time: 32 msec
    ;; SERVER: 172.31.0.2#53(172.31.0.2)
    ;; WHEN: Thu May 16 04:39:57 UTC 2024
    ;; MSG SIZE  rcvd: 64
    
  • NS レコード (ネームサーバ) の情報を表示する

    ネームサーバに関連する情報を表示したい場合は、ホスト名の後に NS と記載します。
    すると、ANSWER SECTION に NS レコードの情報 (ns1.example.com と ns2.example.com) が
    表示されていることが分かります。

    # dig example.com NS
    
    ; <<>> DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 <<>> example.com NS
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7825
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;example.com.            IN    NS
    
    ;; ANSWER SECTION:
    example.com.        3600    IN    NS    ns1.example.com.
    example.com.        3600    IN    NS    ns2.example.com.
    
    ;; Query time: 32 msec
    ;; SERVER: 172.31.0.2#53(172.31.0.2)
    ;; WHEN: Thu May 16 04:41:02 UTC 2024
    ;; MSG SIZE  rcvd: 85
    
  • すべてのレコードの情報を表示する

    対象サーバのすべての情報を表示したい場合は、ホスト名の後に ANY と記載します。
    例として、メールサーバ example.com のすべての情報を表示した場合、ANSWER SECTION
    A レコード、AAAA レコード、MX レコードの情報が表示されていることが分かります。

    # dig example.com ANY
    
    ; <<>> DiG 9.10.3-P4-Ubuntu <<>> example.com ANY
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;example.com.        IN    ANY
    
    ;; ANSWER SECTION:
    example.com.        300    IN    A    93.184.215.14
    example.com.        300    IN    MX    10 mail.example.com.
    example.com.        300    IN    AAAA    2606:2800:21f:cb07:6820:80da:af6b:8b2c
    example.com.        300    IN    TXT    "v=spf1 mx -all"
    
    ;; Query time: 32 msec
    ;; SERVER: 172.31.0.2#53(172.31.0.2)
    ;; WHEN: Thu May 16 04:45:15 UTC 2024
    ;; MSG SIZE  rcvd: 128
    
  • 逆引きを行う

    逆引き (IP アドレスからホスト名を問合せる) を行いたい場合は -x オプションを指定します。
    すると、ANSWER SECTION に ホスト名 (server.example.com) が表示されていることが分かります。

    # dig -x 172.10.1.10
    
    ; <<>> DiG 9.11.36-RedHat-9.11.36-11.el8_9.1 <<>> -x 172.10.1.10
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57118
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 4096
    ;; QUESTION SECTION:
    ;10.1.10.172.in-addr.arpa.     IN      PTR
    
    ;; ANSWER SECTION:
    10.1.10.172.in-addr.arpa. 264  IN      PTR     server.example.com.
    
    ;; Query time: 0 msec
    ;; SERVER: 172.31.0.2#53(172.31.0.2)
    ;; WHEN: Thu May 16 05:56:08 UTC 2024
    ;; MSG SIZE  rcvd: 115
    
アバター画像
About 貝野 友香 73 Articles
OSSよろず相談室でサポートをやっています。時々ライブ配信や勉強会に出ていることもあります。
ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。


ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

Be the first to comment

Leave a Reply

Your email address will not be published.


*


質問はこちら 閉じる