はじめに
Webサイトの公開やサーバー移転、ドメイン設定を行っていると、「このドメインはいまどのサーバーを向いているのか?」を確認したい場面があります。
たとえば、DNSを変更したのにサイトが切り替わらない、メールが届かない、ネームサーバーが正しく変わっているか分からない、というケースです。
そんな時に便利なのが、Linuxのdigコマンドです。
digコマンドを使うと、ドメインに設定されているDNSレコードを確認できます。Aレコード、MXレコード、NSレコードなどをコマンドで確認できるため、DNSまわりの調査ではかなりよく使われます。
この記事では、digコマンドの基本的な使い方と、Aレコード・MXレコード・NSレコードの確認方法を初心者向けに解説します。
digコマンドとは
digは、DNSサーバーに問い合わせを行い、ドメインの情報を確認するためのコマンドです。
DNSとは、ドメイン名とIPアドレスなどを紐付ける仕組みです。
たとえば、ブラウザでWebサイトを見る時、裏側では次のような流れが行われています。
example.comにアクセス
↓
DNSサーバーに問い合わせ
↓
IPアドレスを取得
↓
Webサーバーにアクセス
人間はexample.comのようなドメイン名を見てアクセスしますが、サーバー同士の通信ではIPアドレスが使われます。
この「ドメイン名がどのIPアドレスを向いているか」を確認できるのが、digコマンドです。
似たコマンドにnslookupやhostもありますが、digは表示される情報が詳しく、DNS調査ではよく使われます。
digコマンドの基本的な使い方
基本形はとてもシンプルです。
dig ドメイン名
たとえば、GoogleのDNS情報を確認する場合は次のように実行します。
dig google.com
実行すると、DNSサーバーから返ってきた結果が表示されます。
中でもよく見るのは、次の項目です。
QUESTION SECTION
ANSWER SECTION
AUTHORITY SECTION
ADDITIONAL SECTION
それぞれの意味はざっくり以下の通りです。
| 項目 | 内容 |
|---|---|
| QUESTION SECTION | 何を問い合わせたか |
| ANSWER SECTION | 問い合わせ結果 |
| AUTHORITY SECTION | 権威DNSサーバー情報 |
| ADDITIONAL SECTION | 補足情報 |
初心者のうちは、まずANSWER SECTIONを見ればOKです。
ここに、実際に返ってきたDNSレコードの情報が表示されます。
Aレコードを確認する
Aレコードは、ドメイン名とIPv4アドレスを紐付けるDNSレコードです。
Webサイトがどのサーバーを向いているかを確認したい時によく使います。
dig example.com A
イメージとしては、以下のような関係です。
example.com
↓
Aレコード
↓
192.0.2.1
つまり、example.comというドメインにアクセスした時、どのIPアドレスのサーバーへ向かうのかを確認できます。
サーバー移転やShopifyへの移行、WordPressサイトの引っ越しなどでは、このAレコードの確認がかなり重要です。
DNSを変更したつもりでも、実際には古いIPアドレスが返ってきていることがあります。その場合、ブラウザで見ているサイトがまだ旧サーバーのまま、ということもあります。
MXレコードを確認する
MXレコードは、メールサーバーを指定するためのDNSレコードです。
メールがどのサーバーで受信されるかを決める情報です。
dig example.com MX
イメージとしては、以下のような関係です。
example.com
↓
MXレコード
↓
mail.example.com
Webサイトの表示には問題がなくても、メールが届かない場合はMXレコードの設定が関係していることがあります。
たとえば、Google WorkspaceやMicrosoft 365を利用している場合、指定されたMXレコードをDNSに設定する必要があります。
MXレコードが間違っていると、メールが正しいメールサーバーに届かなくなります。
そのため、メール設定を変更した後は、digコマンドでMXレコードを確認しておくと安心です。
NSレコードを確認する
NSレコードは、そのドメインのDNS情報をどのネームサーバーが管理しているかを示すレコードです。
dig example.com NS
イメージとしては、以下のような関係です。
example.com
↓
NSレコード
↓
ns1.example.com
ネームサーバーを変更した後に、正しく切り替わっているか確認したい時に使います。
たとえば、ムームードメイン、エックスサーバー、さくらインターネット、Cloudflareなど、DNSを管理するサービスを変更した場合、NSレコードを確認することで、現在どこがDNS管理先になっているか分かります。
Webサイト移行では、Aレコードだけでなく、このNSレコードの確認も大切です。
DNSレコードを変更しても、そもそも参照しているネームサーバーが違っていれば、変更内容が反映されないからです。
結果をシンプルに表示する
digコマンドは便利ですが、通常の実行結果は少し長めです。
IPアドレスだけ確認したい場合は、+shortオプションを使うと見やすくなります。
dig example.com +short
Aレコードだけを簡単に確認したい時は、次のように使えます。
dig example.com A +short
MXレコードなら以下です。
dig example.com MX +short
NSレコードなら以下です。
dig example.com NS +short
調査中に何度も確認する場合は、+shortを使った方がかなり見やすいです。
特定のDNSサーバーへ問い合わせる
DNSの反映状況を確認する時は、特定のDNSサーバーへ問い合わせることもできます。
たとえば、Google Public DNSに問い合わせる場合は以下です。
dig @8.8.8.8 example.com
Cloudflare DNSに問い合わせる場合は以下です。
dig @1.1.1.1 example.com
DNS切り替え直後は、問い合わせるDNSサーバーによって結果が違うことがあります。
たとえば、片方では新しいIPアドレスが返ってくるのに、もう片方では古いIPアドレスが返ってくる、というケースです。
これはDNSキャッシュの影響で、反映途中によく起こります。
そのため、DNS切り替えを確認する時は、複数のDNSサーバーに問い合わせてみるのがおすすめです。
digコマンドを使う場面
digコマンドは、以下のような場面でよく使います。
サイト移転時
サーバーを移転した時に、ドメインが新しいサーバーのIPアドレスを向いているか確認できます。
dig example.com A
Aレコードが新しいIPアドレスになっていれば、DNS設定としては新サーバーを向いていることが分かります。
ネームサーバー変更時
DNS管理先を変更した時に、NSレコードを確認します。
dig example.com NS
想定しているネームサーバーが返ってくれば、ネームサーバー変更が反映されていると判断できます。
メール設定変更時
メールサーバーを変更した時は、MXレコードを確認します。
dig example.com MX
メールが届かない場合、MXレコードが古いままになっていないか確認すると原因調査に役立ちます。
DNS切り替え確認時
DNS変更後に、現在どの情報が返ってきているかを確認できます。
dig @8.8.8.8 example.com
dig @1.1.1.1 example.com
複数のDNSサーバーで確認することで、反映状況をより正確に把握できます。
注意点
DNSキャッシュの影響を受ける
DNS情報は、変更してすぐに全世界へ反映されるわけではありません。
DNSサーバーや利用者の環境にキャッシュが残っている場合、古い情報が返ってくることがあります。
そのため、DNSを変更した直後にdigで確認しても、まだ古い結果が表示されることがあります。
反映に時間がかかる場合がある
DNSの反映時間は、設定されているTTLや利用しているDNSサーバーによって変わります。
数分で切り替わることもあれば、数時間程度かかることもあります。
「設定したのに変わっていない」と焦る前に、複数のDNSサーバーで確認したり、少し時間を置いて再確認することが大切です。
Aレコードだけ見ればよいわけではない
Webサイトの表示確認ではAレコードを見ることが多いですが、DNSまわりの確認はそれだけでは不十分な場合があります。
たとえば、メールが関係するならMXレコード、DNS管理先が関係するならNSレコードも確認する必要があります。
目的に応じて、確認するレコードを使い分けましょう。
まとめ
今回は、LinuxのdigコマンドでDNS情報を確認する方法を解説しました。
digコマンドを使うと、ドメインに設定されているDNSレコードをコマンドで確認できます。
よく使うコマンドをまとめると以下です。
dig example.com
dig example.com A
dig example.com MX
dig example.com NS
dig example.com +short
dig @8.8.8.8 example.com
AレコードはWebサーバーの確認、MXレコードはメールサーバーの確認、NSレコードはネームサーバーの確認に使います。
DNSの設定変更やサーバー移転、Shopify移行、メール設定の確認など、実務でもかなり使う場面が多いコマンドです。
最初は結果の見方が少し難しく感じるかもしれませんが、まずはANSWER SECTIONを見ることから始めれば大丈夫です。
DNSまわりのトラブル調査をする時は、ぜひdigコマンドを使って確認してみてください。


コメント