--MTU值設置

一、問題概述:
在我們的實際組網中經常遇到此類問題:
1)        某些網站瀏覽沒有問題,而某些網站瀏覽非常慢甚至無法瀏覽。QQ等正常沒有任何問題。
2)        無法下載大的文件。
3)        EMAIL無法發大附件。
二、問題分析:
一般所來是由於路徑MTU不匹配的緣故,特別是在經過了***鏈路的時候,譬如ADSL PPPOE撥號,L2TP,PPTP,IPSEC,GRE隧道等情況。下面就以GRE隧道爲例來說明MTU的問題,其他隧道協議類似只是頭部字節不同而已。
拓撲結構:
***網關1和2之間建立了一條GRE隧道,***1 ***2的外網口均爲以太網口,MTU爲1500。PC與SERVER通過該GRE隧道互訪。
分析過程:
        PC在ping –f –l 1448 SERVER 的時候可以ping 通,而ping –f –l 1449 SERVER的時候卻收到報文不可分片錯誤。
        PC出來的IP報文長度爲1448+8(ICMP)+20(IP),到達***網關1,***網關1發到GRE隧道口,封裝GRE頭(4),再加上外層 IP頭,到達***網關外層以太口,這時IP報文的長度已經變爲:1448+8+20+4+20=1500字節,剛好等於以太口的MTU,於是被順利傳 送。而ping 1449時,到達外層以太口爲1501字節,超出了1500的MTU,又因爲報文DF位被設置,於是就只能丟棄改報文,並返回DF錯誤。
上 述實驗中出現此結果是因爲DF被置位,導致無法分片。但是如果DF沒有置位則可以正常的通過但是會出現分片的現象。不過現在很多服務器譬如WEB爲了提 高效率以及安全問題等所發出的包是不允許分片的。並且大多防火牆、IPS等設備,這些設備通常也是不允許分片通過的。因此就出現了有些網站無法瀏覽,大文 件無法傳輸的情況。
解決方法:
假設PC建立了到SERVER的HTTP連接,PC希望從SERVER下載一個大的網頁。SERVER 接收到PC的請求後開始發送大網頁文件,其IP的 DF位置1,不允許分片,IP報文長度爲1500字節。到達***網關2的外網口(以太)後,***網關2發現其長度超過了1500個字節,於是將其丟 棄,並給SERVER發回一個目的地址不可達的ICMP信息,同時指出“MTU of next hop: 1500”。PC接收到該消息後,又按照1500字節對外發送,又被丟棄,於是就形成了循環,無法通訊。
根據上述的分析,很容易得到如下解決方 式,在***網關2的出接口設置MTU爲1500-4-20=1476,這樣***網關2返回ICMP不可達消息時 將給出”MTU of next hop: 1476”。SERVER將以1476作爲自己的最大MTU對外發送,到達***網關1,封裝GRE和外層IP頭後就不會超過1500而順利發到對端。這 個是下載問題的解決,如果要解決上傳的問題,在相應方向的接口修改MTU即可。當然也可以修改TCPMSS,不過這個是影響到TCP的windows從而 減小了包的長度。另外修改操作系統的最大MTU值也是可行的,不過比較麻煩。
 

 

MTU ( 最大傳輸單元 ) 是網絡設備傳輸的信息包最大值。對於 UCOM 的設備,最佳的 MTU 值通常都是默認值。有時,更改 MTU 值可提高設備工作性能,做起來很簡單,但事實上,這樣做往往會導致出現其他問題。最好保持 MTU 不變,除非有以下情況出現:


當連接不到 ISP 或者不能使用其他的因特網服務時 , 且他們的技術支持人員建議更改 MTU 值
當您使用 ***, 遇到性能問題時可以考慮更改 MTU
爲了提高網絡的某些性能,使用了可優化 MTU 值的應用程序,而這引起了連通性和其他性能方面的問題
一 個信息包被 發送到 MTU 值較小的設備時,將被分解爲若干小塊。理論上 , 在所有電腦、交換機、路由器及您能訪問到的因特網的所有設備上的 MTU 值應該設置爲同一大小。但是您不能控制因特網上的 MTU 值 , 而事實上在一個局域網中的最佳 MTU 值取決於硬件、軟件、無線接口等等。
在一種情形下修改 MTU 的大小可使設備很好地工作 , 但在其他方面卻可能引起性能和連接性問題
當具有不同 MTU 值的設備相互通信時,信息包將會被分成多個以便能傳給具有最小的 MTU 值的設備
Windows XP 自動設置 MTU , 換句話說 , 它使 MTU 對於各種應用綜合性能最優化。微軟的文章解釋了使用 Windows XP 的寬帶用戶不能連接到 ISP 的原因
一旦網絡設備分解了一個信息包,此信息包在到達目的地前一直保持分解的狀態
 

各種應用下的最佳MTU值

設置 MTU 大小是一個反覆試驗的過程 : 由最大值 1500 開始下降,直至問題解決。使用下列值之一或許能解決一些由 MTU 值引起的問題 :


1500. 以太網信息包最大值,也是默認值。是沒有 PPPoE 和 *** 的網絡連接的典型設置。是 NETGEAR 路由器、網絡適配器和交換機的默認設置
1492. PPPoE 的最佳值
1472. 使用 ping 的最大值 ( 大於此值的信息包會先被分解 )
1468. DHCP 的最佳值
1430. *** 和 PPTP 的最佳值
1、MTU和MSS的關係:
MSS是TCP協議在三次握手階段協商的一個參數,是TCP協議本身一次所能傳輸的數據塊的大小,他和WIN參數一起影響TCP的效率。MSS+TCP頭部+IP頭部<=MTU ,這樣纔可以保證TCP發出的數據不分片的傳輸。如果大於MTU則必然發生分片。
2、MTU和VLAN的關係:
由於VLAN的機理是在以太網的幀頭部加入了4個字節的VLAN TAG信息,因此在支持TRUNK鏈路的接口上要求MTU不小於1518字節。才能保證以太接口1514的MTU值。
3、MTU和各種***的關係:
因***要對原有的IP或者是TCP/UDP數據進行封裝,因此也增加了數據的長度。這樣也就導致了實際的*** 虛接口的MTU值的減小。具體的減少值不通的***也不相同。
4、MTU與MPLS MTU
MPLS只在二層幀頭和三層包頭之間加入了4個字節的MPLS墊層,因此和***的道理是一樣的也較少了實際的MTU數。特別是多層次標籤的MPLS((一般爲2層)如MPLS L2 L3***),這樣就更加減少了MTU的數值。
5、MTU與PMTU
PMTU是對到目的地的路徑的最小MTU探測機制,原理是利用了IP頭部的DF位和ICMP差錯報文。具體的過程自己搜索吧。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章