Re: Issue with GRE tunnel, created with "local any" on kernel 3.14
From: Dmitry Popov <hidden>
Date: 2014-07-18 18:32:09
On Fri, 18 Jul 2014 17:01:23 +0400 Sergey Popov [off-list ref] 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.