Subject: Re: wi0 + wep network problems
To: None <current-users@NetBSD.org>
From: David Young <dyoung@pobox.com>
List: current-users
Date: 02/26/2006 18:46:41
On Sun, Feb 26, 2006 at 09:00:49PM +0000, Rui Paulo wrote:
> Jeff Ito <ijk@speakeasy.net> writes:
>
> > P.S. I noticed (and confirmed on another wired host to make sure they
> > were not related) that ipv6 interfaces (or routes, or *something*)
> > do not come up correctly after a /etc/rc.d/network restart. After a
> > restart I cannot communicate at all over ipv6 until a reboot.
> > I have not spent a lot of time tracking this down yet since it is not
> > my most pressing issue.
>
> I'm aware of this problem but I haven't diagnosed the cause yet..
I just refreshed my memory. The network rc script removes the link-local
address from each interface. The link-local addresses are added again
"on demand" as clones of the fe80::/64 route on every interface. They
are added with flags UHLc (instead of UHL), and the kernel will not
"sink" a packet with the RTF_CLONED flag set. I believe these are the
relevant lines in ip6_input():
/*
* Accept the packet if the forwarding interface to the destination
* according to the routing table is the loopback interface,
* unless the associated route has a gateway.
* Note that this approach causes to accept a packet if there is a
* route to the loopback interface for the destination of the packet.
* But we think it's even useful in some situations, e.g. when using
* a special daemon which wants to intercept the packet.
*/
if (ip6_forward_rt.ro_rt &&
(ip6_forward_rt.ro_rt->rt_flags &
(RTF_HOST|RTF_GATEWAY)) == RTF_HOST &&
!(ip6_forward_rt.ro_rt->rt_flags & RTF_CLONED) &&
Dave
--
David Young OJC Technologies
dyoung@ojctech.com Urbana, IL * (217) 278-3933