Subject: Re: Issue with GRE tunnel, created with "local any" on kernel 3.14

From: Sergey Popov <[email-masked]>
Date: Thu, 31 Jul 2014 10:29:00 +0400

18.07.2014 22:32, Dmitry Popov пишет:
> On Fri, 18 Jul 2014 17:01:23 +0400
> Sergey Popov <[email-masked]> wrote:
> 
>> Hi. I have updated kernel on one of my servers to 3.14 and hit strange
>> issue:
> 
>> serv1(172.30.0.100) <-> serv2(172.30.0.251)
> 
>> Gre tunnel(serv1):
>> ip tunnel add tun_test mode gre remote 172.30.0.251 local any ttl 225
>> ifconfig tun_test 192.168.0.1/30
>>
>> Gre tunnel(serv2):
>> ip tunnel add tun_test mode gre remote 172.30.0.100 local any ttl 225
>> ifconfig tun_test 192.168.0.2/30
> 
>> 16:49:39.340971 IP 0.0.0.0 > 172.30.0.100: GREv0, length 88: IP
>> 192.168.0.2 > 192.168.0.1: ICMP echo request, id 5259, seq 7, length 64
> 
> Hi!
> 
> It seems we have this issue since 7d442fab0 (ipv4: Cache dst in tunnels).
> It is in ip_tunnel_xmit: fl4 is initialized with saddr = 0 in
> init_tunnel_flow(&fl4, protocol, dst, ...), net/ipv4/ip_tunnel.c:610,
> and isn't changed until iptunnel_xmit(skb->sk, ...), line 677, because 
> connected = true and rt is almost always cached.
> 
> I have no patch to fix this issue, but as a workaround, you can use 
> ip tunnel change tun_test tos inherit.

Thanks, your workaround works as expected if tos value defined
explicitly. Though, I do not understand why: iproute2 documentation says
that default tos value in 'ip tunnel' command is already 'inherit'.

-- 
Best regards, Sergey Popov
Gentoo developer
Gentoo Desktop Effects project lead
Gentoo Qt project lead
Gentoo Proxy maintainers project lead