Public bug reported:

Hello,

Looks like setting per route mtu (as described in [1]) is broken in linux 
kernel 3.2 (default kernel from ubuntu 12.04).
I made script to illustrate this:

root@germany7:~# cat route-mtu 
#!/bin/bash

uname -a
ip tuntap add dev test mode tun
ifconfig test 10.1.1.1/16 mtu 1500
echo =============================================================
echo No per route mtu entry
ping -c1 -Mdo -s2000 10.1.1.2
echo =============================================================
echo Per route MTU is set to 800
ip route add  10.1.1.2 dev test proto static src 10.1.1.1 mtu lock 800
ip route flush cache
ping -c1 -Mdo -s2000 10.1.1.2
ip route del 10.1.1.2 dev test proto static src 10.1.1.1 mtu lock 800
echo =============================================================
echo Per route MTU is set to 600
ip route add  10.1.1.2 dev test proto static src 10.1.1.1 mtu lock 600
ip route flush cache
ping -c1 -Mdo -s2000 10.1.1.2
ip route del 10.1.1.2 dev test proto static src 10.1.1.1 mtu lock 600
echo =============================================================
echo No per route mtu entry
ip route flush cache
ping -c1 -Mdo -s2000 10.1.1.2
ip tuntap del dev test mode tun


With kernel 3.2 I get following output:
Linux germany7 3.2.0-41-generic-pae #66-Ubuntu SMP Thu Apr 25 03:50:20 UTC 2013 
i686 i686 i386 GNU/Linux
=============================================================
No per route mtu entry
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
>From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 1500)

--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors

=============================================================
Per route MTU is set to 800
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
>From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 800)

--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors

=============================================================
Per route MTU is set to 600
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
>From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 800)

--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors

=============================================================
No per route mtu entry
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
>From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 800)

--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors

After once set to 800 MTU is always 800, even if you add different route
and clean routing cache.


It looks like that problem is fixed in ubuntu kernel 3.5. With it everything 
works like expected:
root@germany7:~# ./route-mtu 
Linux germany7 3.5.0-28-generic #48~precise1-Ubuntu SMP Wed Apr 24 21:43:05 UTC 
2013 i686 i686 i386 GNU/Linux
=============================================================
No per route mtu entry
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
>From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 1500)

--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors

=============================================================
Per route MTU is set to 800
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
>From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 800)

--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors

=============================================================
Per route MTU is set to 600
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
>From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 600)

--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors

=============================================================
No per route mtu entry
PING 10.1.1.2 (10.1.1.2) 2000(2028) bytes of data.
>From 10.1.1.1 icmp_seq=1 Frag needed and DF set (mtu = 1500)

--- 10.1.1.2 ping statistics ---
0 packets transmitted, 0 received, +1 errors


I also tested with kernels 2.6.35 (in lucid) and 3.8 (in precise), results are 
same to 3.5.

Is there any chance to get fixes from 3.5/3.8 backported to the default
precise kernel 3.2?


1. http://lartc.org/howto/lartc.cookbook.mtu-discovery.html

** Affects: linux-meta (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1177507

Title:
  per route mtu settings are broken in linux kernel 3.2

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux-meta/+bug/1177507/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to