ビュー:

基本的なコマンドの使い方についてはコマンドの使用方法、コマンドの実行結果やその読み方についてはコマンドの実行例のセクションを参照してください。

コマンドの使用方法

一般的に、Windows マシンではコマンドプロンプト上で nslookup コマンドを使用して DNS を確認します。一方、Linux マシンではシェル上で dig コマンドを使用して DNS を確認します。

nslookup コマンド (Windows)

nslookup コマンドは対話モードで確認する方法と非対話モードで確認する方法 (1行のコマンドで確認する方法) の2通りがあります。

いずれの場合でも、特に DNS サーバを指定しなければ OS に設定された DNS サーバに DNS クエリが送信され、結果が返されます。

対話モード

コマンドプロンプトを起動して nslookup と入力して実行すると、対話モードが開始されます。

>nslookup
>

以下のようにクエリするホストのみを指定した場合、A レコードが返されます。

>nslookup
> www.google.com

A レコード以外のリソースレコードを確認するには "set type=mx" や "set type=txt" などのオプションを指定してクエリを送信します。例えば、gmail.com の MX レコードを確認する場合には次のコマンドを順に実行します。

> set type=mx
> gmail.com
非対話モード

nslookup では、対話モードを使用せずに 1行 のコマンドで DNS サーバにクエリを送信し、リソースレコードを確認することも可能です。

以下のようにクエリするホストのみを指定した場合、A レコードが返されます。

>nslookup www.google.com

A レコード以外のリソースレコードを確認するには "-type=mx" や "-type=txt" などのオプションを指定してクエリを送信します。例えば、gmail.com の MX レコードを確認する場合には以下のようにコマンドのオプションに "-type=mx" を指定してコマンドを実行します。

>nslookup -type=mx gmail.com

dig コマンド (Linux)

Linux では nslookup コマンドも用意されていますが、通常 dig コマンドを使用します。

特に DNS サーバを指定しなければ OS に設定された DNS サーバに DNS クエリが送信され、結果が返されます。また、以下のようにチェックするリソースレコードを指定しなければ、A レコードが返されます。

# dig www.google.com

A レコード以外のリソースレコードを確認するには、ドメイン (ホスト) のあとに "mx" や "txt" などのクエリのオプションを指定してクエリを送信します。例えば、gmail.com の MX レコードを確認する場合には以下のように "mx" を追加してコマンドを実行します。

# dig gmail.com mx

コマンドの実行例

nslookup であれ dig コマンドであれ、送信されたクエリに対し、DNS サーバが返す応答に違いはありませんが、画面に表示される内容が異なります。ここではコマンドの実行例とその応答内容の読み取り方を説明します。

  • nslookup コマンドを実行した場合、クエリ先の DNS サーバが管理するドメインでなければ、そのドメインの権威ネームサーバではないため、応答に「権限のない回答」と表示されます。

  • nslookup コマンドで TTL (Time To Live) を確認したい場合には "-debug" オプションを指定してコマンドを実行する必要があります。

  • レコードが存在しない場合、nslookup コマンドでは応答にレコードが表示されません。dig コマンドの場合、"ANSWER SECTION" の行が存在しません。

MX レコードを確認する

例えばドメイン example.com の MX レコードを確認するにはそれぞれ以下のコマンドを実行します。

(nslookup コマンド)
>nslookup -type=mx example.com
...
example.com        MX preference = 10, mail exchanger = mail.example.com
...
(dig コマンド)
# dig example.com mx
...
;; ANSWER SECTION:
example.com.	300	IN	MX	10 mail.example.com.
...

この場合、まず "10" が MX レコードのプリファレンス (優先度) を示し、プリファレンスの数値が小さければ優先度は高くなります。

次に、"mail.example.com" がドメイン example.com の MX ホストとなります。

dig コマンドの "300" は TTL を示します。単位は秒で、300 であれば 5分、86400 であれば 24時間 となります。

また、次のように複数の MX レコードが返される場合もあります。

(nslookup コマンド)
>nslookup -type=mx example.com
...
example.com        MX preference = 10, mail exchanger = mail1.example.com
example.com        MX preference = 20, mail exchanger = mail2.example.com
...
(dig コマンド)
# dig example.com mx
...
;; ANSWER SECTION:
example.com.	300	IN	MX	10 mail1.example.com.
example.com.	300	IN	MX	20 mail2.example.com.
...

