From owner-freebsd-net@FreeBSD.ORG Wed Jan 21 05:56:51 2004 Return-Path: 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 3075E16A4CE for ; Wed, 21 Jan 2004 05:56:51 -0800 (PST) Received: from mailer.cat.co.za (ftp.cat.co.za [196.33.33.51]) by mx1.FreeBSD.org (Postfix) with SMTP id D6E2C43D2D for ; Wed, 21 Jan 2004 05:56:34 -0800 (PST) (envelope-from bradd@cat.co.za) Received: (qmail 30807 invoked from network); 21 Jan 2004 13:55:50 -0000 Received: from unknown (HELO 161?DEMO?400) (196.33.33.52) by mail.cat.co.za with SMTP; 21 Jan 2004 13:55:50 -0000 Content-Type: text/plain; charset="us-ascii" From: Brad du Plessis To: net@freebsd.org Date: Wed, 21 Jan 2004 15:40:57 +0200 User-Agent: KMail/1.4.3 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Message-Id: <200401211540.57528.bradd@cat.co.za> Subject: RTM_LOSING: Kernel Suspects Partitioning X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.1 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, 21 Jan 2004 13:56:51 -0000 Hi, I've tried a NetBSD mailing list to no avail and was hoping that someone = here=20 could help me. I have the following setup: A ----- B =3D=3D=3D=3D=3D=3D C Box A and Box B are on a LAN both on the same subnet. Now from box B I ma= ke a=20 pppd modem dialup to box C. Manual routes are setup on A and C to allow a= =20 connection between A and C. It appears that if while a connection is acti= ve=20 and access to C is momentarily lost, but the ppp interface remains up,=20 packets that were being sent to B from A are redirected to B's default=20 gateway. =20 If that dialup is closed and then reopened a connection to C from A will = fail=20 because all packets to C through B are being routed to B's default gatewa= y.=20 In fact, the only way I'm able to get the connection to work again is eit= her=20 to delete the default gateway on B, do a ping from C to A, or to reboot b= ox=20 B. Now I've looked through the kernel and it appears that in netinet/in_pcb.= c the=20 function "in_losing(inp)" is called when this happens. I've put printouts= in=20 the kernel and found that the route to redirect the packets (which I pres= ume=20 was setup by the kernel) from A to the default gateway has been setup as = a=20 static route. (rt->rt_flags & RTF_DYNAMIC =3D=3D 0) I would've thought that this route should be dynamic, my reasoning being = that=20 the route would then be deleted in in_losing(inp) and packets could then = be=20 redirected through a valid route if one were available. Has anyone come across this before, is this a bug in the kernel? (I assum= e it=20 does the same thing in FreeBSD) Any help would be most appreciated! Thanks, Brad