概要
- 統計学部で発生した「500マイル以上離れた場所にメールが送れない」奇妙な障害
- 原因究明の過程で、距離制限が本当に存在することを確認
- sendmailの設定ファイルとバージョン不一致によるタイムアウト値の異常が判明
- タイムアウトが極端に短く、物理的距離がメール送信成功に影響
- システム管理者の知識と調査によるユニークなトラブル解決事例
500マイルメール問題の顛末
- 数年前、 大学のメールシステム を管理していた際の実話
- 統計学部長から「 500マイル以上離れた場所にメールが送れない」との相談
- 問題は「 半径520マイル程度までは送信成功、それ以上は失敗」という内容
- 統計学部らしく、 地理統計学者が半径マップを作成 し、現象を可視化
- 発生時期は「 数日前にサーバをパッチ適用・再起動」以降
- sendmailの設定ファイル(sendmail.cf)は 変更されていない ことを確認
- テストメールで距離ごとに送信可否を検証
- 400マイル:成功
- 600マイル:失敗
- 420マイル:成功
- 580マイル:失敗
- 送信先の メールサーバの場所で判定されている ことを確認
sendmailバージョン不一致の罠
- sendmail.cfを調査し、 Sendmail 8用の設定ファイル が使われていることを確認
- サーバのバナーで SunOS標準のSendmail 5 が稼働していることを発見
- サーバの OSアップグレード時にsendmailがダウングレード され、設定ファイルだけがそのまま残った状況
- Sendmail 5は、 Sendmail 8の新しいオプション名を無視 し、該当設定が全てデフォルト値(ゼロ)に
- SMTPサーバへの接続タイムアウト値が0 に設定されていた
タイムアウトと物理距離の関係
- タイムアウト0は「 3ミリ秒程度で接続失敗」となる挙動
- 当時のキャンパスネットワークは 100%スイッチ構成 で、物理距離が遅延の主因
- 近距離のホストはタイムアウト内で接続可能、遠距離だと 光速遅延でタイムアウト超過
- $ units コマンドで「 3ミリ秒=約559マイル」を計算し、現象と一致
まとめ・教訓
- 設定ファイルとソフトウェアバージョンの不一致 による予期せぬ障害
- ネットワーク物理特性とアプリケーション設定の 思わぬ連携
- 地理的距離で障害が発生する というユニークな事例
- システム管理者の 観察力と論理的推論 の重要性
関連リンク
著者Trey HarrisはSAGE Level IVのシステム管理者 Perlやツール開発、トレーニング、アーキテクチャ経験10年以上 お仕事の依頼はtrey@sage.orgまで