お名前.com 共用サーバSDでSPFレコードを追加してみた。

5月に一人暮らしははじめようとしているんですが、この機会に今まで自宅サーバにあったメールサーバを以前から放置していたお名前.comの共用サーバに移すことにしました。せっかくなのでSPFレコードを設定することにしました。

実際にこの共用サーバのsmtpを使ってメールを送信してみたところ下記のような転送が行われていました。

Received: from smtp.zero.jp (smtp06.zero.jp [210.157.5.236])
	by mail.example.com (Postfix) with ESMTP id 833D2288324
	for <master@example.com>; Sat, 10 Apr 2010 21:58:09 +0900 (JST)
Received: from localhost (localhost [127.0.0.1])
	by smtp.zero.jp (Postfix) with ESMTP id 11B0D48B90
	for <master@example.com>; Sat, 10 Apr 2010 21:58:05 +0900 (JST)
X-Virus-Scanned: amavisd-new at zero.jp
Received: from smtp.zero.jp ([127.0.0.1])
	by localhost (smtp.zero.jp [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id cugPNqOlttuF for <master@example.com>;
	Sat, 10 Apr 2010 21:58:04 +0900 (JST)
Received: from [192.168.1.2] (FLH9Aab091.kng.mesh.ad.jp [218.227.160.91])
	by smtp.gmoserver.jp (Postfix) with ESMTPSA id D2DAB380CE
	for <master@example.com>; Sat, 10 Apr 2010 21:58:04 +0900 (JST)

どうやらいろいろ転送されてから目的地のSMTPサーバへたどり着くようです。これでは単純に v=spf1 +mx -all としたのでは動きません!

そこで、最後に転送しているsmtp.zero.jpをSPFレコードに追加してやることにします。しかし、よく見るとReceived: from smtp.zero.jp (smtp06.zero.jp [210.157.5.236])とかなってます。smtp.zero.jpを名乗っているけど実際にはsmtp06.zero.jpだったよということです。今回はsmtp06でしたけど将来的にもsmtp06が使われるかは怪しいところです。
しかし、あきらめる必要はありません!ありがたいことにSPFレコードにはincludeというものがあるのでこれをを使って外部参照してやればいいのです。ですが、zero.jpにSPFレコードがないと参照しても意味ありません。
ということで、ためしにdig zero.jp txtってみます。

$ dig zero.jp txt

; <<>> DiG 9.2.4 <<>> zero.jp txt
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22670
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;zero.jp.                       IN      TXT

;; ANSWER SECTION:
zero.jp.                84820   IN      TXT     "v=spf1 +ip4:210.157.4.0/24 +ip4:210.172.146.0/24 +ip4:210.157.11.229 +ip4:210.157.5.0/24 +ip4:210.172.128.0/24 +ip4:210.172.129.0/24 ~all"

;; AUTHORITY SECTION:
zero.jp.                49127   IN      NS      dns1.interq.or.jp.
zero.jp.                49127   IN      NS      dns.interq.or.jp.

;; ADDITIONAL SECTION:
dns.interq.or.jp.       54590   IN      A       210.157.0.1
dns1.interq.or.jp.      7863    IN      A       210.157.0.2

;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Apr 10 22:29:10 2010
;; MSG SIZE  rcvd: 254

ちゃんとspfレコードが設定されていて、先ほどのIPも含まれているので問題なく使えそうです。

あとはv=spf1 include:zero.jp -allというSPFレコードを追加すればOK!

ためしにcheck-auth@verifier.port25.comにメールを送信してみると、下記のようになり、SPF checkがpassであることがわかります。

This message is an automatic response from Port25's authentication verifier
service at verifier.port25.com. The service allows email senders to perform
a simple check of various sender authentication mechanisms. It is provided
free of charge, in the hope that it is useful to the email community. While
it is not officially supported, we welcome any feedback you may have at
.

Thank you for using the verifier,

The Port25 Solutions, Inc. team

==========================================================
Summary of Results
==========================================================
SPF check: pass
DomainKeys check: neutral
DKIM check: neutral
Sender-ID check: pass
SpamAssassin check: ham

めでたしめでたし。