メールの受け取り損ね

(コメント: 0)

とあるところからの電子メールを受け取り損ねたようです。最初に問題があったのは2月の中旬で、そのときに根本的な問題に気が付けなかったことが悔やまれます。

原因の一端は私のところで、spam避けのための電子メールの受付を厳しく検査していることにもあります。と言っても、きっちりエラーメールが返せるかどうか、電子メールの発信者のドメインのDNSのMXやAレコードを検査している部分で引っかかりました。

根本的な問題は送り側のDNSの登録内容の問題でした。

  • 電子メールの送信者のドメイン: example.co.jp
  • 同ドメインに登録されたネームサーバー: ns1.example.ne.jp, ns2.example.jp

ここまではベストではないにしても、よくあるケースです。

問題は上記のネームサーバーが保持している exmaple.co.jp のゾーンの情報で、SOAやNSレコードに含まれているホストが example.ne.jp ならぬ example.jp 、つまり ns1.example.jpns2.example.jp となっていて、決定打はこれらに対するAレコードがありません。

手元のキャッシュサーバーに example.co.jp の情報を持っていない状態でMXやAレコードを引くと、

example.co.jp. 3398 IN A 10.1.1.1
example.co.jp. 3590 IN MX 10 example.co.jp.

example.co.jp. 172631 IN NS ns1.example.ne.jp.
example.co.jp. 172631 IN NS ns2.example.ne.jp.

といった具合にキャッシュされます。ところが、さらに別のレコードを引いてくると、ns1.example.co.jp などが持っているNSレコードでキャッシュは上書きされて、

example.co.jp. 3388 IN A 10.1.1.1
example.co.jp. 3580 IN MX 10 example.co.jp.

example.co.jp. 3600 IN NS ns1.example.jp.
example.co.jp. 3600 IN NS ns2.example.jp.

そして時間が過ぎると先にAとMXが消えて、Aレコードが存在しないNSレコードだけが後に残ってしまう状況となってしまいました。

BIND 9.8.1-P1での挙動でしたが、根本的には ns1.example.ne.jp などが保持しているNSレコードを直していただかないことには、キャッシュのタイミングの問題で不都合が起きる可能性はあるわけです。

その一方で、Webだけ見てる限りは起きることは少なく、起きても短期間にすべてキャッシュがなくなって復活できる可能性が大きいわけです。おそらくは今回のようなAやMXレコードを引くパターンと、1時間という設定されている資源レコードのTTLの値、送信側のSMTPの再送の間隔といったものが組み合わさってメールの不達という自体に陥ったのではないかと推測しています。

ちなみに最初に気がつけなかったのは、"ne.jp"が抜けたホスト名で登録されてること、自分に悔しい。

戻る

コメントを追加