內部網路雙NAT MTU設定

內部網路雙NAT MTU設定

我的家庭網路有兩個路由器,一個在另一個後面。外部路由器的 WAN 連接埠是 VDSL2 PPPoE 連接,具有即時 IP 位址,MTU 大小為 1492。預設情況下,它的預設 MTU 為 1500。我已將其更改為 1492 以匹配外部路由器。

現在我想知道進一步減少內部網路的 MTU 大小是否有意義。在這種雙 NAT 場景中,這會讓內部網路更加健壯嗎?

答案1

NAT 只是更改封包中的 IP 位址/端口,它不包含封包中的任何額外資訊(標頭等)。因此,它不會以任何方式減少 MTU,並且具有相同的 MTU 就可以了。

答案2

雖然 NAT 不會增加資料包的大小(或者更準確地說,會減少每個資料包的最大有效負載大小),但 PPoE 和其他隧道協定通常會增加資料包的大小。

然而,大多數現代作業系統都實現了路徑 MTU 發現,概述於RFC1191,它會自動將傳出資料包調整為發送主機和目標之間任何連結的最小 MTU。它透過DF bit在大型出站資料包中設定(不分段)並查找 ICMP 錯誤來實現此目的Fragmentation Needed

在 MacOS 和其他類 Unix 作業系統中,該ping實用程式具有多個開關,可設定DF bit、 和設定有效負載大小,甚至掃描一系列大小,從而有效地確定來源主機和目標之間的 MTU。發送出去有 8 個位元組的開銷,IP 封包中有 20 個位元組的開銷,因此在 1500 位元組 MTU 介面上設定的ICMP Echo Request pingping 封包的最大有效負載為 1472 。DF bit

您可以將 MTU 設定得較低,以某種非常小的方式優化這條特定路徑,以換取稍微不理想的資料包大小所有其他主機參與的資料包流。

因此,除非您遇到檔案傳輸停滯的問題,否則最好讓作業系統自動處理 MTU。

[nevin-mac-mini:~] nevin% ping -c 1 -D -s 1472 192.168.2.1
PING 192.168.2.1 (192.168.2.1):1472 資料位元組
來自 192.168.2.1 的 1480 位元組:icmp_seq=0 ttl=64 時間=0.667 ms

--- 192.168.2.1 ping 統計 ---
發送 1 個資料包,接收 1 個資料包,0.0% 資料包遺失
往返最小/平均/最大/標準差 = 0.667/0.6​​67/0.6​​67/0.000 毫秒
[nevin-mac-mini:~] nevin% ping -c 1 -D -s 1473 192.168.2.1
PING 192.168.2.1 (192.168.2.1):1473 個資料位元組
ping:sendto:訊息太長

--- 192.168.2.1 ping 統計 ---
發送 1 個資料包,接收 0 個資料包,100.0% 資料包遺失

相關內容