はじめに
メールサーバを構築する際には普通は複数台のサーバを用意して、パラレルに受信したり優先サーバが落ちている時に別のサーバが受けたりとして、なるべくメール配信に支障が出ないような構成にするものです。
うちのhijiki.netなんて、メールサーバは当然一台だし、オマケに非固定IPというメールサーバにするには最悪の環境になっています。
今回は一時的とはいえ、別にメールを受信してくれるサーバを用意して優先サーバが落ちていたり回線が切れている時にも予備サーバが受信して適度なタイミングで転送してくれる仕組みを構築してみました。
今回はいつもお世話になっているひできちさんにお願いして、Postfixを使ったリレー設定を行って貰いました。今回のエントリは技術的には別に役に立つ情報でもなく、自分の知識向上に役立ったのでエントリします。
設定方法
予備サーバ側の設定
今回新たに設定を追加するサーバを予備サーバと呼ぶことにします。こちらでも既に別のドメインでメールの送受信が行える設定が既にされているものとして説明します。もちろんMTAはPostfixです。
main.cfのrelay_domainsとtransport_mapsの設定を確認します。relay_domainsにリレーを許可するドメイン名を追記します。また、transportで転送先設定を行うので、transport_mapsで転送設定ファイルの場所を指定します。
| relay_domains = $mydestination hijiki.net transport_maps = hash:/usr/local/etc/postfix/transport |
続いてtransportファイルの中を編集して、hijiki.netドメインに来たメールをどこに転送するか指定します。
| hijiki.net :[mail.hijiki.net] |
transportのファイルはハッシュテーブルで管理しますので、postmap transportでtransport.dbを作成します。
あとはpostfix restartでリスタートすれば準備OKです。本当は色々とリレーの時間設定とか出来るのですが、デフォルトの値では15分毎にリレーを試みる様です。詳しいパラメータはpostconfコマンドで適当な値を探してみて下さい。
DNSレコードの修正
普段最優先でメールを受けるサーバも既にMTAの設定が済んでいるものとして説明します。
つまりDNSレコードにMXレコードが存在して、適当な優先度になっていると思います。ValueDomainではデフォルトで優先度は10になりますので、それよりも大きい値で予備サーバのMXレコードを追加します。まあ100とか指定しておけばいいのではないでしょうか。

あとは一応nslookup等でMXレコードが反映されるのを待ちましょう。当然メールが流れる大げさに言えば全世界のDNSサーバが更新されるまで待ちましょう。まあ、ValueDomainの場合は1分も待てば大丈夫でした。
動作確認
動作確認方法は簡単です。優先サーバに別のプロバイダ等からメール送信する前にpostfix stop等でMTAデーモンを停止させてから送ります。
暫くしてからMTAデーモンを再開させて、しばらく待ちましょう。15分もすれば、予備サーバからメールが転送されてきます。一応メールヘッダを見てみましょう。Received:行に予備サーバから転送された旨のメッセージが追加されている筈です。
おわりに
予備サーバを設置する事により、非固定IPで稼働しているメールサーバが格段に信頼性の高いものになります。
ちょっとGoogleでメールリレーサービスをやっている企業を探してみましたが、単独サービスとしてやっているのはなかなか無さそうです。UNIX使いでサーバ公開している知り合いを捜すのは大変ですが、今回は無理矢理(?)知り合いになったひできちさんがいてくれて助かりました。ありがとうございました。


