[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <024b01c74443$f882d590$ccb1220a@ZhaoleiSOTEC>
Date: Tue, 30 Jan 2007 16:55:12 +0900
From: "Wei Dong" <weid@...css.fujitsu.com>
To: "YOSHIFUJI Hideaki / ????" <yoshfuji@...ux-ipv6.org>
Cc: <netdev@...r.kernel.org>, <usagi-users@...ux-ipv6.org>
Subject: Re: [Patch][IPv6] Fix wrong routing mechanism for Link Local IPv6 packets
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@...E> (at Wed, 21 Feb 2007
> 02:24:26 -0500), weidong <weid@...css.fujitsu.com> 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
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists