Subject: Re: fe80::/64 route missing on GRE tunnels

From: Nicolas Dichtel <[email-masked]>
Date: Mon, 17 Feb 2014 10:37:07 +0100

Le 15/02/2014 13:10, Hannes Frederic Sowa a écrit :
> Hi Nicolas!
>
> On Sat, Feb 15, 2014 at 08:45:59AM +0100, Hannes Frederic Sowa wrote:
>> On Tue, Feb 11, 2014 at 10:59:28PM +0100, Steinar H. Gunderson wrote:
>>> On Tue, Feb 11, 2014 at 10:55:11PM +0100, Steinar H. Gunderson wrote:
>>>> but on 3.13.1, no such route shows up. I can add it manually, though.
>>>
>>> Correction; I can add it manually, but only to one GRE device at a time:
>>>
>>>    root@altersex:~$ ip -6 route add fe80::/64 dev k_molvenfinnoy
>>>    root@altersex:~$ ip -6 route add fe80::/64 dev k_sessesveits
>>>    RTNETLINK answers: File exists
>>>    root@altersex:~$ ip -6 route del fe80::/64 dev k_molvenfinnoy
>>>    root@altersex:~$ ip -6 route add fe80::/64 dev k_sessesveits
>>>    root@altersex:~$
>>
>> Sorry for the long delay, I was busy with other stuff...
>>
>> So basically a workaround you can do for the time being is to add the tunnel
>> with a local address:
>>
>> ip tunnel add foo mode gre local 4.3.2.1 remote 1.2.3.4 ttl 64
>>
>> The reason is that link local address generation fails in ipv6/addrconf as
>> long as dev->dev_addr is zero.
>>
>> I have not yet found the change which causes this change in behaviour, but
>> will do so soon.
>
> f7cb8886335dea ("sit/gre6: don't try to add the same route two times") causes
> this problem, because dev->dev_addr will never get initialized and thus
> ipv6_generate_eui64 and addrconf_add_linklocal will never get called.
>
> Ok for revert or do you have a better idea?
I'm not sure to understand the problem. In the case described above, there is no
fe80::/64 route because there is no link local address.
What source address will be used to communicate over this gre interface?