SPF include 参照のループではまる
●問題詳細
SPF include 参照のループをしているホストからのメールの処理で、無限ループが発生・メモリ枯渇・メールサーバが落ちる
「example.com txt "v=spf1 ip4:XXX.XXX.XXX.XXX include:example.com ~all"」のような設定がされたDNSからのメールがあった。
●解決法
無限ループしてしまっている自己作成メール処理プログラム(PMilter を使った、milter)で、SPF include 参照のループしている場合でも、無限ループにならないように修正
●経緯
2013年12月7日(土)メールサーバ停止 長期稼働だったので単純にリブート対処
2013年12月14日(土)メールサーバ停止 リブート対処・原因究明開始(連続で土曜日だったので、再度水曜にリブートを行う)
2013年12月21日(土)メールサーバ停止 リブート対処・稼働時間などが原因ではないと判明・土曜の同じ時間帯での停止のため、日付関係を調査開始
2013年12月28日(土)メールサーバ停止 年末のため30日まで対処できず。
2014年1月4日(土)メールサーバ停止 年始のため、調査できず。しかし、日付関係ではなく、メモリ関係だと判明。メモリ・プロセス監視開始
2014年1月11日(土)メールサーバ停止 原因プロセスほぼ確定。しかし曜日が関連していると考えていたため理由不明。
2014年1月18日(土)メールサーバ停止 偶然問題発生の瞬間を見ていたため、原因プロセス確定。到着メールが原因と判明。
2014年1月19日(日)到着メールの SPF 設定が参照ループしていることが判明。自己作成メール処理プログラム(PMilter を使った、milter)修正