Postfixでメール送信に利用するIPアドレスを指定する。
お世話になります。 かなこみです。
今回は、Postfixで苦労した点。
----------------------------------------------------------------
例)1台のサーバに2つのpostfixを起動し、外部にメールを送信する際のグローバルIPをそれぞれ別のものを使用する。その際のイーサネットはそれぞれ別のものを使用する。
PostfixプロセスA : eth0 : 192.168.1.11
PostfixプロセスB : eth1 : 192.168.2.11
としている場合、LBでsnatすることにより外部に出るときにはそれぞれ別のグローバルIPを設定する。
PostfixプロセスA : eth0 : 192.168.1.11 :グローバルIP xx.xx.xx.xx
PostfixプロセスB : eth1 : 192.168.2.11 :グローバルIP xx.xx.xx.YY
----------------------------------------------------------------
postfixの設定がinet_interfaces = allの場合、1つのグローバルIPしか使用しない。
そこで考えられるのが、
●PostfixプロセスA
inet_interface=192.168.1.11
●PostfixプロセスB
inet_interface=192.168.2.11
とすることが考えられる。
Postfixで使用するイーサネットを絞ってやれば、おのずと送信に使用するイーサネット(とIPアドレス)は固定されるからである。
しかし、これはあまり望ましい方法とは言えない(らしい)
なので"送信に使用するイーサーネットを固定"する方式をとる
●PostfixプロセスA
inet_interface=all
smtp_bind_address=192.168.1.11
●PostfixプロセスB
inet_interface=all
smtp_bind_address=192.168.2.11
とすることが正しいようである。
※ もろもろの事情で192.168.1.0/24以外のセグメントを使用してメール配送をする場合が出てくることがあるので、こちらの手法が望ましい。
[参考URL]
http://www.postfix-jp.info/trans-2.2/jhtml/postconf.5.html#inet_interfaces
http://www.postfix-jp.info/trans-2.2/jhtml/postconf.5.html#smtp_bind_address