常遇到的問題,整理一下內容( 擷取至:https://networklessons.com)
TCP Header : 20 bytes
IP Header : 20 bytes
Ethernet Header : 14 bytes
ICMP Header : 8 bytes
GRE Tunnel Header : 20 + 4 bytes
因為 ethernet MTU 1500 扣除TCP & IP Header 1500-20-20=1460 bytes
所以預設三方交握的過程中會使用MSS 1460 bytes 來做協商
若環境使用GRE Tunnel 建立連線時,就必須要注意TCP MSS 1500-20-20-24=1436 bytes
但因為預設三方交握的過程中會使用MSS 1460 bytes 來做協商,最後MTU會變成1460+20+20+24=1524 bytes
所以需要在Router上修改TCP MSS 參數
#ip tcp adjust-mss 1436
透過ICMP 測試發現一個問題
Cisco IOS ICMP 透過GRE Tunnel 最大MTU 1476 正常
但從Windows 7 ICMP 透過GRE Tunnel 最大MTU 1476 卻異常
原因在於 Cisco IOS ping SIZE是包含 ICMP data+ICMP header+IP Header
但Windows 7 ping SIZE 是不包含 ICMP header(8 bytes)+IP Header(20 bytes)=28 bytes,
必須再扣除這28個bytes 1476-28=1448 bytes (最大MTU)
Facebook Comments