Re: Problem with routes when configuring IPv6 addresses



Hi,

Just answering my own mail. Here is small patch that fixes this problem for us
in 6.1.

--- nd6_rtr.c.orig Mon Mar 20 18:23:08 2006
+++ nd6_rtr.c Thu Oct 26 09:48:59 2006
@@ -1409,12 +1409,20 @@
if (pr->ndpr_raf_onlink == 0)
continue;

- if ((pr->ndpr_stateflags & NDPRF_DETACHED) == 0 &&
+ /* For some reason nd6 tries to find a active
+ * advertising router also for prefixes that are
+ * statically configured which shouldn't be the case
+ */
+ if (pr->ndpr_vltime == ND6_INFINITE_LIFETIME) {
+ pr->ndpr_stateflags &= ~NDPRF_DETACHED;
+ } else {
+ if ((pr->ndpr_stateflags & NDPRF_DETACHED) == 0 &&
find_pfxlist_reachable_router(pr) == NULL)
pr->ndpr_stateflags |= NDPRF_DETACHED;
if ((pr->ndpr_stateflags & NDPRF_DETACHED) != 0 &&
find_pfxlist_reachable_router(pr) != 0)
pr->ndpr_stateflags &= ~NDPRF_DETACHED;
+ }
}
} else {
/* there is no prefix that has a reachable router */


On Wednesday 09 August 2006 21:57, Jan Mikael Melen wrote:
Hello,

I previously already sent this to the freebsd-net list but didn't get any
response so let's try the hackers list instead.

I have a problem with routes in 6.1 when configuring IPv6 address using
both autoconfigured addresses at the same time with statically configured
addresses from different prefixes.

If the host is not accepting router advertisements everything seems to work
fine:
# sysctl -a | grep rtad
net.inet6.ip6.accept_rtadv: 0
# ifconfig fxp0 inet6 3ffe:101::1 prefixlen 64

# netstat -rn -f inet6 | grep 3ffe:101
3ffe:101::/64 link#1 UC
fxp0
3ffe:101::1 00:12:3f:71:3e:ef UHL
lo0
#

As you can see I have two routes one for the loopback and one for the
prefix as it should GREAT!

Now if I'll set the host to accept router advertisements then the route for
the 3ffe:101:: prefix will be deleted as the first router advertisement is
received. The router advertises prefix 3ffe:14b8:400:101::/64.

# sysctl net.inet6.ip6.accept_rtadv=1
net.inet6.ip6.accept_rtadv: 0 -> 1
# rtsol -a
# netstat -rn -f inet6 | grep 3ffe:101
3ffe:101::1 00:12:3f:71:3e:ef UHL
lo0
#

It seems that the route is deleted because in function
pfxlist_onlink_check() there is a check that if the state has changed to
DETACHED the
nd6_prefix_offlink will be called which then removes the route:
if ((pr->ndpr_stateflags & NDPRF_DETACHED) != 0 &&
(pr->ndpr_stateflags & NDPRF_ONLINK) != 0) {
if ((e = nd6_prefix_offlink(pr)) != 0) {
nd6log((LOG_ERR,
"pfxlist_onlink_check: failed to "
"make %s/%d offlink, errno=%d\n",
ip6_sprintf(&pr->ndpr_prefix.sin6_addr),
pr->ndpr_plen, e));
}
}

This far I digged in to the code but then ran out of steam :-( Obviously
the state should not be set to DETACHED for manually configured prefixes
but the question is rather where it should be done.

Before somebody asks, if I first do the autoconfiguration part and then
after I have the autoconfigured address add the manually configured address
the result is that there wont be any route for the manually configured
prefix (3ffe:101::/64).

Regards,
Jan
_______________________________________________
freebsd-hackers@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@xxxxxxxxxxx"
_______________________________________________
freebsd-hackers@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: Problem with routes when configuring IPv6 addresses
    ... addresses from different prefixes. ... If the host is not accepting router advertisements everything seems to work ... It seems that the route is deleted because in function ... if I first do the autoconfiguration part and then ...
    (freebsd-net)
  • Problem with routes when configuring IPv6 addresses
    ... If the host is not accepting router advertisements everything seems to work ... It seems that the route is deleted because in function pfxlist_onlink_check ... state should not be set to DETACHED for manually configured prefixes but the ... if I first do the autoconfiguration part and then after ...
    (freebsd-hackers)
  • Re: Dissapointment...Question.
    ... Of course not all vendors follow that route. ... It's nice to have a sort of ... clearinghouse for prefixes. ...
    (borland.public.delphi.thirdpartytools.general)
  • Re: Wired behaviour with IPv6 over PPP
    ... A linux box connected to a DSL Modem, on the other side is a Cisco ... mechanism, maybe stateless autoconfiguration using router advertisement, ... and there exists a default route to ppp0, then I switch forwarding to ...
    (Linux-Kernel)