連載
» 2003年12月13日 05時00分 公開

Tech TIPS:Windowsのnslookupの基本的な使い方(MXレコード編)

ドメインのメール・サーバの情報はMXレコードで定義されている。MXレコードの情報は、nslookup -type=mxで取得できる。

[打越浩幸,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000 Professional/Windows XP Home Edition/Windows XP Professional/Windows 2000 Server/Windows 2000 Advanced Server/Windows Server 2003


解説

 nslookupは、DNSサーバの動作をチェックするために使われる非常に基本的なコマンドである。別稿の「TIPS―nslookupの基本的な使い方(イントラネット編)」では、イントラネット用途におけるnslookupの基本的な使い方について解説した。ここでは、別の使い方としてドメインのMXレコードの取得方法と、その意味について解説する。

●メール・サーバ情報を定義するMXレコード

 DNSサーバには、Aレコード(名前→IPアドレスの定義)やPTRレコード(IPアドレス→名前の定義)、NSレコード(ネーム・サーバの定義)、SOAレコード(ドメインのオーソリティ情報の定義)、MXレコードなど、さまざまなレコード(情報)が登録されている。MXレコードは、Mail Exchangerの略であり、そのドメインにおけるメール・サーバに関する情報が登録されている。

 あるドメイン(組織)から別のドメインに対してメールを送信しようとするとき、送信元のメール・サーバは、送信先ドメインのDNSサーバに対してMXレコードの情報を問い合わせる。MXレコードには、当該ドメインにおけるメール・サーバとなっているコンピュータの名前(FQDN名)とIPアドレスなどの情報が含まれており、これを基にしてメールの送信先(通常はSMTPのサーバ)を知ることができる。そして、求めたIPアドレスに対してSMTPプロトコルで接続し、メールを送信する。もし相手先ドメインのMXレコードの情報が得られなければ、あて先がないというエラーになる。MXレコードの情報は得られるが、メール・サーバへの接続ができなければ、メール・サーバが(一時的に)ダウンしているものとみなし、しばらく待ってから再度送信を試みる。

 以上のようなメール送信の仕組みは、メール・サーバのトラブルシューティングなどのためには必ず知っておかなければならない。

●MXレコードを取得する

 nslookupコマンドで、MXレコードを取得する方法は、非常に簡単である。nslookupのパラメータに「-type=mx」と、対象となるドメイン名を付けるだけでよい。

C:\>nslookup -type=mx atmarkit.co.jp
Server:  dnsserver.d-advantage.jp
Address:  192.168.1.51

Non-authoritative answer: ……(1)
atmarkit.co.jp  MX preference = 10, mail exchanger = smtp.atmarkit.co.jp ……(2)

smtp.atmarkit.co.jp     internet address = 218.40.XXX.XXX ……(3)



 この例では、atmarkit.co.jpドメインのMXレコードを調査している。

 (1)は、atmarkit.co.jpのDNSサーバに直接問い合わせているわけでは「ない」ため、出力されているメッセージである。簡単にいうと、大元のDNSサーバからの返事ではありませんよ、という意味である。ここではローカルのDNSサーバが代理で応答しているのでこのようなメッセージが出力されている。nslookupのネーム・サーバとして、atmarkit.co.jpのDNSサーバを直接指定すると、このメッセージは出力されなくなる。

 (2)は、atmarkit.co.jpドメインへのメールを担当するサーバ(mail exchanger)は、「smtp.atmarkit.co.jp」であるという意味である。つまり、このドメインへメールを送信するならば、「smtp.atmarkit.co.jp」へ送ってください、という意味になる。

 (3)は、smtp.atmarkit.co.jpというホストのIPアドレスを表している。

 これだけ情報が分かれば、あとはどのようにすればメールが送信されるかが分かるだろう。メールが実際に送信できるかどうかは、このメール・サーバに対してSMTPプロトコル(TCPの25番)で接続し、SMTPのコマンドを送信してみればよい。

●MXレコードにおけるプリファレンス値とは?

 さて(2)の先頭に「preference = 10」という文字列があるが、これはMXレコードのプリファレンス値を表している。プリファレンス値は、メール・サーバが複数存在する場合に、その優先度を表している。この例では1つしかメール・サーバが存在しない(ように見える)ので、あまり意味がないが、大規模なサイトでは、多数のメール・サーバを用意して、負荷分散や耐障害性の向上を図っている。つまりメールの入り口となるメール・サーバも多数用意して、どれか1台が障害を起こしていても、ほかのサーバが代わりにメールを受け取ることができるようにしているのである。そして、プリファレンス値が小さい方が優先度が高いということを意味している。

 以下は、大規模なメール・サーバ群を持つドメインの例である。

C:\>nslookup -type=mx yahoo.co.jp
Server:  dnsserver.d-advantage.jp
Address:  192.168.1.51

Non-authoritative answer:
yahoo.co.jp     MX preference = 10, mail exchanger = mta18.mail.yahoo.co.jp
yahoo.co.jp     MX preference = 100, mail exchanger = mta10.mail.yahoo.co.jp
yahoo.co.jp     MX preference = 10, mail exchanger = mta11.mail.yahoo.co.jp
yahoo.co.jp     MX preference = 10, mail exchanger = mta12.mail.yahoo.co.jp
yahoo.co.jp     MX preference = 10, mail exchanger = mta13.mail.yahoo.co.jp
yahoo.co.jp     MX preference = 10, mail exchanger = mta14.mail.yahoo.co.jp
yahoo.co.jp     MX preference = 10, mail exchanger = mta15.mail.yahoo.co.jp
yahoo.co.jp     MX preference = 10, mail exchanger = mta16.mail.yahoo.co.jp
yahoo.co.jp     MX preference = 10, mail exchanger = mta17.mail.yahoo.co.jp
(……以下省略……)



 この例では、全部で9台のメール・サーバが存在している。プリファレンス値は、10が8台で、100が1台である。つまり、優先度の高い8台のメール・サーバと、バックアップ的な役割のサーバがもう1台存在している。プリファレンスの数値そのものには深い意味はなく、その大小関係だけが意味を持つことに注意していただきたい。メールを送信する側は、同じ優先度ならばどれでも使用してよいことになっている。このように、複数台のメール・サーバが存在していることもあるので、メール送信のトラブルシューティング時には、どのメール・サーバに接続されているのかなどにも注意が必要である。

■関連記事(Windows Server Insider)


「Tech TIPS」のインデックス

Tech TIPS

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。