MTU 设置错误导致防火墙或者路由器断网
? ? 最近刷了新的Openwrt固件,發(fā)現(xiàn)ADSL撥號很慢,即WAN接口連接不上,有時候要等好幾分鐘才能連接上,有時候連接上了沒過幾分鐘又?jǐn)嗑€了,又要等很久才能連接到。于是自己動手排查,用電腦直接連接網(wǎng)線去modem撥號,發(fā)現(xiàn)沒問題。于是查了資料,發(fā)現(xiàn)很有可能是Openwrt路由器的MTU導(dǎo)致的。默認(rèn)固件的MTU是1500。
【MTU科普一下】
? ? MTU (最大傳輸單元)是網(wǎng)絡(luò)設(shè)備傳輸?shù)男畔畲笾怠τ诟鞣N路由器或者防火墻,最佳的MTU值通常都是默認(rèn)值。
有時,更改MTU值可提高設(shè)備工作性能,做起來很簡單,但事實上,這樣做往往會導(dǎo)致出現(xiàn)其他問題。最好保持MTU不變,
除非有以下情況出現(xiàn):
- 當(dāng)連接不到 ISP 或者不能使用其他的因特網(wǎng)服務(wù)時,且他們的技術(shù)支持人員建議更改MTU值。
- 當(dāng)您使用 VPN,遇到性能問題時可以考慮更改MTU
? ? 為了提高網(wǎng)絡(luò)的某些性能,使用了可優(yōu)化MTU 值的應(yīng)用程序,而這引起了連通性和其他性能方面的問題一個信息包被發(fā)送到MTU值較小的設(shè)備時,將被分解為若干小塊。
? ??理論上,在所有電腦、交換機、路由器、防火墻及您能訪問到的因特網(wǎng)的所有設(shè)備上的MTU值應(yīng)該設(shè)置為同一大小。但是您不能控制因特網(wǎng)上的 MTU 值,而事實上在一個局域網(wǎng)中的最佳MTU值取決于硬件、軟件、無線接口等等。
? ? 在一種情形下修改MTU的大小可使設(shè)備很好地工作, 但在其他方面卻可能引起性能和連接性問題,當(dāng)具有不同MTU值的設(shè)備相互通信時,信息包將會被分成多個以便能傳給具有最小的MTU值的設(shè)備。
? ? Windows XP自動設(shè)置MTU ,換句話說,它使MTU對于各種應(yīng)用綜合性能最優(yōu)化。微軟的文章解釋了使用Windows XP的寬帶用戶不能連接到ISP的原因,一旦網(wǎng)絡(luò)設(shè)備分解了一個信息包,此信息包在到達(dá)目的地前一直保持分解的狀態(tài)。
各種應(yīng)用下的最佳MTU值
設(shè)置MTU大小是一個反復(fù)試驗的過程: 由最大值1500開始下降,直至問題解決。使用下列值之一或許能解決一些由MTU值引起的問題:
- 1500. 以太網(wǎng)信息包最大值,也是默認(rèn)值。是沒有PPPoE和VPN 的網(wǎng)絡(luò)連接的典型設(shè)置。是各種路由器、網(wǎng)絡(luò)適配器和交換機的默認(rèn)設(shè)置
- 1492. PPPoE 的最佳值
- 1472. 使用 ping 的最大值 (大于此值的信息包會先被分解)
- 1468. DHCP的最佳值
- 1430. VPN 和PPTP 的最佳值
- 576. 撥號連接到 ISP 的標(biāo)準(zhǔn)值
好了,注意一下,以上資料是正常普通情況下MTU的值,不同地區(qū)不同運營商不同機房或許也會導(dǎo)致MTU值的不一致!
如何查看MTU值呢?
電腦直接插網(wǎng)線到modem進(jìn)行ADSL撥號上網(wǎng),在cmd命令下輸入:
netsh interface ipv4 show subinterfaces?
如上圖顯示就是當(dāng)?shù)谹DSL運營商MTU值。而并非固件默認(rèn)的1500.
如何測試MTU值的最大值?
MTU值越大,發(fā)包量就大,發(fā)包時間減小,理論上是可以提高網(wǎng)絡(luò)的。怎樣測試自己的MTU值的最大值呢?
首先,在CMD命令下輸入:
ping -f -l 1500 www.baidu.com?
1500是默認(rèn)值,先來測試一下是否能達(dá)到1500.
命令返回:“需要拆分?jǐn)?shù)據(jù)包但是設(shè)置 DF。” 說明MTU值過大!我們把MTU值降低試試
ping -f -l 1450 www.baidu.com?
PING值出來了,說明MTU設(shè)置1450可以通過。
再測試一下1451。
ping -f -l 1451 www.baidu.com?
命令返回:“需要拆分?jǐn)?shù)據(jù)包但是設(shè)置 DF。” 說明MTU值最大就是1450了。
于是有人就疑問,為什么在modem下測試是1478,而ping值測試 是1450?
上面ping得到的MTU值不能直接用于本地設(shè)置上,還應(yīng)在此基礎(chǔ)上加上28(數(shù)據(jù)包頭大小28字節(jié)),因此最終在WAN設(shè)置頁面修改MTU大小為1478。
最后,我就在路由器的WAN接口設(shè)置MTU值1478.
?
重啟路由器之后發(fā)現(xiàn)撥號從此正常了!
總結(jié)
以上是生活随笔為你收集整理的MTU 设置错误导致防火墙或者路由器断网的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文看懂家庭宽带光纤是如何入户
- 下一篇: 子网划分详解与子网划分实例