(usagi-users 03782) Re: [Patch][IPv6] Fix wrong routing mechanism for Link Local IPv6 packets

Stuart MacIntosh <[email protected]> Wed, 31 Jan 2007 02:41:31 +1300
Newsgroups gmane.linux.ipv6.usagi.users
Message-ID <[email protected]>
Hello,
this is from RFC2373:
   Link-Local addresses are designed to be used for addressing on a
   single link for purposes such as auto-address configuration, neighbor
   discovery, or when no routers are present.

Does the same problem occur when you are using globally route-able
unicast addresses (and subnets)? I'm not sure if link-local addresses
(fe80::/64) are supposed to be routed?

From Stuart.

Wei Dong wrote:
> Hello, Mr yoshfuji
>    Take ping6 for example. Asumming there is a router which has 2
> NICs. eth0 on router has ipv6 addr fe80::20c:29ff:fe24:fa0a, eth1 on
> router has ipv6 addr fe80::20c:29ff:fe24:fa14. Also there is a host
> connected to router's eth0, and the host's ipv6 addr is
> fe80::200:ff:fe00:100. We ping6 to router's eth1(ipv6 addr
> fe80::20c:29ff:fe24:fa14). But now Linux kernel deals with this kind
> of packet incorrectly. Router forward the Echo request to eth0. And
> send ICMP redirect packet to the host. In ICMP redirect packt
> TargetAddress =fe80::20c:29ff:fe24:fa14, DestinationAddress =
> fe80::20c:29ff:fe24:fa14. So I think Linux  kernel considers that
> fe80::200:ff:fe00:100 and fe80::20c:29ff:fe24:fa14 are neighbors.
>
> I dived into the kernel, and found that maybe function
> rt6_score_route() has problems. In rt6_score_route(), if
> rt6_check_dev() return 0, and the dst ipv6 addr is link local addr,
> rt6_socre_route() return -1 directly. I think this is not correct, we
> should return -1 only if the entry is in the route cache, and the dst
> addr is link local addr. Only entries in cache will select wrong IPv6
> Link Local NIC for a link local addr, because they are copied from
> static IPv6 fib tables.
>
> ----- Original Message -----
>> Hello.
>>
>> In article <1172042666.4512.8.camel@LINE> (at Wed, 21 Feb 2007
>> 02:24:26 -0500), weidong <[email protected]> says:
>>
>>>          eth0: fe80::20c:29ff:fe24:fa0a
>>>             |                     eth1: fe80::20c:29ff:fe24:fa14
>>>             |                      |
>>> ------------------------------------------------
>>>             |                      |
>>>             |                      |
>>>             | LAN1                 |LAN2
>>>             |                      |
>>>           -----
>>>             ^
>>>             |
>>>      Send Echo Request(src addr = fe80::200:ff:fe00:100)
>>
>> Sorry, I could not understand this figure....
>> Would you elaborate this?
>>
>> --yoshfuji 
>
>

-- 
Stuart MacIntosh
IT Consultancy & Technical Services
Phone: +64 21 2259576
Email: [email protected]