QMGR(8) QMGR(8) 名前 qmgr - Postfix キューマネージャ 書式 qmgr [generic Postfix daemon options] 解説 qmgr デーモンは入ってくるメールの到着を待ち、Postfix 配送 プロセスが配送するための準備をします。実際のメールルーティ ング方法は trivial-rewrite(8) デーモンに委託されます。この プログラムは master(8) プロセスマネージャから起動されるこ とを想定しています。 ローカルの double-bounce アドレス宛のメールは黙って捨てら れます。これにより配送できないバウンス通知によって起こる潜 在的なループが止められます。 オプションの relocated データベースにリストされたユーザ宛 のメールは "user has moved to new_location" メッセージ が付いてバウンスされます。正確な記述は relocated(5) を参照 して下さい。 メールキュー qmgr デーモンは次のキューの保守をします: incoming ネットワークから入ってくるメール、またはローカル pickup エージェントが maildrop ディレクトリから拾っ てきたメール。 active 配送するためにキューマネージャが開いたメッセージ。 active キューに入れられるメッセージは限られた数だけ です(固定された配送速度のために穴あきバケツ戦略(?))。 deferred 最初の試行で配送できなかったメール。キューマネージ ャには配送試行の間隔を倍にして指数的に遅らせる (?; backoff)機構が組み込まれています。 corrupt 読めない、もしくは損傷したキューファイルは検査のた めにここに移動されます。 配送状態レポート qmgr デーモンは次のディレクトリのメッセージごとの配送状態 レポートに注目しつづけます。それぞれの状態レポートファイル は対応するメッセージファイルと同じ名前です: bounce なぜメールがバウンスされたかという受信者ごとの状態 の情報。これらのファイルは bounce(8) デーモンにより 保守されます。 defer なぜメールが遅延されたかという受信者ごとの状態の情 1 QMGR(8) QMGR(8) 報。これらのファイルは defer(8) デーモンにより保守 されます。 qmgr デーモンは bounce(8) や defer(8) デーモンに不達レポー トを送るように依頼する責任を負います。 方法 キューマネージャにはキューファイルを開いたり(入力)メッセー ジ配送(出力)するための様々な方法が組み込まれています。 leaky bucket この方法は active キュー内のメッセージの数を制限し、 負荷が重い時にキューマネージャがメモリを使い果たす のを防ぎます。 fairness active キューの場所が空いている時、キューマネージャ は incoming キューと deferred キューから1メ ッセージずつ持ってきます。これは未処理のメールが新しいメー ルの配送を妨げることを防ぎます。 slow start この方法は同じ目的地への並列配送数をゆっくり調整す ることで、「大群(thundering herd)」問題をなくします。 round robin キューマネージャは配送先で要求をソートします。ラウ ンドロビン(?)選択により、一つの送信先への配送が他の 送信先を支配することがないようにします。 exponential backoff 最初の試行で配送できなかったメールは遅延されます。 配送試行の時間間隔はそれぞれの試行ごとに倍になりま す。 destination status cache キューマネージャは配送できない送信先を短期間のメモ リ内リストに保持することで、不必要な配送試行を避け ます。 トリガー アイドル状態のシステムでは、キューマネージャはイベントのト リガーの到着を待つか、タイマーで落ちるのを待ちます。トリガ ーは1バイトのメッセージです。メッセージの到着に依存して、 キューマネージャは次のうち一つの行動を起こします(メッセー ジの後にソフトウェアの内部で使われるシンボル的な定数が続き ます): D (QMGR_REQ_SCAN_DEFERRED) 遅延キューのスキャンをはじめます。すでに遅延キュー のスキャンが行なわれている最中であれば、それが終わ 2 QMGR(8) QMGR(8) り次第再びはじめます。 I (QMGR_REQ_SCAN_INCOMING) 入ってくるキューのスキャンをはじめます。すでにスキ ャンが行なわれている最中であれば、それが終わり次第 再びはじめます。 A (QMGR_REQ_SCAN_ALL) 遅延キューファイルのタイムスタンプを無視します。要 求は次の遅延キュースキャン時に有効です。 F (QMGR_REQ_FLUSH_DEAD) 動いていない配送方法や配送先に関する情報を消します。 W (TRIGGER_REQ_WAKEUP) 目覚し。これはマスターサーバがサーバ群にいなくなら ないように説得するために使います。この動作は入って くるキューのスキャンをはじめます。(?) qmgr デーモンはトリガーのバッファ全体を読みます。複数の別 々のトリガー要求は一つにまとめられ、A と F が D と I より 先になるようにソートされます。従って、遅延キューを動かすに は A F D を要求し、キューマネージャに新しいメールの到着を 知らせるには I を指定します。 標準 なし。qmgr デーモンは外界と接触しません。 セキュリティ qmgr デーモンはセキュリティに敏感ではありません。1文字メッ セージを信頼しないローカルユーザから読みこむため、サービス 拒否攻撃(Denial of Service attacks) には弱くなっています。 qmgr デーモンは外の世界とは話をしませんし、chroot された環 境では低い特権に固定されて動きます。 診断 問題や処理は syslog デーモンに記録されます。不正なメッセー ジファイルは詳細な調査のために corrupt キューにセーブされ ます。 notify_classes パラメータの設定によっては、ポストマスター にバウンスやその他のトラブルが通知されます。 バグ 単独のキューマネージャプロセスは smtpd のような複数のフロ ントエンドプロセスとディスクアクセスの競合をします。突然た くさんのメールが入ってくると、外への配送速度にネガティブな 影響を及ぼすことがあります。 3 QMGR(8) QMGR(8) 設定パラメータ 以下の main.cf パラメータは特にこのプログラムに関連があり ます。文法の詳細やデフォルト値は main.cf ファイルを参照し て下さい。設定の変更後は postfix reload コマンドを使って ください。 その他 relocated_maps 存在しないユーザ、ホストまたはドメインの連絡情報の テーブル。relocated(5) 参照。 queue_directory Postfix キューのトップレベルディレクトリ。 アクティブなキューの制御 qmgr_message_active_limit アクティブなキューの数を制限する。 qmgr_message_recipient_limit メモリに保持する受信者の数を制限する。 このパラメータは単期間・メモリ内配送先キャッシュの サイズも制限します。 タイミング制御 min_backoff 遅延メッセージの配送試行間隔の最低秒数。 このパラメータは単期間・メモリ内配送先状態キャッシ ュに届かない配送先を記憶しておく時間も制限します。 max_backoff 遅延メッセージの配送を試行する最大間隔秒数。 maximal_queue_lifetime 配送できないとして返送するまでキューに入っている最 大の日数。 queue_run_delay 遅延キューをスキャンする間隔の秒数。キューのスキャ ンは重なりません。 transport_retry_time 壊れた配送方法に連絡を試みる間隔の秒数。 並列度制御 下の文で transport は master.cf の最初のフィールドを指し ます。 4 QMGR(8) QMGR(8) initial_destination_concurrency 同じ配送先に並列で配送する際の、配送先ごとの並列度 の初期値。 default_destination_concurrency_limit 同じ配送先への並列度の制限数のデフォルト。 transport_destination_concurrency_limit 指定されたメッセージ transport での同じ配送先に対す る並列配送数の制限。 Recipient controls default_destination_recipient_limit メッセージ配送ごとの受信者数の制限のデフォルト。 transport_destination_recipient_limit 指定されたメッセージ transport での、メッセージ配送 ごとの受信者数の制限のデフォルト。 関連項目 master(8), プロセスマネージャー relocated(5), 移動したユーザのテーブルの書式 syslogd(8) システムロギング trivial-rewrite(8), アドレスルーティング ライセンス 安全なメーラライセンス(The Secure Mailer license)はこのソフト ウェアと一緒に配布されなければいけません。 作者 Wietse Venema IBM T.J. Watson Research P.O. Box 704 Yorktown Heights, NY 10598, USA 5