【15】手順を文書化して、守られているか確かめよう

モンテ・デイビス(Monte Davis)MCSE
アメリカ、ネブラスカ州オマハ

 あるプラットフォームから別のプラットフォームヘメールシステムを移行している最中のことでした。ひとりの女性が結婚した結果、メールシステムがダウンしたのです。

 メールの流れは次のようになっていました。

  1. 新しくやって来たメールは新しいメールシステム経由で配送される。
  2. 新しいメールシステムで配送可能であれば、新しいシステムにいるユーザーにメールを配送する。配送不能であれば、メールは古いメールシステムへと送られる。
  3. 古いシステムにいるユーザーから古いシステムにいるユーザー宛てに送られたメールは、適切なメールボックスへと配送される。しかし、受信者がすでに新しいシステムに移行済みであれば、メールは各ユーザーのために作られた「移行(migrate)」転送アドレスを使って新しいメールシステムに自動転送される。

 ここで、おかしなことが起こりました。「サリー・シングル(single、未婚)」は新しいメールシステムに移行していたため、2 つのメールアドレスを持つことになりました。 sally.single@mycompany.com とその転送アドレス sally.single@migrate.mycompany.com です。古いシステムにいるユーザーから彼女宛てに送られたメールはすべて、「移行」転送アドレスを使って新しいメールシステムに自動転送されます。

 サリーが結婚して、名前を「サリー・シングル」から「サリー・マリッド(married、既婚)」に変えると、メールアドレスも同じように変更されました。しかし、新しいシステムにあるサリーのメールアドレスは変更されたのですが、古いシステムの「移行」転送アドレスを変更するのを忘れてしまいました。その結果、サリーにはその転送アドレスが残ってしまいました。

新しいシステム 古いシステム
sally.married@mycompany.com sally.married@mycompany.com
sally.single@mycompany.com sally.single@mycompany.com
sally.married@migrate.mycompany.com sally.single@migrate.mycompany.com (変更されていない移行アドレス、結婚後も残ったままになっていた)

 この結果、古いメールシステムにいるユーザーからサリー宛てにメールが送られると、ループが発生してしまいました。1)メールが古いメールシステムで作られ、 sally.single@mycompany.com 宛てに送られます。2)古いメールシステムはサリーのアカウントをチェックして、転送先が sally.single@migrate.mycompany.com に設定されていることを確認して、メールを転送します。3)新しいメールシステムは sally.single@migrate.mycompany.com というメールアドレスを持つ人を探しますが、見つかりません。このアドレスはサリーが結婚したときに変更されたためです。4)そこで新しいメールシステムは、不明な受信者宛てのメールを古いメールシステムへ転送します。5)古いメールシステムは @migrate.mycompany.com の付いたメールをすべて転送することを知っているので、そのメールを新しいメールサーバに転送します。6)これが無限に繰り返されます。

 メールがループするたびに、メールの末尾に会社の法的放棄声明が追加されていきます。法的放棄声明は 100 単語程度にすぎませんが、メッセージが 1 分間に何度もシステム間をループすると、それはどんどん大きくなっていきます。どうやら、サリーは非常に人気者だったようです。あまりに多くのメールがサリー宛てに送られたため、メールの大きさと量のせいで、とうとうメールシステムはダウンしてしまいました。

 教訓:手順を文書化して、それが守られているか確かめましょう。名前変更の手順は文書化されていたのですが、実際には守られていませんでした。もしそれが守られていれば、古いメールサーバにあるサリーのユーザーアカウントは、新しい結婚後の名前を持つ移行メールアドレスに更新されていたはずです。そうすれば、この問題は避けられたでしょう。