On SLES 11 SP3 (Kernel 3.0.101-0.46) I see the following route behavior:
When I set a route specific MTU once via ip route change ... mtu lock 1500
, everything works as expected (setting an MTU of 1500 on a dev configured with MTU 9000).
I then change the route back to the initial setting (either with mtu lock 9000
or not setting mtu at all), do a ip route flush cache
, verified the cache is cleared with ip route show cache
.
When I then ping a host in the respective subnet, the old route setting with mtu lock 1500
is being loaded in the cache, even though the cache has been cleared (as described before) and ip route show
shows the updated route with mtu 9000.
I have also tried disabling PMTU discovery by setting net.ipv4.ip_no_pmtu_disc = 1
in sysctl, but that doesn't change the behavior.