質問: 1つの固定ipで複数のドメイン宛てのメールを振分 似たような質問は度々見かけたのですが、自分が構築しようとしている環境と違っていたり、自分が理解できず、解決できるようなq&aが見つけられなかったので質問させていただきます。 独学で趣味程度でしか勉強していませんので、用語の取違いや説明の趣旨が伝わらない部分もあるかと思いますが宜しくお願いします。 基本的にできない事なのかもしれませんが、 やりたい事は、1つの固定ipアドレスでインターネット側からの複数のドメイン宛てのメールをそれぞれのメールサーバーで受け取ること。 理想的なのは「poundのようなリバースプロキシでメールのヘッダ内の文字列等で振り分ける」ようなことはできないものなのかなと・・・ 構成例として 例 ドメイン1:aa.com 例 ドメイン2:bb.com 例 サーバー1:postfix、dovecotをaa.com用で構築。 例 サーバー2:postfix、dovecotをbb.com用で構築。 ※postfixのバーチャルドメイン?は使用しないで管理したい。理由はドメイン毎にサーバーを用意した方が自分の頭では管理がし易いと思ったからです・・・ ・インターネット側からのaa.com宛てのメールはサーバー1でのみ受け取る。 ・インターネット側からのbb.com宛てのメールはサーバー2でのみ受け取る。 ・インターネット側からメールサーバーの間にdnsや他のサーバーを構築しても構いません。 ・ハードウェアではなく、フリーのアプリケーションを使用することを前提としています。 「こんな方法もあるよ」や「こんな方法の方が管理し易いよ」などもありましたら宜しくお願い致します。
回答: 回答そのものはno.1/no.2と同じですが、メール配送のしくみについてちょっと解説しときます。 ・リレーサーバとは? インターネットメールの運用上、あるドメインのメールを受け取るサーバは、dnsのmxレコードで指定しますが、 このmxレコードには、「プリファレンス」(優先度)という数値指定があります。 これは、メールサーバが落ちたりしてメールが送れなくなるため、予備のメールサーバを指定できるようにするしくみです。 メールを送信する側では、mxレコードの一番優先度が高い(プリファレンス値が小さい)サーバにメールを転送しようとします。 そのサーバが落ちてた場合など転送に失敗した時は、順次優先度が低いサーバにコネクションを張っていき、 転送が成功した時点で「メールを送ることができた」ことになります。 この「一番優先度が高いサーバ」こそが、メールを最終的に受け取るべきサーバですが、 それ以外のサーバは予備のサーバであり、一旦メールを受け取ったあと、 本来のサーバが復旧したところで、転送しなおす、といった処理を行います。 こういった「自分宛ではないメールを受け取って、別のサーバに転送するメールサーバ」をリレーサーバと言います。 また、ちょっと大きめの組織では、インターネットの接続点にファイアウォールを設置しているために、 インターネット側から直接メールサーバにアクセスできないようなネットワーク形態になっている所もよくあります。 そういう場合は、ファイアウォール上でリレーサーバを稼働させて、メールを内部の適切なホストに転送するような動作をさせたりします。 (これは、まさに質問者さんのような状況であると言えるでしょう) ・wwwにおけるpoundのようなリバースプロキシと同じものをメールサーバで実現できるかどうか www(http)では、一回のコネクションでのアクセス先ホストは1つしかありません。 そのため、そのリクエストを見て、ホストに合わせて通信を振り分ける「リバースプロキシ」が実現できます。 一方メール(smtp)では、一回のコネクションで、送り先メールアドレスを複数指定できます。 また、たいていのメールサーバは、送り先サーバが同じ配信は一つのコネクションにまとめますので、 インターネット側から見たaa.comとbb.comのメールを受け取るサーバが1つの固定ipアドレスで共用している場合、 「to: xxx@aa.com, yyy@bb.com」のようにして宛先にaa.comとbb.comが混在するメールを送ったりすると、 その固定ipアドレスで動くメールサーバに「宛先はxxx@aa.comとyyy@bb.com、本文は○○○...」といった感じで、一つのコネクションでまとめてメールを転送してきます。 そのため、smtpでは、送り先メールアドレスを見てコネクションを単純に「振り分ける」ようなことはできません。 一旦メールを全部受け取ってから、そのメールを適切なメールサーバに転送(リレー)する必要があります。 (この段階で、上述のようなメールは、同じ本文をaa.comとbb.comの両方のメールサーバに転送します) この処理は、上述の「リレーサーバ」の動作そのものです。 というわけで、質問者さんの求めるものを解決するのは「smtpサーバのリレー設定」なわけです。 また、postfixに限らず、smtpメールサーバはどれも、リレー機能を有しています。