PMTU is wrong when using GRE+IPsec with some Linux kernel versions #5922
Labels
area/transit/encapsulation
Issues or PRs related to encapsulation.
area/transit/encryption
Issues or PRs related to transit encryption (IPSec, SSL).
kind/bug
Categorizes issue or PR as related to a bug.
Describe the bug
While testing #5880 on a non-kind testbed, ping requests of maximum MTU were always dropped like below. The error shows it received responses indicating the path MTU is 1284, instead of 1362.
However, all interfaces' MTU in the datapath are configured to 1362 correctly:
Checking the route cache in the Pod namespace, there is a cache stating the PMTU is 1284
There is a ICMP unreachable reponse can be captured on antrea-gw0.
The Node's kernel version is
5.4.0-156-generic #173-Ubuntu
.I can't reproduce the issue on a kind cluster with kernel version
5.4.0-169-generic #187-Ubuntu
.I suspect there was a PMTU calculation bug fixed between the two versions but haven't found which commit is responsible.
Searching "mtu" in http://changelogs.ubuntu.com/changelogs/pool/main/l/linux/linux_5.4.0-169.187/changelog, there were quite some commits related to mtu fixes.
I may not continue investigation for the root cause given it works fine on newer kernels. I created the issue for tracking and knowledge sharing. I will have to not validate connectvitity using ping with maximum MTU in TestIPSec to work around.
The text was updated successfully, but these errors were encountered: