【2015.8.26】ぽよさんによるメールサーバーエラーで失った1ヶ月についてのツイート群

理解の裏付けのある自信!ってところが大切ですね!
0
ぽよ @Poyo_F

そうか! わかったかも。

2015-08-22 18:24:24
茂木健一郎 @kenichiromogi

なんか、ここ数日、「Undelivered Mail Returned to Sender」のタイプのスパムが多いんだけど、みなさんの中にも同じ状況の方いらっしゃいますか?

2015-08-26 06:26:10
ぽよ @Poyo_F

実は、ここ一か月、ぽよがサーバーの面倒を見ている団体のメールサーバーで、特定の機関(実はぽよの大学)からのメールが届かない事があるというので原因を調べていた。それが困った事に「書類が添付されたメールだけが届かず、しかも他の機関からの添付書類付きメールは届く」というもの。

2015-08-26 19:18:53
ぽよ @Poyo_F

ぽよはてっきりpostfixの設定に誤りがあったのだと思って、修正を加えることにした。もう5年も動いていたのだから、それが設定の誤りだと考えるのは短絡的すぎたのだが、修正中にもユーザーのメールが使えるように、もう一つのメールサーバーを立ててから入れ替える事にしてしまった。

2015-08-26 19:21:41
ぽよ @Poyo_F

ところが、新しいサーバーを立てたところで、どういう分けかWebサーバーの方も動かなくなった。連鎖反応的に修復しなければいけないシステムが増えていった。おかげで夏休みは完全につぶれてしまった。ぽよ的に、こんなに手こずったのは久し振りだ。

2015-08-26 19:22:07
ぽよ @Poyo_F

メール配信プロトコルというのは、恐らく最も複雑なプロトコルで設定項目が数千個を超える。当然、殆どはデフォルトのままにして、適当に抜粋したものを自サイトに合わせて修正してゆく方法で設定する。エラーが出たら、そのエラーをググって解決策を探す。

2015-08-26 19:23:03
ぽよ @Poyo_F

ところが今回、「こうすれば治った」という体験談が本当に邪魔で、Google検索に混乱させられてしまった。ググって出てくるQ&Aは、「質問の仕方が悪い」という理解不足の回答者の説教ばかりが目に付くし、同じエラーであっても原因が何種類もあるので必要な情報は殆ど見つからない。

2015-08-26 19:25:33
ぽよ @Poyo_F

結局、postfixやDovecot SASLの英文マニュアルを精読するハメになった。おかげで、自分の最初の設定や理解は正しかったのだという自信を持つ事が出来た。けれど、この「理解の裏付けのある自信」が大切だった。初めて「自分の行ったメールの設定」以外の原因を疑う気になった。

2015-08-26 19:26:43
ぽよ @Poyo_F

ネット上を行きかうデータは、通常約1.5Kバイト(MTUという)の断片に分割されて、それぞれにアドレスが付与されて送受されている。100枚の原稿を送るのに1枚づつに別々の封筒に分けて送るような方法。もちろん100個の封筒のあて名書きには同じ住所が書かれ、通し番号がついている。

2015-08-26 19:27:57
ぽよ @Poyo_F

このMTUの大きさが、どういうわけかルーターの受信側で、1424バイト(MRU)になっていて、殆どのパケットが一旦「待ち」に入り、タイムアウトの後、分割&再送をするというサイクルに入っていたようなのだ。結果として、サーバー間メール転送に時間がかかってDOS攻撃と勘違いされていた。

2015-08-26 19:28:35
ぽよ @Poyo_F

DOS攻撃の典型的なパターンは、サーバーマシンが、沢山のネットワークパケットを処理しなければならないように次々と沢山の「正当な」パケットを送り込むという方法だ。分割再送された膨大な量のパケットが、このDOS攻撃(Denial of Service attack)と間違われた。

2015-08-26 19:34:20
ぽよ @Poyo_F

添付ファイルが無い時のメールは、この1パケットよりも短いので、分割再送が起こらず送受信できたというわけ。このMTUのサイズを調節したらあっさり直ってしまった。 サーバーが二つに分かれてしまって色々面倒になったが今月中に解決できてよかった。。

2015-08-26 19:34:58
ぽよ @Poyo_F

実は、単にMTU>MRUの状態だけでは、メールの不具合は起こらない。これに、ネームサーバーの一次的な設定ミスとか、ルーターのIPフィルターの隠れアルゴリズムの問題(ALLを通す設定と、一部のポートを通す設定が同居した時に、その設定の順番で挙動が異なる)が併発していたのだ。

2015-08-26 19:38:42
ぽよ @Poyo_F

メールの「@」の右側の文字列は郵便の「住所」に当たるドメイン名だ。ネットの世界ではこのドメイン名は、人のために必要なのであって、装置がメールを届けるためには冗長な情報だ。実際にメールを届けるために装置が参照しているのは、このドメイン名に対応するIPアドレスという10桁の数字だ。

2015-08-26 19:39:17
ぽよ @Poyo_F

このドメイン名からIPアドレスを調べたり、その逆を調べたりするネット分散データベースシステムはネームサーバー(DNS)と呼ばれている。詳細は割愛するが、これの設定ミスとMTU値のミス設定とが組み合わさると、最初に書いたような不可解な事が起こるのだ。

2015-08-26 19:42:02
ぽよ @Poyo_F

ネームサーバーの設定ミスは正引きジーン設定の@にネームサーバーマシンのIPアドレスを割り当てるというもの。それでも、殆どまともに動いてしまう。古くからあったミスで、過去の管理者によるものだろう。 「この一か月を返してくれ~」と言いたいが、最終チェックは ぽよだった。。トホホ。

2015-08-26 19:50:42