質問: ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/be18fed124df1d4c54cfe4fae7c5c3d4.png) Greトンネルを利用する場合は、MSSとMTUの値をデフォルトより低くする必要がある。 その理由は、GRE分のデータでMTUを超えてしまい、フラグメントが発生するから。 上記の理論はわかりました。 しかし、データが小さければ、このような問題は発生しないのでは? と疑問に思いました。 それともデータがどんなに小さくても、送信されるEthernetフレームは1500byte固定となるのでしょうか。 また、 MTUを超えてしまった場合、フラグメントが発生するとのことですが、 これはMTUをデフォルトから下げたとしても、データ部分は同じなので結局分割して送る(フラグメント)ことになるのではないのでしょうか? 勘違いしている部分があると思います、、、 宜しくお願いいたします。
回答: > > しかし、データが小さければ、このような問題は発生しないのでは? > > と疑問に思いました。 > > それともデータがどんなに小さくても、送信されるEthernetフレームは1500byte固定となるのでしょうか。 > > > データが小さければそのぶんEthernetフレームおよびIPパケットも小さくなりますので フラグメントは発生しません。ですが、そんなデータばかりではないですよね? > > MTUを超えてしまった場合、フラグメントが発生するとのことですが、 > > これはMTUをデフォルトから下げたとしても、データ部分は同じなので結局分割して送る(フラグメント)ことになるのではないのでしょうか? > > > はい。その通りです。結局MTUを超えたフレームについてはフラグメントされます。 ではなぜMTUを設定するのかというと、ルータの負荷を下げるためです。 詳細については以下のサイト等を参考にして調べてみてください。 Cisco 追記 == ルータの負荷が下がるのは、Path MTU Discovery という機能が働いて端末からパケットを送る際に 途中経路のMTUを気にしてくれるからです。 この他に`ip tcp adjust-mss`という設定もルータにはあります。個人的にはMTUを設定するよりも こちらの設定の方がよく使います。