TShopping

 找回密碼
 註冊
搜索
查看: 384|回復: 0
打印 上一主題 下一主題

[CentOS] CENTSOS 8-9 PPPoE 在 iptables 中 TCPMSS 網路封包設定問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2022-12-13 22:31:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
 
Push to Facebook
最近因為CENTOS 7 服務會莫名的關閉,查了發現是KENERL問題,所以決定升到CENTOS 8-9,

我的INTEL雙網網卡 來當做家裡的firewall, 於是安裝了CENTOS 8 - 9, 並用pppoe 來連接中華電信的Router, 並且寫了一些iptables 的rules 來當作firewall 及NAT router.
但是覺得有問題, 有時連不出去. 現象是這樣的:

但是在NAT 後面的電腦,GOOGLE PTT網站 連線都很ok, , 只要碰上yahoo跟遊戲 的連線, 就連不上, ftp 也ok.


這問題擺了很久都沒去理會. 今天終於有空好好的來追問題的源頭. 發現好像是跟pppoe 有關.
問了小洲大大才發現

MTU
MTU (Maximum Transmission Unit) 是指網路介面卡上最大傳輸單元, 其單位為bytes. 在大多數的Ehternet 上, 這個值通常是1500. 因為如此, 在PPPoE 中, 因為還有header問題, 所以這個值就得設的比較小, 通常為1492 (= 1500 – 2(PPP)- 6(PPPoE))

MSS
MSS (Maximum segment size) 是TCP protocol 中的一個參數, 是指TCP 每次資料傳輸分段的最大值. 當TCP 在handshake 時, 雙方host 會查看MSS 這個欄位, 來決定雙方資料傳輸分段的大小. 在Ethernet 中MSS 值最大為1460 bytes.
原因是在Ethernet 中 MTU = IP Header + TCP Header + MSS + FCS.
(FCS 是指Frame check sequence, 通常採用CRC演算法, 在Ethernet 中, 它佔4 bytes.)
但是在PPPoE 中MTU 為1492, 所以其MSS 只能設為1452.

問題所在
當CENTOS 8 在開機後, 啟動了ppp0, 其內定將MTU 設為1492, 並且會自動設定一條iptable rule,


因為在NAT 後面的電腦, 並不知道前端的router 是用什麼介面連到internet, 所以它和遠端的電腦建立TCP 連線時, 有可能會將MSS 設為1460. 但是由於firewall 或router 端使用PPPoE連線, 若MSS 大於1452會造成資料爆掉, 所以上述的iptable rule 強制偷改其MSS值(在IPV4下 = PMTU – 40, 在IPV6下 = PMTU – 60). 因此MSS 就會被改成1452, 這樣子就不會爆掉了.

但是我自己寫的iptable rule script 中, 一開始就用了下列設定, 清除了原來的所有設定

  1. # 清除所有規則
  2. iptables -F -t filter
  3. iptables -X -t filter
  4. iptables -Z -t filter
  5. iptables -F -t mangle
  6. iptables -X -t mangle
  7. iptables -Z -t mangle
  8. iptables -F -t nat
  9. iptables -X -t nat
  10. iptables -Z -t nat
複製代碼


設定都清除掉了, 然後NAT 後面的電腦還是無法正常連線.

解決方式
既然知道原因, 解法就很簡單, 就是在我自己的iptable rule 中再加上
  1. iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
複製代碼


就搞定了!!

參考文章






 

臉書網友討論
*滑块验证:
您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2024-5-2 23:33 , Processed in 0.375605 second(s), 22 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表