この場合、mail1.example.com の方が優先度が高い (プリファレンスの数値が小さい) ので、優先的に mail1.example.com にメッセージの配送が試みられます。サーバに接続できないなど、mail1.example.com への配送に失敗する場合、mail2.example.com に配送が試みられます。

TXT レコードを確認する

TXT レコードにはテキストの文字列を自由に指定することができます。TMEmS および HES において主に使用される TXT レコードは、ドメイン確認の TXT レコードと、SPF (Sender Policy Framework) レコードです。

例えばドメイン example.com の TXT レコードを確認するにはそれぞれ以下のコマンドを実行します。

(nslookup コマンド)
>nslookup -type=txt example.com
...
example.com  text =

        "tmes=<32桁の英数字>"
example.com  text =

        "v=spf1 ip4:203.0.113.1 ip4:203.0.113.100 include:spf.tmes.trendmicro.com ~all"
...
(dig コマンド)
# dig example.com txt
...
;; ANSWER SECTION:
example.com.	300	IN	TXT	"tmes=<32桁の英数字>"
example.com.	300	IN	TXT	"v=spf1 ip4:203.0.113.1 ip4:203.0.113.100 include:spf.tmes.trendmicro.com ~all"
...

この場合、"tmes=" から始まる TXT レコードが TMEmS におけるドメイン確認の TXT レコードとなります。

SPF レコード

上記の TXT レコードで "v=spf1" から始まる TXT レコードが SPF レコードとなります。

"include" は spf.tmes.trendmicro.com の SPF レコードを再帰的に評価することを示しており、spf.tmes.trendmicro.com の SPF レコードを確認すると、さらに多くのIPアドレスが指定されていることがわかります。

(nslookup コマンド)
>nslookup -type=txt spf.tmes.trendmicro.com
...
spf.tmes.trendmicro.com text =

        "v=spf1 ip4:18.208.22.64/26 ip4:18.208.22.128/25 ip4:18.185.115.128/26 ip4:18.185.115.0/25 ip4:13.238.202.0/25 ip4:13.238.202.128/26 ip4:18.176.203.128/26 ip4:18.176.203.192/26 ip4:18.177.156.0/26 ip4:18.177.156.64/26 include:spfb.tmes.trendmicro.com  ~all"
...
(dig コマンド)
# dig spf.tmes.trendmicro.com txt
...
;; ANSWER SECTION:
spf.tmes.trendmicro.com.	300	IN	TXT	"v=spf1 ip4:18.208.22.64/26 ip4:18.208.22.128/25 ip4:18.185.115.128/26 ip4:18.185.115.0/25 ip4:13.238.202.0/25 ip4:13.238.202.128/26 ip4:18.176.203.128/26 ip4:18.176.203.192/26 ip4:18.177.156.0/26 ip4:18.177.156.64/26 include:spfb.tmes.trendmicro.com  ~all"
...

spf.tmes.trendmicro.com の SPF レコードにはさらに spfb.tmes.trendmicro.com の SPF レコードがインクルードされていますので、spfb.tmes.trendmicro.com の TXT レコードを確認します。

(nslookup コマンド)
>nslookup -type=txt spfb.tmes.trendmicro.com
...
spfb.tmes.trendmicro.com text =

        "v=spf1 ip4:18.188.9.192/26 ip4:18.188.239.128/26 ip4:34.253.238.128/26 ip4:34.253.238.192/26 ip4:18.197.208.213 ip4:18.184.15.245 ip4:18.197.37.28 ip4:35.157.33.67 ip4:3.121.19.15 ip4:3.123.213.180 ip4:3.126.205.42 ip4:18.158.139.138 ~all"
...
(dig コマンド)
# dig spfb.tmes.trendmicro.com txt
...
;; ANSWER SECTION:
spfb.tmes.trendmicro.com.	300	IN	TXT	"v=spf1 ip4:18.188.9.192/26 ip4:18.188.239.128/26 ip4:34.253.238.128/26 ip4:34.253.238.192/26 ip4:18.197.208.213 ip4:18.184.15.245 ip4:18.197.37.28 ip4:35.157.33.67 ip4:3.121.19.15 ip4:3.123.213.180 ip4:3.126.205.42 ip4:18.158.139.138 ~all"
...

SPF の検証ではこうしたインクルードされている SPF レコードに指定されているIPアドレスも含め、接続元のIPアドレスが SPF レコードに含まれていれば Pass と評価し、もし含まれていなければ、末尾の修飾子 ("-all" や "~all") に応じて Fail や Softfail と評価します。