Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 19 May 1995 23:59:21 +0800 (WST)
From:      Peter Wemm <peter@haywire.dialix.com>
To:        David Greenman <davidg@Root.COM>
Cc:        hackers@FreeBSD.org
Subject:   Re: More on "Hmm.. Strange..." 
Message-ID:  <Pine.SV4.3.91.950519225850.12939B-100000@haywire.DIALix.COM>
In-Reply-To: <199505190804.BAA00362@corbin.Root.COM>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 19 May 1995, David Greenman wrote:

> >The first sendto() always works, and the second sendto() sends the 
> >datagram to the *wrong interface*!

>    That is happening because you have both the ethernet and ppp interfaces in
> the same subnet. FreeBSD doesn't support this - each network interface must be
> in a unique subnet. As far as I know, it's always been this way in BSD.
> 
> -DG

It should.. The code is there to support it.  What the BSD kernel 
requires is that the _remote_ end is in a different subnet (that's the 
way it's been since BSD4.3).  I'm quite sure it works in NetBSD, not 
because I've tried it, but because there are a dozen or so Internet 
Service Providers over here using it.

The BSD model doesn't allow multiple ethernet interfaces on the same 
subnet, that I'm not arguing.  The BSD code is littered with things like 
  addr = (ifp->if_flags & IFF_POINTOPOINT) ? ifp->if_dstaddr : ifp->if_addr;
(this isn't exact, but you get the idea). 

The only time it seems to fail, is if SO_REUSEADDR is turned on 
explicitly, or if it's turned on implicitly by use of Multicast.

Also, on a point-to-point interface, the netmask is applied to the 
destination address, not the local address.  Are you saying that in order 
to have a PPP link to a B-class network, you need to have your OWN 
SEPERATE b-class for your FreeBSD box just so that you can advertise a 
route to the other 3 machines on your local ethernet?

eg:
ed0:  192.203.228.1, netmask 0xffffff00, broadcast 192.203.228.255
ppp0: new b-class    netmask 0xffff0000, destination 130.95.128.21

I personally think there is a bug in the FreeBSD lookups somewhere,
perhaps as part of the Multicast merge.. 4.4BSD networking can't suck that
badly, can it?  Especially after the measures that 4.3BSD and 4.4BSD has
taken to make sure that it does work..

Sorry if I sound sarcastic..  I just can't believe that this was working 
so very well in an older system, and doesn't work in a state-of-the-art 
system.

Cheers,
-Peter




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SV4.3.91.950519225850.12939B-100000>