From owner-freebsd-net@FreeBSD.ORG Wed Jul 5 12:57:15 2006 Return-Path: X-Original-To: freebsd-net@freebsd.org Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8E52016A4DD for ; Wed, 5 Jul 2006 12:57:15 +0000 (UTC) (envelope-from jan@melen.org) Received: from n2.nomadiclab.com (n2.nomadiclab.com [193.234.219.2]) by mx1.FreeBSD.org (Postfix) with ESMTP id EDD5043D45 for ; Wed, 5 Jul 2006 12:57:14 +0000 (GMT) (envelope-from jan@melen.org) Received: from n2.nomadiclab.com (localhost [127.0.0.1]) by n2.nomadiclab.com (Postfix) with ESMTP id A09D3212C50 for ; Wed, 5 Jul 2006 15:57:11 +0300 (EEST) Received: from n50.nomadiclab.com (n50.nomadiclab.com [193.234.219.50]) by n2.nomadiclab.com (Postfix) with ESMTP id 6EAF5212C3D for ; Wed, 5 Jul 2006 15:57:11 +0300 (EEST) From: Jan Mikael Melen To: freebsd-net@freebsd.org Date: Wed, 5 Jul 2006 16:05:44 +0300 User-Agent: KMail/1.8.2 MIME-Version: 1.0 Content-Disposition: inline Message-Id: <200607051605.45014.jan@melen.org> Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP Subject: Problem with routes when configuring IPv6 addresses X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Jul 2006 12:57:15 -0000 Hello, 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