LinuxのdigコマンドでDNSを確認する方法|Aレコード・MXレコード・NSレコードを調査してみよう




はじめに

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コマンドです。

似たコマンドにnslookuphostもありますが、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コマンドを使って確認してみてください。

コメント

タイトルとURLをコピーしました