
私のホーム ネットワークには、2 台のルーターが前後に並んでいます。外側のルーターの WAN ポートは、ライブ IP アドレスと 1492 の MTU サイズを持つ VDSL2 PPPoE 接続です。内側のルーターの WAN ポートは、外側のルーターの LAN ネットワーク上の別のクライアントとして DHCP 経由で割り当てられます。そのデフォルトの MTU は 1500 でした。外側のルーターに合わせて 1492 に変更しました。
ここで、内部ネットワークの MTU サイズをさらに小さくすることに意味があるかどうか疑問に思います。これにより、この二重 NAT シナリオで内部ネットワークがより堅牢になりますか?
答え1
NAT はパケット内の IP アドレス/ポートを変更するだけで、パケットに追加情報 (ヘッダーなど) は含まれません。したがって、MTU が削減されることはなく、MTU が同じでも問題ありません。
答え2
NAT はパケットのサイズを拡大しません (または、より正確には、パケットあたりの最大ペイロード サイズを縮小します) が、PPoE やその他のトンネリング プロトコルではパケットのサイズが拡大されることがよくあります。
しかし、最近のオペレーティングシステムのほとんどは、パスMTU検出、概要は次の通りRFC1191は、送信ホストと送信先の間のリンクの最小 MTU に合わせて送信パケットを最適に自動的に調整します。これは、DF bit
大きな送信パケットに (Don't Fragment) を設定し、ICMP エラーを探すことによって行われますFragmentation Needed
。
MacOS やその他の Unix 系オペレーティング システムでは、ping
ユーティリティには、 を設定できる複数のスイッチがありDF bit
、ペイロード サイズを設定できるほか、サイズの範囲をスイープして、送信元ホストと送信先間の MTU を効果的に決定できます。送信には 8 バイトのオーバーヘッドがありICMP Echo Request
ping
、IP パケットには 20 バイトのオーバーヘッドがあるため、1500 バイトの MTU インターフェイスに が設定されている ping パケットの最大ペイロードは 1472 になりますDF bit
。
MTUを低く設定して、この特定のパスを少し最適化することができますが、その代わりに、パケットサイズはわずかに最適化されません。ほかのすべてのホストが参加するパケット ストリーム。
したがって、ファイル転送が停止する問題が発生していない限り、オペレーティング システムに MTU を自動的に処理させるのが最善です。
[ネビン-mac-mini:~] ネビン% 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 time=0.667 ms --- 192.168.2.1 ping 統計 --- 送信パケット 1 個、受信パケット 1 個、パケット損失 0.0% 往復の最小/平均/最大/標準偏差 = 0.667/0.667/0.667/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: 送信先: メッセージが長すぎます --- 192.168.2.1 ping 統計 --- 送信パケット 1 個、受信パケット 0 個、パケット損失 100.0%