Webサーバとメールサーバを別でたてるときのメモ

トラブってたのに手を入れる機会があったのでメモ。

Webサーバとメールサーバを別のサーバで運用することが結構あってレンタルサーバでおさまらないとか、既存のメールサーバはそのままとかの時にこれを考慮しておかないとWebサーバからメールが送れなくなっちゃう。

さわるのはWebサーバ側。

方法は3つぐらいあると思う。

  1. DNSで振り分ける
  2. Webサーバのゾーンファイルを編集する
  3. sendmailのmailertableを設定する

DNSで振り分ける

一番、楽。
ただし、DNSレコードをいじれる必要があるのでいろいろな関係上、DNSがいじれない場合はできなかったりする。

Webサーバのゾーンファイルを編集する

とりあえず、対応できそうなのがこれ。
ドメインのゾーンファイルの場所は

/var/named/

あたりにあると思う。
中身をのぞいてMXレコードとかmail.example.jpとかのCレコード、Aレコードもあれば目的のメールサーバに置き換える。

      IN    MX 10 sv.example.jp
mail  IN CNAME sv

      IN    MX 10 mail.example.com.
mail  IN CNAME mail.example.com.

みたいに。

namedの再起動

# /etc/rc.d/init.d/named restart

nslookupしてみて

# nslookup mail.example.jp
Server:         127.0.0.1
Address:        127.0.0.1#53

mail.example.jp canonical name = sv.example.jp.
Name: sv.example.jp.
Address: 192.168.0.1

# nslookup mail.example.jp
Server:         127.0.0.1
Address:        127.0.0.1#53

mail.example.jp canonical name = sv.example.com.
Name: sv.example.com.
Address: 192.168.25.1

になっていればOKかな

sendamail のmailertableを設定する

mailertableはsendmailのルート変換テーブルみたいなやつかもしんない。

あいかわらず、sendmailの設定が
設定の為の設定ファイルを書いて、それをコンパイルみたいな作業をしないといけないのがたまらないので出来るだけさわりたくないしsendmailややこしすぎ!

詳しくはこの辺を参考にしてみる。

mailertableによる配送経路の指定
mailertableの書式(基本編) - くんとラボ