qmail セカンダリサーバ設定

qmailを使ってセカンダリメールサーバを構築するための手順をまとめる。
セカンダリサーバは、プライマリサーバ同様自ドメインのメールを受信し、プライマリサーバに再配送する。プライマリサーバがダウンしてしまった場合に、セカンダリサーバでひとまず受信することで、送り側メールサーバの再配送期限に寄らず、より確実にメールを受け取ることができる。

セカンダリサーバとしてメールを中継するには、smtproutesファイルで経路を設定する。
smtproutesファイルには、ドメインと転送先のペアを記述する。smtproutesの設定はDNSのMXレコードよりを優先されるため、特定のドメインに対してプライマリサーバへ転送するように指定することで、そのドメインのセカンダリサーバとして機能させることができる。

  • 1.プライマリサーバへの経路を設定
    セカンダリサーバとして機能させたいドメインについて、プライマリサーバへの経路を設定する。次のように設定ファイルを記述する。
# vi /var/qmail/control/smtproutes

toshikazu.org:p086004.doubleroute.jp
tsushin.tv:p086004.doubleroute.jp
ntt2002.net:p086004.doubleroute.jp
  • 2.現行設定の確認
    localsとvirtualdomainsにそのドメインの設定があれば、smtproutesより優先して処理されてしまう。セカンダリサーバとして機能させたい場合、そのドメインの設定がlocalsとvirtualdomainsにないことを確認する。
# vi /var/qmail/control/locals
# vi /var/qmail/control/virtualdomains
  • 3.メール受信設定
    セカンダリサーバとして機能させたいドメインをrcphostsに入れ、メールを受信できるようにする。この点についてはプライマリサーバの場合と同じである。
# vi /var/qmail/control/rcpthosts

toshikazu.org
tsushin.tv
ntt2002.net
  • 4. キューの保管期間設定
    メールがキューに滞在する時間を設定する。デフォルト値は604800(秒、7日間)となっている。この期間にプライマリサーバが復旧しなければ配送エラーとなる。デフォルト値で十分ではあるが、queuelifetimeファイルで値を指定することもできる。例えば4週間にするには、次のようにする。
# vi /var/qmail/control/queuelifetime

2419200
  • 5.MXレコードの設定
    DNSのMXレコードを設定する。ゾーンファイルの該当箇所を変更する。
    プリファレンス値は小さい方が優先度が高い。プリファレンスの数値そのものには意味はなく、その大小関係だけが意味を持つ。
# vi toshikazu.zone

・・・
IN MX 10 p086004.doubleroute.jp.
IN MX 50 ichi.tom.comm.waseda.ac.jp.
・・・
  • 6.設定の反映
    qmailを再起動し、設定を有効にする。上記の制御ファイルは qmail-smtpd(8), qmail-send(8), qmail-inject(8), qmail-remote(8) の4つから参照されている。


  • 注意点:
    次のようにワイルドカードを使って転送の設定をすると、セカンダリサーバとして設定しようとしたドメインについてはうまく機能する。しかし、それらと関係のない外部ドメイン宛てのメールもプライマリサーバに転送されてしまう。そして、通常はプライマリサーバ側で外部ドメイン宛てのメールは拒絶されるため、エラーとなってしまう。
    このような事象は、セカンダリサーバ内のプログラムやユーザが、外部ドメイン宛てのメールを送信する場合に起こりうる。よって、次の設定は、純粋なセカンダリサーバとしては間違い。
# vi /var/qmail/control/smtproutes

:*.doubleroute.jp

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-12-26 (水) 18:12:23 (5960d)