New: routing table cache entries lose mtu/advmss attributes
Subsystems (2)
(switched to email. Please respond via emailed reply-to-all, not via the bugzilla web interface).
Quoted 59 lines · On Sun, 4 Sep 2011 18:45:16 GMT [email protected] wrote:
https://bugzilla.kernel.org/show_bug.cgi?id=42372
Summary: routing table cache entries lose mtu/advmss attributes Product: Networking Version: 2.5 Kernel Version: 3.0.4 Platform: All OS/Version: Linux Tree: Mainline Status: NEW Severity: normal Priority: P1 Component: IPV6 AssignedTo: [email protected] ReportedBy: [email protected] Regression: YesTo reproduce: create a static IPv6 route with a specific mtu/advmss attribute, then open a TCP connection to a host (never contacted before) within this
route: this creates a cache entry with additional information (such as rtt); when these data expire, the route mtu/advmss are also forgotten, even though they are specified in the (static) routing table.E.g. (using www.kame.net = 2001:200:dff:fff1:216:3eff:feb1:44d7 as example):
david@terre:~$ sudo ip route get 2001:200:dff:fff1:216:3eff:feb1:44d7 2001:200:dff:fff1:216:3eff:feb1:44d7 from :: via fe80::20e:a6ff:fef1:db7f dev eth0 src 2001:7a8:78ae:37:21f:c6ff:fec1:c877 metric 0 cache david@terre:~$ sudo ip route add 2001:200:dff:fff1::/64 from :: via fe80::20e:a6ff:fef1:db7f dev eth0 src 2001:7a8:78ae:37:21f:c6ff:fec1:c877 mtu 1460 advmss 1400 david@terre:~$ sudo ip route get 2001:200:dff:fff1:216:3eff:feb1:44d7 2001:200:dff:fff1:216:3eff:feb1:44d7 from :: via fe80::20e:a6ff:fef1:db7f dev eth0 src 2001:7a8:78ae:37:21f:c6ff:fec1:c877 metric 0 cache mtu 1460 advmss 1400 david@terre:~$ wget -O /dev/null 'http://[2001:200:dff:fff1:216:3eff:feb1:44d7]/' (...) david@terre:~$ sudo ip route get 2001:200:dff:fff1:216:3eff:feb1:44d7 2001:200:dff:fff1:216:3eff:feb1:44d7 from :: via fe80::20e:a6ff:fef1:db7f dev eth0 src 2001:7a8:78ae:37:21f:c6ff:fec1:c877 metric 0 cache mtu 1460 rtt 324ms rttvar 324ms cwnd 10 advmss 1400 hoplimit 255 david@terre:~$ sleep 30 david@terre:~$ sudo ip route get 2001:200:dff:fff1:216:3eff:feb1:44d7 2001:200:dff:fff1:216:3eff:feb1:44d7 from :: via fe80::20e:a6ff:fef1:db7f dev eth0 src 2001:7a8:78ae:37:21f:c6ff:fec1:c877 metric 0 cache hoplimit 64In the last output, the mtu and advmss for the route have been forgotten, even though the route is still supposed to be active. This is not just the output of "ip" which is bad: actually opening a TCP connection at this point will use a wrong MSS.
A similar bug might be present in IPv4 routes, but I found it trickier to reproduce, so I'm not entirely sure whether this is really an IPv6-related problem.