異なるSPFエントリを含む単一のドメインに対して複数のTXTレコードを作成しても大丈夫ですか?


17

リモート受信者ドメインがSPFの理由でメールを拒否しているのは、送信者のSPFが正しく構成されていないためだと思います。

digを実行すると、次のように表示されます。

[fooadm@box ~]# dig @8.8.8.8 -t TXT foosender.com

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-20.P1.el5_8.6 <<>> @8.8.8.8 -t TXT foosender.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30608
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;foosender.com.              IN      TXT

;; ANSWER SECTION:
foosender.com.       14039   IN      TXT     "v=spf1 include:spf.foo1.com -all"
foosender.com.       14039   IN      TXT     "v=spf1 include:_spf.bob.foo2.com -all"

;; Query time: 26 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Jan  7 09:45:38 2014
;; MSG SIZE  rcvd: 146

これは有効な設定ですか?2つの個別のレコードがあることは奇妙に思えます(それぞれにハードフェイルがあります)。すべてを単一のレコードに含めるべきではありませんか?

適切なTXTレコードは次のようになります。

v=spf1 include:spf.foo1.com include:_spf.bob.foo2.com -all

回答:


20

いいえ、あなたは正しいです。RFC 4408、セクション4.5を参照してください。

  1. 正確に「v = spf1」のバージョンセクションで始まらないレコードは破棄されます。バージョンセクションは、SP文字またはレコードの終わりによって終了することに注意してください。バージョンセクションが「v = spf10」のレコードは一致しないため、破棄する必要があります。

  2. タイプSPFのレコードがセットに含まれている場合、タイプTXTのすべてのレコードは破棄されます。

    上記の手順を実行すると、レコードが1つだけ残り、評価を続行できます。 2つ以上のレコードが残っている場合、check_host()はすぐに「PermError」の結果で終了します。

    一致するレコードが返されない場合、SPFクライアントはドメインがSPF宣言を行わないと想定する必要があります。SPF処理は停止し、
    「なし」を返す必要があります。


2
2014年4月現在、RFC 4408を廃止したRFC 7208があります。タイプSPFのレコードは、TXTタイプ1を支持して廃止されましたSPF records MUST be published as a DNS TXT (type 16) Resource Record (RR) [RFC1035] only.RFC 7208、セクション3.1を参照)。これに基づいて新しい答えを試してみます。
JHoffmann

4

このSPFセットアップは無効です。複数のレコードが見つかった場合、レコード選択は結果としてエラーを生成するはずです。レコードの選択に関するRFC 7208、セクション4.5を参照してください。

結果のレコードセットに複数のレコードが含まれる場合、check_host()は「permerror」結果を生成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.