Discussion:
IPv6 reject routes
(too old to reply)
Ignatios Souvatzis
2009-02-13 11:54:07 UTC
Permalink
I noticed that my router creates ICMP6_UNREACH_ADDR
when traceroute6 hits a -reject route. IMHO, this is wrong;
it should be ICMP6_UNREACH_NOROUTE.

I think the culprit are these lines in ip6_forward.c:

672 case ENETUNREACH: /* shouldn't happen, checked above */
673 case EHOSTUNREACH:
674 case ENETDOWN:
675 case EHOSTDOWN:
676 default:
677 type = ICMP6_DST_UNREACH;
678 code = ICMP6_DST_UNREACH_ADDR;
679 break;

they should read instead:

case ENETUNREACH:
case EHOSTUNREACH:
+ type = ICMP6_DST_UNREACH;
+ code = ICMP6_DST_UNREACH_NOROUTE;
+ break;
+
case ENETDOWN:
case EHOSTDOWN:
default:
type = ICMP6_DST_UNREACH;
code = ICMP6_DST_UNREACH_ADDR;
break;

Thoughts?
-is
--
seal your e-mail: http://www.gnupg.org/

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Greg Troxel
2009-02-13 13:12:37 UTC
Permalink
case ENETUNREACH:
case EHOSTUNREACH:
+ type = ICMP6_DST_UNREACH;
+ code = ICMP6_DST_UNREACH_NOROUTE;
+ break;
+

Seems fine to me to change this. Do the specs talk about -reject
routes, or are they beyond-the-spec? There is a route, but it's tagged
to reject, so it's almost like ADMIN_PROHIBITED.
Ignatios Souvatzis
2009-02-13 14:45:24 UTC
Permalink
Post by Ignatios Souvatzis
+ type = ICMP6_DST_UNREACH;
+ code = ICMP6_DST_UNREACH_NOROUTE;
+ break;
+
Seems fine to me to change this. Do the specs talk about -reject
routes, or are they beyond-the-spec?
The latter, afaict.
Post by Ignatios Souvatzis
There is a route, but it's tagged
to reject, so it's almost like ADMIN_PROHIBITED.
Nah, that's what I'd do with e.g. ipfilter. I want to tell
"the net's not there", not that it's there but forbidden to
access. If I wanted to forbid access, I'd do it with ipfilter
or pf etc.

-is

--
Posted automagically by a mail2news gateway at muc.de e.V.
Please direct questions, flames, donations, etc. to news-***@muc.de
Loading...