[RockyLinux9.5]RockyLInux9.5 透過 NetworkManager-ppp達成pppoe撥接(若沒成功, 找鳥哥重修)
RockyLInux9.5 透過 NetworkManager-ppp達成pppoe撥接(若沒成功, 找鳥哥重修)
記得要加下面這個
yum install NetworkManager-ppp NetworkManager-adsl
nmcli conn add type pppoe ifname ppp0 con-name {connection-name} autoconnect yes pppoe.parent eno1 pppoe.username {username} pppoe.password {password}nmcli conn up {connection-name}使用nmtui
![[RockyLinux9.5]RockyLInux9.5 透 [RockyLinux9.5]RockyLInux9.5 透](uploads/pixnet_61503cd219c2.png)
新增完就能用了.
- 問題:使用 NetworkManager PPPoE 時特定網站連線timeout
- 原因:MTU (Maximum Transmission Unit) 不匹配導致 TCP Out of Order
記得再加這行
# 在 iptables 加入自動調整 TCP MSS 的規則
iptables -t mangle -A POSTROUTING -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
下列是我也有遇到的情況, 來自網路 "ATI的軟體&網管技術誌"
- 值得注意的是,網路上都會教 ifname 用網路卡的代號,但這樣做會導致撥號後 LAN 會斷線,所以這邊用 ppp0 當作連線裝置
|
|
- 一直都是用 rp-pppoe 讓 linux 撥號當路由器,但最近用起來怪怪的,剛好看到 NetworkManager 也可以做撥號,就換過去試看看
- 到這邊都沒什麼問題,等我開始用個兩天之後,就發現特定網站,連線會整個卡住,最後就 timeout
- 稍微 google 一下看起來是 mtu 的問題,裝了 wireshark 來看,確實有很多封包是 TCP Out of Order
- 所以我試著把內網的電腦網卡 mtu 調低看看,果然馬上就好了
- 造成的原因不難理解,就是 Ethernet 和 PPPoE 最大能乘載的資料量不同,TCP 在建立連線時提供的 MSS(max segment size) 要和底層相應,不然資料會對不上
- 只是原本 rp-pppoe 似乎有處理這個情況,而 NetworkManager 就沒有
- 知道原因之後,查到解決的方法是用 iptables 在 TCP SYN 封包轉送的時候修改 MSS 成該路徑對應的大小
- firewalld 的設定檔寫起來會是這樣:
- 那個 clamp-mss-to-pmtu 會自動偵測路徑上的 mtu 作調整,很方便
- 如果要手動寫的話,也可以用 --set-mss 1452 這樣的寫法
- 改完後測試之前不能上的網站,全部都沒問題了