dig・nslookup入門:DNS名前解決とレコード確認コマンド

スポンサーリンク

dig・nslookup入門:DNS名前解決とレコード確認コマンド

dig・nslookupとは

dignslookup はDNS名前解決の結果をコマンドラインで確認するツールです。ドメインのIPアドレス・メールサーバー・ネームサーバーなどを調べるときに使います。

ツール 特徴
dig 出力が詳細で柔軟。スクリプトや詳細調査向け
nslookup シンプルな出力。対話モードあり

インストール

macOSは標準でインストール済みです。

dig -v     # バージョン確認
nslookup   # 起動確認

Linuxでインストールされていない場合:

# Ubuntu/Debian
sudo apt install dnsutils

# CentOS/RHEL
sudo yum install bind-utils

dig の基本的な使い方

Aレコード(IPv4アドレス)を引く

dig example.com
;; ANSWER SECTION:
example.com.    86400   IN  A   93.184.216.34
フィールド 説明
86400 TTL(秒)。キャッシュの有効期限
IN Internetクラス
A レコードタイプ
93.184.216.34 値(IPアドレス)

短い出力で確認(+short)

dig example.com +short
# 93.184.216.34

スクリプトや素早い確認に使えます。

DNSサーバーを指定して引く

# Google Public DNSで確認
dig @8.8.8.8 example.com

# Cloudflare DNSで確認
dig @1.1.1.1 example.com

キャッシュの影響を除いた確認や、特定のDNSサーバーで引けるか確認したい場合に使います。


レコードタイプ別の引き方

Aレコード(IPv4)

dig example.com A +short
# 93.184.216.34

AAAAレコード(IPv6)

dig example.com AAAA +short
# 2606:2800:21f:cb07:6820:80da:af6b:8b2c

CNAMEレコード(別名)

dig www.example.com CNAME +short
# example.com.

MXレコード(メールサーバー)

dig example.com MX +short
# 10 mail.example.com.

数字はプリファレンス値で、小さいほど優先されます。

NSレコード(ネームサーバー)

dig example.com NS +short
# a.iana-servers.net.
# b.iana-servers.net.

TXTレコード(SPF・DKIM・ドメイン認証)

dig example.com TXT +short
# "v=spf1 -all"

逆引き(IPアドレス → ドメイン)

dig -x 93.184.216.34 +short
# 93.184.216.34.in-addr.arpa.

DNS解決経路をトレースする

dig example.com +trace

ルートDNSサーバーから順に解決経路をすべて表示します。「なぜこのDNSサーバーが返答しているのか」を追うときに使います。


nslookup の基本的な使い方

Aレコードを引く

nslookup example.com
Server:   192.168.1.1
Address:  192.168.1.1#53

Non-authoritative answer:
Name: example.com
Address: 93.184.216.34

レコードタイプを指定する

nslookup -type=MX example.com
nslookup -type=NS example.com
nslookup -type=TXT example.com
nslookup -type=CNAME www.example.com

DNSサーバーを指定する

nslookup example.com 8.8.8.8

対話モードで複数クエリを実行する

nslookup
> server 8.8.8.8     # DNSサーバーを変更
> set type=MX        # レコードタイプを変更
> example.com        # クエリを実行
> exit

dig と nslookup の比較・使い分け

用途 推奨コマンド
詳細な情報(TTL・フラグなど)を見たい dig
IPアドレスだけ素早く確認したい dig example.com +short
DNS解決経路をトレースしたい dig example.com +trace
スクリプトでDNS結果を処理したい dig
対話形式で複数レコードをまとめて調べたい nslookup
シンプルにドメインのIPを確認したい どちらでも可

出力形式の違い

# dig:詳細な応答情報を含む
dig example.com +short
# 93.184.216.34

# nslookup:接続したDNSサーバー情報も表示
nslookup example.com
# Server:   192.168.1.1
# Name:     example.com
# Address:  93.184.216.34

基本的には dig が推奨されます。出力が構造化されていてスクリプト処理しやすく、+short / +trace などのオプションが豊富です。nslookup は対話モードで複数クエリを試したい場面に向いています。


まとめ

レコード 用途 dig nslookup
A IPv4アドレス dig example.com A nslookup -type=A example.com
AAAA IPv6アドレス dig example.com AAAA nslookup -type=AAAA example.com
CNAME 別名 dig example.com CNAME nslookup -type=CNAME example.com
MX メールサーバー dig example.com MX nslookup -type=MX example.com
NS ネームサーバー dig example.com NS nslookup -type=NS example.com
TXT SPF・DKIM等 dig example.com TXT nslookup -type=TXT example.com
  • dig +short でIPだけを素早く確認できる
  • @8.8.8.8 でDNSサーバーを指定すれば、ローカルキャッシュを除いた確認ができる
  • dig +trace でルートDNSから解決経路を追える
  • 日常的な確認は dig +short、詳細調査は dig、対話的な確認は nslookup で使い分ける

コマンド補完を強化したい場合は「fzf入門:zshのhistory検索・ファイル検索を強化する設定」も参照してください。