[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <fcb3d6853922beec880dda255e249288@nexedi.com>
Date: Fri, 26 Jun 2020 09:20:43 +0000
From: thomas.gambier@...edi.com
To: David Ahern <dsahern@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Alexey Kuznetsov <kuznet@....inr.ac.ru>,
Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>
Cc: netdev@...r.kernel.org, Julien Muchembled <jm@...edi.com>,
Jean-Paul Smets <jp@...edi.com>
Subject: PROBLEM: can't ping anycast IPv6 address on lo interface
Hello,
this is the first time I report a bug to the kernel team. Please let me
know if there are any missing information or if I should post on
bugzilla instead.
Since Linux 5.2, I can't ping anycast address on lo interface.
If you enable IPv6 forwarding for an interface and add a IPv6 address
range on this interface, it is possible to ping the addres 0 of the
range (anycast address). This doesn't work for "lo" interface since
Linux 5.2.
I bisected to find that the commit
c7a1ce397adacaf5d4bb2eab0a738b5f80dc3e43
(https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/commit/?id=c7a1ce397adacaf5d4bb2eab0a738b5f80dc3e43)
introduced the regression. Please note that the regression is still
present on master branch of net repository (commit
2570284060b48f3f79d8f1a2698792f36c385e9a from yesterday).
I attach my config file to this email (this config was used to compile
latest master branch).
In order to reproduce you can use this small script:
root@...nel-compil-vm:~# cat test.bash
#! /bin/bash
echo 1 > /proc/sys/net/ipv6/conf/all/forwarding
ip -6 a add fc12::1/16 dev lo
sleep 2
echo "pinging lo"
ping6 -c 2 fc12::
Before the regression you will see:
pinging lo
PING fc12::(fc12::) 56 data bytes
64 bytes from fc12::1: icmp_seq=1 ttl=64 time=0.111 ms
64 bytes from fc12::1: icmp_seq=2 ttl=64 time=0.062 ms
After the regression you will see:
pinging lo
PING fc12::(fc12::) 56 data bytes
From fc12::: icmp_seq=1 Destination unreachable: No route
From fc12::: icmp_seq=2 Destination unreachable: No route
Please note that if you test this on any physical ethernet interface, it
still works properly.
For a bit of context, I'm one of the maintainer of re6st
(https://re6st.nexedi.com) free software. This software gives an IPv6
address range to a machine. By default it will assign it to lo interface
and the current implementation is giving the address 1 of the range to
the machine. But in order to keep maximum flexibility, we are contacting
the machines on the re6st network using the anycast address of the
range. We started to notice that it didn't work anymore on Ubuntu 20.04
(Linux 5.4) and then we started to investigate up to this bug report.
Let me know if you need anything else.
Regards.
Thomas.
Download attachment "config.gz" of type "application/x-gzip" (33986 bytes)
Powered by blists - more mailing lists