web-dev-qa-db-ja.com

IPv6:デフォルトルートのmtuよりも大きいリンクmtuを使用する

IPv6 LANを構成する場合、ルーターアドバタイズメントを使用して、標準の1500バイト以上のリンクMTUをアナウンスし、 ジャンボフレーム 、おそらく9000の使用を可能にすることが望ましい場合があります。これにより、ホスト間の通信が可能になります。可能な限り最大のフレームを使用するためにLAN上で。 IPv6インターネットへのデフォルトルートがタイプ 6in4 トンネルを通過する必要がある場合、PPPoEが使用されている場合、MTUは通常1480または1472です。

LANホスト間の通信は中断されないはずですが、デフォルトルートに沿ったトラフィックの通常の一連のイベントは異なる動作をします。ほとんどの接続のハンドシェイク中、大量のデータを含む最初のパケットは、ほとんどの場合、デフォルトルートのMTUよりも大きくなり、ルーターにパケットをドロップして、ICMPv6パケットが大きすぎるメッセージを送信するように促します( type 2 )。ほとんどのオペレーティングシステムは、宛先アドレスによるパスMTU検出の結果をキャッシュしていると思います。したがって、この相互作用は、ほぼすべてのデフォルトルート接続で発生します。この交換には最大で数十ミリ秒しかかからないので、重大なパフォーマンスの問題が発生することはないと思います。

問題はこれです:このタイプの構成はベストプラクティスと見なされますか?デフォルトルートパスのMTUと等しい(または小さい)リンクMTUを使用することをお勧めしますか?これに関するドキュメントはありますか?

                    LAN          WAN

hostA -----\                     v4 WAN Link / 6in4 tunnel
            \  MTU 9000            MTU 1500     MTU 1480
             |---------- router ------------------------  -  -  -
            /                    IPv4 Internet, 6in4 endpoint -->
hostB -----/

          <<< router adv
                  prefix
                   RDNSS
                MTU 9000
                     etc

Example TCP connection:

TCP(SYN, 94 bytes)-------------------------------------------->
<----------------------------------------TCP(SYN/ACK, 86 bytes)
TCP(ACK/PSH, 1635 bytes)---X
<--------ICMP(too big, MTU=1480)
TCP(ACK/PSH, 1480 bytes)-------------------------------------->
...
4

そのような設定は完全に理にかなっていると思います。クライアントとデフォルトゲートウェイの間には多くのPacket-Too-Big(PTB)メッセージがありますが、LANでジャンボMTUを使用する場合は、LAN上に大量のトラフィックがあり、その恩恵を受けることができるため、おそらくそうします。 。いくつかの余分なパケットは目立たないでしょう。

私が見ているのは、一部のコンシューマーCPEがルーターアドバタイズメントで1480(または1472など)のMTUサイズを送信していることです。 LANトラフィックへの影響はそれほど大きくなく(最大1.9%程度)、少なくともデフォルトゲートウェイとクライアント間のPTBメッセージは防止されますが、インターネット上のさらに小さいリンクから送信される可能性もあります。それはあなたの優先順位がどこにあるかによると思います。

私は個人的に常にネットワークを最適化し、PTBメッセージについてはまったく心配しません。

3
Sander Steffann