發信時發生 timeout after DATA - (IP path MTU discovery)



贊助商連結


阿 土
2008-06-04, 09:15 PM
最近幫一個客戶架設 Mail Server , 使用 Hinet 撥接方式固一 IP (PPPoE) 方式連線

客戶反應對方信寄不進來
檢查 maillog 後發現部分主機與 mail server 連線後會發生 timeout 逾時自動斷線

以下是 log :

Jun 3 00:17:25 mail postfix/smtpd[83762]: connect from sa8.bezeqint.net[192.115.104.22]
Jun 3 00:17:27 mail postfix/smtpd[83762]: 615DA33CC5: client=sa8.bezeqint.net[192.115.104.22]
Jun 3 00:22:27 mail postfix/smtpd[83762]: timeout after DATA from sa8.bezeqint.net[192.115.104.22]
Jun 3 00:22:27 mail postfix/smtpd[83762]: disconnect from sa8.bezeqint.net[192.115.104.22]

Jun 3 00:28:00 mail postfix/smtpd[83968]: connect from sa5.bezeqint.net[192.115.104.19]
Jun 3 00:28:02 mail postfix/smtpd[83968]: 0FC4B33E34: client=sa5.bezeqint.net[192.115.104.19]
Jun 3 00:33:02 mail postfix/smtpd[83968]: timeout after DATA from sa5.bezeqint.net[192.115.104.19]
Jun 3 00:33:02 mail postfix/smtpd[83968]: disconnect from sa5.bezeqint.net[192.115.104.19]

Jun 3 16:26:24 mail postfix/smtpd[13255]: connect from unknown[140.110.208.2]
Jun 3 16:26:24 mail postfix/smtpd[13255]: DFFC633CC6: client=unknown[140.110.208.2]
Jun 3 16:27:44 mail postfix/smtpd[13255]: timeout after DATA from unknown[140.110.208.2]
Jun 3 16:27:44 mail postfix/smtpd[13255]: disconnect from unknown[140.110.208.2]

花了幾個小時 , find & test 找到問題點 , 留下記錄給有需要的朋友參考

請參考 postfix faq : 關於 timeout
http://www.postfix.org/faq.html#timeouts

主要是 : IP path MTU discovery 造成

送信方主機端關閉了 "path MTU discovery" , 信一樣可以送 , 但是可能會造成部分人受害
Workaround: at the sending machine, disable path MTU discovery. Mail will get out, but of course everyone else will still suffer.

收信端要將 MTU 設定小一點以接受對方 Server 關閉 "path MTU discovery" 造成的問題
例如 : 使用 PPPoE 的用戶 , 將 MTU 設定在 1500 以下
Workaround: at the receiving machine, set a smaller MTU. For example, people using PPPoE (PPP over Ethernet) often have to choose an MTU lightly smaller than the default 1500 for ethernet.

此 Case 剛好是使用 PPPoE 撥接的用戶 , 預設 MTU 為 1500 , 改成 1400 後 , 原本收不下來的信件很順利的收下了

後來發現偶而還是有 timeout 的錯誤訊息 , 於是再調整成 1200

測試一晚後 , 發現調到 1200 比較不會發生類似的問題 , log 只剩 2 筆 timeout

調整 MTU 的指令為:
tun0 = PPPoE 使用的網路介面

ifconfig tun0 mtu 1400

PS : 往後會新增 mail server , Anti-spam 版 , 讓有需要的朋友可以彼此交流

贊助商連結


bx2aa
2008-06-06, 11:30 PM
若用 IPV6 PMTUD 應該就不會有這個問題了.

以前 PPPoE不是有一個魔值 MTU 1472 ?

會不會是線的問題?

ellery
2008-06-07, 10:04 PM
若MTU值調太低會有什麼副作用嗎?

seedg4
2008-06-14, 06:10 PM
若MTU值調太低會有什麼副作用嗎?

每個packet能傳送的payload變少
變成要更多packet傳送
就效率上比較低些

bx2aa
2008-06-18, 12:43 AM
若MTU值調太低會有什麼副作用嗎?
做了一個實驗設定 MTU 為 1200
有 DF Flag 但是 MTU 不大於 1200 可以正常 ping 的通
設定 DF Flag 但是 MTU 大於 1200 就出狀況

使用 PE1 PE2 PE3 這三台路由器
.http://www.pczone.com.tw/attachment.php?attachmentid=15532&stc=1&d=1213720641

Topology 修改為
R3-(Fa0/1)------(Fa0/0)-R4-(Fa0/1)------(Fa0/0)-R5

開啟 r3 r4 r5
http://www.pczone.com.tw/attachment.php?attachmentid=15533&stc=1&d=1213720724

設定 R3
http://www.pczone.com.tw/attachment.php?attachmentid=15534&stc=1&d=1213720855

設定 R4
http://www.pczone.com.tw/attachment.php?attachmentid=15535&stc=1&d=1213720890

設定 R5
http://www.pczone.com.tw/attachment.php?attachmentid=15536&stc=1&d=1213720962

bx2aa
2008-06-18, 12:45 AM
確認線路和設定正確:
R5 ping 10.1.1.1
R4 ping 10.1.2.1 和 ping 10.1.1.1
R3 ping 10.1.2.254
http://www.pczone.com.tw/attachment.php?attachmentid=15537&stc=1&d=1213721105

更改 R4 Fa0/0 的 IP MTU 為 1200
ping 10.1.1.1 size 1200 df-bit 可以正常 ping 通
再試ㄧ次把 1200 改為 1201
ping 10.1.1.1 size 1201 df-bit 這時就出問題了
http://www.pczone.com.tw/attachment.php?attachmentid=15539&stc=1&d=1213721137

nasaufo
2008-06-26, 05:45 PM
請問我的mail server前端是ip分享器,mtu要怎麼調整