Subject: Re: Peculiar ICMP6 redirect rejection
To: None <>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-net
Date: 08/14/2002 02:57:04
>> I have a v6-only house LAN running.  One of the machines on it is
>> complaining
>> ICMP6 redirect rejected; not equal to gw-for-src=0800:201f:7c95::fe66:fb23 (must be same): (src=fe80:0009::0210:5aff:fefc:5c1a dst=2001:0700:0400:0150::0002 tgt=2001:0700:0400:0150::0002)
> i bet you are using global address in gateway field of routing table.

You'd lose that bet.  On the LAN in question, I stopped using
statically configured routes and switched to using route6d for all
routing.  (I just checked.  Only four things appear in the "Gateway"
field of netstat -rn -f inet6 output, on either L or R: (1) addresses
in fe80::/16 (with percent signs and interface names); (2) ::1, for
routes out lo0; (3) MAC addresses, for RTF_LLINFO routes; and (4)
"link#%d"-format strings, for interface routes.)

I have a little more information.  When I reboot L, I get the above
messages for every packet on the first connection from R to L.  Later
connections provoke no messages.

This appears to be related, somehow, to the way TCP connections cache
route entries, which strikes me as rather broken because it means that
in cases where (as here) the routing tables change, the connection
continues using the old route.  (This may have been fixed; I didn't
check.)  Apparently every packet in at least one direction on that
connection goes through G, provoking redirects.

> it is not legal.

Not legal?  What on earth??  (They certainly _work_; I've used global
addresses as the target for default routes often enough.)  In
particular, how on earth am I supposed to determine the link-local
address corresponding to the global address of the router I want to
point the route to?  I'm not about to use something that will change if
I happen to switch hardware (eg, something that depends on the MAC
address); am I supposed to configure every interface with a site-local
address in parallel with its global address, for use in routes?  That
seems pointless and stupid, especially as it's unnecessary in practice.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B