Date: Wed, 21 Jan 2004 15:40:57 +0200 From: Brad du Plessis <bradd@cat.co.za> To: net@freebsd.org Subject: RTM_LOSING: Kernel Suspects Partitioning Message-ID: <200401211540.57528.bradd@cat.co.za>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200401211540.57528.bradd>