Bug 103231

Summary: IPv6 multicast not working with GRE tunnels
Product: Networking Reporter: Julien Muchembled (jm)
Component: IPV6Assignee: Hideaki YOSHIFUJI (yoshfuji)
Status: NEW ---    
Severity: normal CC: hannes, szg00000
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 4.1.5 Subsystem:
Regression: No Bisected commit-id:

Description Julien Muchembled 2015-08-20 13:21:57 UTC
By multicast, I mean for example ff02::1

$ ping6 ff02::1%gre1
connect: Network is unreachable

More information:

$ uname -a
Linux ... 4.1.0-2-amd64 #1 SMP Debian 4.1.5-1 (2015-08-15) x86_64 GNU/Linux
# (but it also fails with any older kernel I tried)
$ ip tunnel add gre1 mode gre local a.b.c.d remote e.f.g.h ttl 63
$ ip link set gre1 up
$ ip -6 addr show dev gre1
18: gre1@NONE: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1476 
    inet6 fe80::200:5efe:5e17:c50f/64 scope link 
       valid_lft forever preferred_lft forever
# unicast works:
$ ping6 -c 1 fe80::200:5efe:5138:7b28%gre1
PING fe80::200:5efe:5138:7b28%gre1(fe80::200:5efe:5138:7b28) 56 data bytes
64 bytes from fe80::200:5efe:5138:7b28: icmp_seq=1 ttl=64 time=40.4 ms

--- fe80::200:5efe:5138:7b28%gre1 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 40.479/40.479/40.479/0.000 ms

I found a workaround:
$ ip -6 route add ff00::/8 dev gre1
$ ping6 ff02::1%gre1
PING ff02::1%gre1(ff02::1) 56 data bytes
64 bytes from fe80::200:5efe:5e17:c50f: icmp_seq=1 ttl=64 time=0.134 ms
64 bytes from fe80::200:5efe:5138:7b28: icmp_seq=1 ttl=64 time=40.6 ms (DUP!)
^C
--- ff02::1%gre1 ping statistics ---
1 packets transmitted, 1 received, +1 duplicates, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.134/20.384/40.635/20.251 ms

But it only works once:
$ ip -6 route add ff00::/8 dev gre2
RTNETLINK answers: File exists

Expected results:
- there should be no need to add a ff00::/8 for ff02::1 to ping
- it should be possible to have several GRE tunnels with working multicast
Comment 2 Julien Muchembled 2015-10-12 18:07:36 UTC
Great. I tried the patch on 4.2.3 and 3.16.7-ckt17 and it worked.