1

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.

skulli
  • 21
  • 2

1 Answers1

0

Have you verified that packets leaving the interface have the correct MTU? Are you sure some other device is not altering and fragmenting them?

figtrap
  • 933
  • 1
  • 6
  • 7
  • Yes, checked with tcpdump that the packets are capped at 1500. This is true after I applied the initial rule as well as after I tried to change it back to 9000. There is just one switch inbetween the hosts that defaults to jumbo frames, so that shouldn't be an issue – skulli Feb 12 '15 at 20:31
  • AFAIK ip route flush cache only flushes learned routes and not static routes. Have you changed the MTU on both the hosts? – Sameer Feb 12 '15 at 23:02
  • Yes, MTU has been changed on both hosts – skulli Feb 13 '15 at 00:21