From: ccsis@sunlab1.bath.ac.uk (Icarus Sparry)
Newsgroups: comp.unix.admin
Subject: Re: Netmask Questions
Date: 24 Jan 93 15:27:10 GMT
Organization: Bath University Computing Services, UK

(Bogus distribution of 'comp' deleted).
In the referenced article, barmar@think.com (Barry Margolin) writes:
>In article <FPB.93Jan17104229@ittc.ittc.wec.com> fpb@ittc.wec.com (Frank P. Bresz) writes:
>>	The problem comes in the fact
>>	that the 3/280 lives on both the 129.228.8.XXX loop and the
>>	129.228.112.XXX loop and I can't seem to set different netmasks for
>>	ie0 and ie2.  i.e. it couldn't telnet to 129.228.8.238 or any high
>>	numbered 129.228.8.XXX machine.
>
>Most TCP/IP implementations, including Sun's, require all the subnets of a
>network to use the same netmask.  The RIP routing protocol, for instance,
>doesn't include netmasks with the routes.
>
>>	Is what I am trying just impossible?  Is it unreasonable.  The
>>	reasoning for this is that I can get 2nd ethernet cards for a
>>	SPARCStation cheaper than I can buy a bridge.  Or I wouldn't bother
>>	routing packets I would just bridge the segments.
>
>You can use a Sun as a router.  The problem is that you're trying to have
>multiple levels of subnetting, and current implementations don't support
>that.  All subnets of 129.228 have to use the same subnet mask.

Much as I hate to disagree with Barry, he is wrong. The proof is the network
that we run here (138.38.x.x). He is correct in saying that you have
problems with RIP, but we use static routing here for everything.

Problems which you need to know about

1) Sun do not document how they select which interface they will use if
more than one interface appears to be suitable. It turns out that they
try the interfaces in order, and use the first one. This means that you
must have the most restrictive netmask on the first (ie0 in this case)
interface.

2) bootparamd is pretty stupid. It chooses an interface at random. I have
a re-written version somewhere which does 'best match' rather than 'first
match', which works.

3) You need to use static routing, but this is often a good idea as
it places less load on the machines. In our case we have disk-less
machines which are booted off the gateways, so if the gateway is
down so is the machine, so the fact that it could get to our backbone
is of little interest.


=============================================== netmask 255.255.0.0
        | le2 138.38.32.33         | le2 138.38.32.34
    |++++++|                   |++++++|
    | sl1a |------         ----| sl1b |
    |++++++| le1 |        |le1 |++++++|
138.38.35.2      |        |       | le0 138.38.35.65
        | le0    |        |       | netmask 255.255.255.192
        |        =================|
        |                 |       |
        |=================        |
        |                         |
netmask 255.255.255.192           |
   to slc-01 to slc-17            |
                         to slc-18 to slc-35

The 'le1' interface of sl1a has address 138.38.35.66, and the 'le1'
interface of sl1b has address 138.38.35.1.

So the solution to Franks original problem could be to turn off dynamic
routing, and swap over the ethernet cables to his two interfaces.

Icarus