チップス
特定のドメインからメールが届かない timeout after DATA from
特定ドメインからメールを受信できていないので、ログを調べました。
postfix/smtpd[31964]: timeout after DATA (999 bytes) from hogehoge [999.999.999.999]
MTUサイズを再設定して解決
$ ifconfig |grep -i mtu で調べたら MTU:1500 だったので 1452 に再設定しました。
$ ifconfig the0 mtu 1452
解りやすく解説してくださっているホームページをgoogleで見つけました。
1424バイトまではpingが通ることからMTUサイズは1424+28(ICMPヘッダ+IPヘッダ)で1452バイトとなる。
どうやら、PPPoE(xDSLや光ファイバ・インターネット回線などで使われているプロトコル)などが使われていると、それらのプロトコルの分だけ、MTUサイズが制限されることになる、ということらしい。この1424バイトというのをMTUの値としてLinuxのサーバ側に設定する
MTU(Maximum Transmission Unit)
- ネットワークで送信可能なパケットの最大サイズをMTUという。IPパケットのサイズがMTUサイズを超えるとパケットの分割処理が行われる。これをIPフラグメンテーションという。
- フラグメントしたIPパケットはファイアウォールでブロックされることがある。その結果、サイトによってWebページが見られなくなったり、接続不能になったりするトラブルが生じる可能性がある。
- このような場合は、ネットワーク・インターフェイスのMTUを変更して、フラグメントが起こらないようにすればよい。
postfix/smtpd[31964]: timeout after DATA (999 bytes) from hogehoge [999.999.999.999]
の原因がフラグメンテーション(パケットの断片化)と推測されるので、MTUを 1452に再設定したらメールが届くようになりました。
関連情報URL
MTU (Maximum Transmission Unit ) @ITより
IPフラグメンテーション (IP fragmentation)@IT より