From owner-freebsd-net@FreeBSD.ORG Tue Mar 4 12:20:16 2008 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 45A5A106567F for ; Tue, 4 Mar 2008 12:20:16 +0000 (UTC) (envelope-from SRS0=Pa+e=TW=tm.uka.de=max.laier@srs.kundenserver.de) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.186]) by mx1.freebsd.org (Postfix) with ESMTP id D81078FC19 for ; Tue, 4 Mar 2008 12:20:15 +0000 (UTC) (envelope-from SRS0=Pa+e=TW=tm.uka.de=max.laier@srs.kundenserver.de) Received: from vampire.homelinux.org (dslb-088-064-183-181.pools.arcor-ip.net [88.64.183.181]) by mrelayeu.kundenserver.de (node=mrelayeu6) with ESMTP (Nemesis) id 0ML29c-1JWVvm41kG-0001yy; Tue, 04 Mar 2008 13:07:40 +0100 Received: (qmail 84185 invoked by uid 80); 4 Mar 2008 12:07:09 -0000 Received: from 192.168.4.151 (SquirrelMail authenticated user mlaier) by router.laiers.local with HTTP; Tue, 4 Mar 2008 13:07:09 +0100 (CET) Message-ID: <60524.192.168.4.151.1204632429.squirrel@router.laiers.local> In-Reply-To: <20080304054413.0BB5F45045@ptavv.es.net> References: <20080304054413.0BB5F45045@ptavv.es.net> Date: Tue, 4 Mar 2008 13:07:09 +0100 (CET) From: "Max Laier" To: "Kevin Oberman" User-Agent: SquirrelMail/1.4.13 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-Provags-ID: V01U2FsdGVkX1/xd1UKMh1Ko5q5L1dSpHQJFg1mIgjoirvCv/r 6C2m0TG6ba3rvoX9sXLMxxv0Wutwg2rTI/2l/7HkYQHeKP/i2X Rw/CD9+SfI6eciW6rzV9w== Cc: net@freebsd.org Subject: Re: IPv6 addresses not released when routes change 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: Tue, 04 Mar 2008 12:20:16 -0000 Am Di, 4.03.2008, 06:44, schrieb Kevin Oberman: > At a recent networking conference an IPv6 hour took place where IPv6 > only was available. It was an interesting experience. On the whole, > things worked well, but I hit one problem. > > When I brought up my system, I associated with the main conference SSID > and received an IPv6 address prior to the IPv6 hour. Everything was > working fine. At the appointed time, all of the SSIDs for IPv4/IPv6 were > disabled. (No, I was not expecting that) and I re-associated with the > IPv6 only SSID, the interface retained the old address in a different > /64. It added the new address in a different /64, but did not remove the > old address, even though there was no router to it. > > Worse, it continued to originate connections with the old address as the > source. I had to manually delete the old address before I could open a > connection. > > I've been thinking about what software should handle this. It needs to > be some software that is aware that the router that assigned the the > prefix is no longer available. There is nothing wrong with an IPv6 > interfaces having several active addresses, so you can't delete one > just because another is assigned. sys/netinet6/nd6_rtr.c::pfxlist_onlink_check() should take care of that. ndp(8) can be used to view the in-kernel state of things. The prefix- (ndp -p) and "default router"-lists (ndp -r) are esp. interesting. Bad parameters in the RA can slow down the process, but eventually the kernel should figure out that the router is no longer reachable and mark the prefixes as such. -- /"\ Best regards, | mlaier@freebsd.org \ / Max Laier | ICQ #67774661 X http://pf4freebsd.love2party.net/ | mlaier@EFnet / \ ASCII Ribbon Campaign | Against HTML Mail and News