前提
- DNSはroute53
- サーバはクラウド
- IPアドレスセットがバラバラになる
- メールは各サーバから
- システムが構築されるたびにwebサーバ群のIPを登録
- +ip4:123.456.789.0/24 こんな感じ
増やしすぎて怒られる
512バイトが上限なのでまだいけると思ってたけど怒られる、、、
サポートされる DNS リソースレコードタイプ - Amazon Route 53 - http://docs.aws.amazon.com/ja_jp/Route53/latest/DeveloperGuide/ResourceRecordTypes.html
TXT レコードには、スペースで区切られた、二重引用符で囲まれた文字列のリストが含まれます。1 つの文字列には、最大 255 文字が含まれます
RFCで連結した後の1つのレコードが450バイト以下であることが目安とされているため
妥当と思われる255バイトで制限かかってるところが多いらしい
分割をしよう
間違いから学ぶSPFレコードの正しい書き方 : 迷惑メール対策委員会 - http://salt.iajapan.org/wpmu/anti_spam/admin/operation/information/spf_i01/
TXTレコードを単純に分けてはダメらしい
baseレコードとincludeレコードに分ける
オリジナル
"v=spf1 mx ip4:123.456.000.0/24 +ip4:123.456.111.0/24 +ip4:123.456.222.0/24 +ip4:123.456.333.0/24 +ip4:123.456.444.0/24 +ip4:123.456.555.0/24 +ip4:123.456.666.0/24 +ip4:123.456.999.0/24 +ip4:123.456.888.0/24 +ip4:123.456.999.0/24 include:spf-bma.mpme.jp ~all"
分割
↓
baseレコード:mydomain.com. IN TXT
"v=spf1 mx ip4:123.456.000111.0/25 include:spf.mydomain.com include:spf-bma.mpme.jp ~all"
includeレコード:spf.mydomain.com IN TXT
"v=spf1 +ip4:123.456.111.0/24 +ip4:123.456.222.0/24 +ip4:123.456.333.0/24 +ip4:123.456.444.0/24 +ip4:123.456.555.0/24 +ip4:123.456.666.0/24 +ip4:123.456.999.0/24 +ip4:123.456.888.0/24 +ip4:123.456.999.0/24 ~all"
レコードチェックする
無事通りましたヽ(・∀・)人(・∀・)ノ
http://www.kitterman.com/spf/validate.html
実際のメールでも確認
問題点
includeレコードの中身が増え続けていくのですぐに同じ問題にぶち当たる可能性
解決策案
- スーパー楽な手段
- 第2オクテットで登録 : 123.456.0.0/25
- 漏れが発生する可能性は残る
- 第2オクテットで登録 : 123.456.0.0/25
- さらに入れ子にする
- ベース - include:ドメインtxt include:txt ~all"
- ベース - include:ネットワークセット include:ネットワークセット ~all"
- ネットワークセット - include:ドメイン名txt ~all"
- ドメイン名別にtxtを用意すると削除がしやすい
- MXをアウトソースにする
- 余計な作業が減る
- お金はかかる
- 余計な作業が減る