小技プログラミング

nslookupでメールサーバーを調べる

nslookupコマンドを使ってメールサーバーを調べる手順です。

○○○○@yahoo.co.jpというメールアドレスを例にします。

まずは@以降のyahoo.co.jpドメインの完全な情報を持つ権威DNSサーバーを調べます。
※今回はgoogleが提供しているパブリックDNS(8.8.8.8)を利用しています。
以下コマンドプロンプトでの操作

> nslookup -type=ns yahoo.co.jp 8.8.8.8
サーバー: google-public-dns-a.google.com
Address: 8.8.8.8
権限のない回答:
yahoo.co.jp    nameserver = ns02.yahoo.co.jp
yahoo.co.jp    nameserver = ns01.yahoo.co.jp
yahoo.co.jp    nameserver = ns11.yahoo.co.jp
yahoo.co.jp    nameserver = ns12.yahoo.co.jp

yahoo.co.jpの権威DNSサーバを利用して、MXレコードを調べる

> nslookup -type=mx yahoo.co.jp ns01.yahoo.co.jp
サーバー:  ns01.yahoo.co.jp
Address:  118.151.254.133
yahoo.co.jp    MX preference = 10, mail exchanger = mx5.mail.yahoo.co.jp
yahoo.co.jp    MX preference = 10, mail exchanger = mx1.mail.yahoo.co.jp
yahoo.co.jp    MX preference = 10, mail exchanger = mx2.mail.yahoo.co.jp
yahoo.co.jp    MX preference = 10, mail exchanger = mx3.mail.yahoo.co.jp
yahoo.co.jp    nameserver = ns11.yahoo.co.jp
yahoo.co.jp    nameserver = ns01.yahoo.co.jp
yahoo.co.jp    nameserver = ns02.yahoo.co.jp
yahoo.co.jp    nameserver = ns12.yahoo.co.jp
mx1.mail.yahoo.co.jp    internet address = 114.111.99.224
mx1.mail.yahoo.co.jp    internet address = 183.79.29.234
mx2.mail.yahoo.co.jp    internet address = 114.111.99.248
mx2.mail.yahoo.co.jp    internet address = 183.79.57.238
mx3.mail.yahoo.co.jp    internet address = 183.79.57.237
mx3.mail.yahoo.co.jp    internet address = 183.79.29.240
mx5.mail.yahoo.co.jp    internet address = 183.79.29.238
mx5.mail.yahoo.co.jp    internet address = 183.79.57.236
ns01.yahoo.co.jp        internet address = 118.151.254.133
ns02.yahoo.co.jp        internet address = 118.151.254.149
ns11.yahoo.co.jp        internet address = 124.83.255.37
ns12.yahoo.co.jp        internet address = 124.83.255.101

MXレコード欄に表示されたmx1.mail.yahoo.co.jpとmx2,3,5の計4つが○○○○@yahoo.co.jpの送信メールサーバーになります。

SPFレコードも調べてみます

> nslookup -type=txt yahoo.co.jp ns01.yahoo.co.jp
サーバー: ns01.yahoo.co.jp
Address: 118.151.254.133

yahoo.co.jp    text =

       "v=spf1 include:spf.yahoo.co.jp ~all"
yahoo.co.jp    nameserver = ns01.yahoo.co.jp
yahoo.co.jp    nameserver = ns11.yahoo.co.jp
yahoo.co.jp    nameserver = ns12.yahoo.co.jp
yahoo.co.jp    nameserver = ns02.yahoo.co.jp
ns01.yahoo.co.jp       internet address = 118.151.254.133
ns02.yahoo.co.jp       internet address = 118.151.254.149
ns11.yahoo.co.jp       internet address = 124.83.255.37
ns12.yahoo.co.jp       internet address = 124.83.255.101

v=spf1以降が対象になりますが、includeされている為spf.yahoo.co.jpに対して更にSPFを調べます

> nslookup -type=txt spf.yahoo.co.jp ns01.yahoo.co.jp
サーバー: ns01.yahoo.co.jp
Address: 118.151.254.133

spf.yahoo.co.jp text =

       "v=spf1 include:spf01.yahoo.co.jp include:spf02.yahoo.co.jp include:spf03.yahoo.co.jp include:bulk-spf.yahoo.co.jp ~all"
yahoo.co.jp    nameserver = ns02.yahoo.co.jp
yahoo.co.jp    nameserver = ns12.yahoo.co.jp
yahoo.co.jp    nameserver = ns11.yahoo.co.jp
yahoo.co.jp    nameserver = ns01.yahoo.co.jp
ns01.yahoo.co.jp       internet address = 118.151.254.133
ns02.yahoo.co.jp       internet address = 118.151.254.149
ns11.yahoo.co.jp       internet address = 124.83.255.37
ns12.yahoo.co.jp       internet address = 124.83.255.101

またincludeされている為spf01.yahoo.co.jpに対して更にSPFを調べます

> nslookup -type=txt spf01.yahoo.co.jp ns01.yahoo.co.jp
サーバー: ns01.yahoo.co.jp
Address: 118.151.254.133

spf01.yahoo.co.jp      text =


       "v=spf1 ip4:124.83.237.0/24 ip4:124.83.238.0/23 ~all"
yahoo.co.jp    nameserver = ns11.yahoo.co.jp
yahoo.co.jp    nameserver = ns01.yahoo.co.jp
yahoo.co.jp    nameserver = ns02.yahoo.co.jp
yahoo.co.jp    nameserver = ns12.yahoo.co.jp
ns01.yahoo.co.jp       internet address = 118.151.254.133
ns02.yahoo.co.jp       internet address = 118.151.254.149
ns11.yahoo.co.jp       internet address = 124.83.255.37
ns12.yahoo.co.jp       internet address = 124.83.255.101

v=spf1 ip4:124.83.237.0/24 ip4:124.83.238.0/23 ~allの部分がSPFの設定になります。同じようにspf02、spf03と調べて行くと他のSPFレコードも解ります。