gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

DNSのTXTレコード覚え書き

タイトルそのまんまですが。
http://googleapps.hakaede.com/2007/05/senderid_24.html
こちらに詳しく書いてあります。ちと念のため引用…と言い張ってみる。

SenderIDの書き方

バージョンの後に対象サーバーのアドレスを書きます。
実際の書式は次のような感じです。

IN TXT "v=spf1 a:example.com ~all"

このような感じになります。それでは実際にどのように書かれているか見てみましょう

IN TXT "v=spf1 a:example.com ~all"
これはTXTレコードであることの宣言です。""の中がtxtレコードの内容です。SenderIDはこの""内に書きます。
DNSによっては""内しか編集できなかったり独自形式の場合がありますので、利用するDNSのマニュアルを参考にしてください。

IN TXT "v=spf1 a:example.com ~all"
バージョンを表します。SPF Ver 1という意味です。現在はVer 2ですが、互換性のためVer1と書くのが一般的です。

IN TXT "v=spf1 a:example.com ~all"
其のドメインのメールアドレスを送信する可能性のあるメールサーバーを明記。
ここにサーバーの記述されます。

SenderIDの書き方

まず、クオリファイヤを書きます。
クオリファイヤはマッチしたホストやドメインなどに対してどのように扱うかを指定します。
上記の例だと+が省略されていますが、略さずにきちんと書くなら

+a:example.com ~all

となります。
クオリファイヤは次の4種類です。

+ pass  マッチした場合、認証成功とする
- Fail マッチした場合、認証失敗とする
~ SoftFail  マッチした場合、認証失敗だけど容認する
? 非公開

次のような設定をした場合、

v=spf1 +a:domain1.com -a:domain2.com ~a:domain3.com ~all

SMTPサーバdomain1.comからのメールは+a:domain1.com に該当するのでpassになります。
SMTPサーバdomain2.comからのメールは-a:domain2.com に該当するのでFailになります。
SMTPサーバdomain3.comからのメールは~a:domain2.com に該当するのでSoftFailになります。
SMTPサーバdomain4.comからのメールは~allに該当するのでSoftFailになります。
もしallが無い場合など、どれにも該当する記述が無い場合はSoftFailになります。

クオリファイヤに続いてメカニズムもしくはモディファイアを記述します。

カニズム
a Aレコードに記載されたアドレス
a:**** ドメイン***のAレコードに記載されたアドレス
mx MXレコードに登録されたアドレスのAレコードのアドレス
mx:**** ドメイン***のMXレコードに登録されたアドレスのAレコードのアドレス
ip4:**** IPアドレスでチェック
ip6:**** IPv6のアドレスでチェック
include 指定されたドメインSPFレコードによるチェックを実施
exists ドメイン名またはホスト名に指定された表記で、Aレコードルックアップを実施し、該当のAレコードが存在すればマッチ
all 全ての対象にクオリファイヤが有効。一般的に最後に書く
ptr 非推奨なので割愛

モディファイア
redirect 指定されたドメインでのチェックへ転送します
exp 認証できなかった場合の説明として扱われる文字列をTXTレコードとして持つドメインを指定します

なお、
v=spf1 -all
と指定すると、そのドメインからメールが一切出される事が無い事を表明します。

面白そうな記事が色々あるっぽなので後でちぇっく!!