Linuxはホスト固有のMTUテーブルを保持しますか?

Linuxはホスト固有のMTUテーブルを保持しますか?

6番目(6-over-4)ルーターを含むIPv6ルーティングを試していますが、イーサネットを介してプライマリIPv6を実行しているルーティングセグメントに収まるほど小さいパケットサイズを使用する場合、パケットサイズが十分に小さい場合、ルーティングセグメントが大きすぎてIPv4がIPv6カプセル化に対応できない場合(つまり、1481〜1500バイト)、パケットが断片化されていない限り、パスを通過できません。応答ホストがルーティング側の6番目のルーターからPacket Too Bigエラーを受信すると、応答の断片化が始まり、しばらく続行します。

ただし、ICMPv6 はステートレスであるため、Linux には、ある期間、ターゲット ホストの大きすぎるパケット メッセージの MTU 値を格納するテーブルがどこかにあることを意味します。そうですか?それでは、この表を何とか見ることができますか?ipこのコマンドのさまざまなサブコマンドを見ましたが、似たようなものが見つかりませんでした。この表はUDPのようなプロトコルのものですか、それともICMPv6に固有のものですか?

ベストアンサー1

Linuxは、検索されたMTUがターゲットに接続できるインターフェイスのMTUよりも低い場合、ルートMTU検索(RFC 1191)を介して学習されたリモートターゲットのMTUをキャッシュします。

キャッシュを表示するには、「ip ルート表示キャッシュ」を使用できます。たとえば、次のようになります。

me@server:~$ ip -6 route show cache 
1234:8108:1111:111:1111:1111:ff38:57be via fe80::8243:abcd:4216:a4c0 dev eno12399np0 metric 1024 expires 35sec mtu 1280 hoplimit 64 pref medium

me@server:~$ ip route show cache
1.2.3.4 via 192.0.2.1 dev eno12399np0 
    cache expires 154sec mtu 1420 

おすすめ記事