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