Hi,

I've tried a NetBSD mailing list to no avail and was hoping that someone here 
could help me.

I have the following setup:

A ----- B ====== C

Box A and Box B are on a LAN both on the same subnet. Now from box B I make a 
pppd modem dialup to box C. Manual routes are setup on A and C to allow a 
connection between A and C. It appears that if while a connection is active 
and access to C is momentarily lost, but the ppp interface remains up, 
packets that were being sent to B from A are redirected to B's default 
gateway.  

If that dialup is closed and then reopened a connection to C from A will fail 
because all packets to C through B are being routed to B's default gateway. 
In fact, the only way I'm able to get the connection to work again is either 
to delete the default gateway on B, do a ping from C to A, or to reboot box 
B.

Now I've looked through the kernel and it appears that in netinet/in_pcb.c the 
function "in_losing(inp)" is called when this happens. I've put printouts in 
the kernel and found that the route to redirect the packets (which I presume 
was setup by the kernel) from A to the default gateway has been setup as a 
static route. (rt->rt_flags & RTF_DYNAMIC == 0)

I would've thought that this route should be dynamic, my reasoning being that 
the route would then be deleted in in_losing(inp) and packets could then be 
redirected through a valid route if one were available.

Has anyone come across this before, is this a bug in the kernel? (I assume it 
does the same thing in FreeBSD)

Any help would be most appreciated!

Thanks,
Brad
_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to