SPF 構文を使用して TXT レコードを作成しようとすると、「CharacterStringTooLong (Value is too long) encountered with {Value}」のエラーが発生します。これを解決する方法を教えてください。

最終更新日: 2017 年 3 月 23 日

SPF 形式の TXT レコードをドメインに追加しようとすると、「CharacterStringTooLong (Value is too long) encountered with {Value}」というエラーメッセージが表示されます。解決方法を教えてください。

簡単な説明

TXT レコードの DNS 制限は 255 バイトです。詳細については、RFC 1035 セクション 2.3.4 を参照してください。文字列が 255 バイトより長い SPF レコードは、SPF 形式のために複数の文字列に分割することはできません。また、同じレコードに対して 2 つの SPF TXT 値を設定することはできません。さらに、SPF レコードのリダイレクトを含むルックアップ制限は 10 です。詳細については、RFC 4408 を参照してください。

注意: レコードが標準の TXT レコード (SPF 形式または構文を使用していない場合) の場合は、TXT レコードの作成時の「TXTRDATATooLong」エラーの解決方法を参照してください。

解決方法

回避策として、1 つを使用する代わりに複数のレコードを作成できます。

この例では、2 つのレコードを作成し、それぞれに必要なレコードコンテンツの約半分を含めます。検証済みの IP アドレスを TXT SPF レコードに保存し、残りを 2 番目のレコードに保存できます。たとえば、spfva.example.com には検証済みの IP/CIDR の半分が含まれ、spfvb.example.com には残りの半分が含まれます。「include」SPF マクロを使用してすべての SPF レコードを参照し、ドメインまたはサブドメインで TXT レコードとしてのみ使用できます。

または、次のように 3 つのレコードを含めることができます。

spfva.example.com "v=spf1 ip4:1.2.3.4 ip4:5.6.7.8/31 ?all"
spfvb.example.com "v=spf1 ip4:9.10.11.12/21 ip4:13.14.15.16/28 ?all"
"v=spf1 mx include:spfva.example.com include:spfvb.example.com ?all"

注意: IP アドレス、CIDR、ドメインは例です。必ず自身のネットワーク設定に置き換えてください。

SPF 限定条件と結果には、以下が含まれます。

限定条件 結果
「+」 Pass
「-」 失敗
「~」 SoftFail
「?」 Neutral

この例では、すべてのレコードを「Neutral」として設定しましたが、ユースケースによっては異なる組み合わせが必要になる場合があります。

注意: SPF TXT レコードの内容は Route 53 では分析されません。他の TXT レコードと同様にプレーンテキストとして解釈されます。


この記事はお役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合