DigiLoog

PC関係の事なら何でもいけるそんな処

ns-labのSMTP配送経路を冗長化してみた

2016年03月27日(日) - 16:25 | カテゴリ: Linux

前回:ns-labのMTA鯖を拠点冗長化してみた

今までは↑の構成で問題無かったのだが、
昨日S氏とプライベートの待ち合わせをしている時に、

 S氏「(自鯖に)メール送ったんだけど、届いていないっぽい」
 自分「スパムフィルターで除外されたかな? もう一度送っておくれ」
 S氏「送った。 どうよ?」
 自分「届かぬ…」

というやり取りがあり、色々と原因をシミュレートしていた所、
修正前の構成ではVPNが切断された場合、メール配送が著しく遅延する事に行き着いた。

というのも、ConoHa側に着地したメールは固定配送(DNS指定)を切って、
ドメイン毎にVPNを通過させつつ、SpamFilterへ着地されている。
その為、VPN接続断の状態だとConoHaから先が無くて、ConnectionTimeoutになってしまっていた。

ちなみに、今までは固定配送先のDNSレコードを自動切り替えして対応していたのだが、
ここの所プライベートでも自鯖メールを使う様になり、
このままじゃマズイという事で、良い機会だと思って配送経路も冗長化してみた。

という事で配送経路を修正した結果がこちら。
経路上では難しい事はせずに、普通に迂回させる方針にしてみた。

通常配送 VPN障害時

普通の設計なら、VPNを安定化させて接続断を極力起こさないようにしたり、
そもそもVPNを経由させずにInternetで配送させる筈。
しかし、ns-labの場合はVPN-GWで少し細工したり、VPN接続性の実験を常にしている為、
通常のメールについても出来る限りVPNを通したい経緯があった。

………

試行錯誤している中で、固定配送を冗長化する設定で大きな問題が起きた。
それは、Postfixではmailertableの様に固定配送先を複数設定するのが普通は出来ないという事。

厳密には固定配送先が1つまでなら、"transfer_maps"のみで出来るけれど、
似たような事をするには、master.cfを弄ったり面倒臭い事がわかった。

最終的にはmailertable相当の事が実現出来たのだが、
何故Postfixでtransfer_mapsを書く時に複数の配送先を指摘出来ないのが、
今回の設定を作る上でハマる要因の一つだった(´・ω:;.:…

………

メールとDNSは昔からある仕組みだからこそ、複雑だしいたる所にハマる要因があるのが怖い。
ns-labのメールサーバは特殊な構成だし、シンプル構成への組み替えを考える頃合いなのかもしれない。
…と言いつつ、複雑だからこそ判る事もあるので、このまま突っ走る予定ではありますが ヘ(゚∀゚ヘ)





  • 応援中

    はじめるセカイの理想論 -goodbye world index-