[comp.protocols.tcp-ip] How do you break up a B class number?

kurt@hi.UUCP (Kurt Zeilenga) (07/23/87)

Does anyone know of any good references for netmasking (subnets)
schemes to split a B class number into various sized networks?

Here's the problem:

We have out grown our present configuration for IP networking.  We
have a half dozen or so C class networks (not registered), one of
which is filling rapidly.  We will soon be attaching to Internet
and will be using one B class number (registered) for the whole
campus.  We would like to split the B into different sized subnets
say of sizes to support 2 (host-host), 14, 62, 254, 2046 hosts.
On NIC's suggestion, we will use all 1s on a given net for broadcast and
reserve all 0s on a given net.  There will be at least one gateway
to the outside Internet.

What did you do?  If you send your comments to me, I will post a
summary.  If not ....

-- 
	Kurt Zeilenga	 (zeilenga@hc.dspo.gov)		I want my talk.flame!

	"Remember, Mommie, I'm off to get a commie..."

jqj@gvax.cs.cornell.edu (J Q Johnson) (07/23/87)

In article <11636@hi.UUCP> kurt@hc.dspo.gov (Kurt Zeilenga) writes:
>Does anyone know of any good references for netmasking (subnets)
>schemes to split a B class number into various sized networks?

Although variable-sized subnets may work for some network topologies,
they are almost guaranteed to get you into trouble, and I strongly
recommend that you avoid them.  Consider a subnet (perhaps the backbone)
with two or more gateways.  Host A on this subnet wants to send a packet
to host B on a different subnet.  In order to look up the route to B,
A needs to decompose B's address into net-subnet-host, so he needs to
know B's subnet mask.  All current software that I know of will use
A's mask, and ASSUME that it is the same size as B's.

Granted you can fool the routing tables in some topologies, e.g.  a
network with subnet mask of 255.255.255.0 containing several subsubnets
(who think the subnet mask is 255.255.255.188 or something) all
connected to only a single (hacked) gateway, where that gateway 
advertises a subnet that is the union of the subsubnets.  It will break 
as soon as you make the topology more complex!

Given that we can't do what Zeilenga asks, is it perhaps time to rethink
the whole subnet scheme?  16 bits of hostnumber is not much at all for
a typical large organization (say a university), especially if we have
to waste most of it because of subnet constraints.

braden@ISI.EDU (07/27/87)

I'd like to understand the reason that you feel the need to split
a class B network into different-sized subnets.  What happens if
you stick to a single subnet size?  

Although some of the comments in reply to your message have been somewhat
overblown, the fact is that the technical mechanism to handle
different-sized subnets of the same network is not generally available
today.  It may require carrying a 32-bit subnet mask along with each IP
(sub-)network address in whatever IGP is used within the subnetted
network.  The only current IGP which does carry such a mask is Dave
Mills' Hello protocol used in the Fuzzballs; however, you could probably
hack the BSD routing table and daemon to do so.  If you are not in a
position to roll your own IGP in this fashion, you had better stick to a
single subnet mask.


Bob Braden

kurt@hi.UUCP (Kurt Zeilenga) (07/27/87)

Brandon@isi.edu writes:
> I'd like to understand the reason that you feel the need to split
> a class B network into different-sized subnets.  What happens if
> you stick to a single subnet size?  

The reasons why we would like to split the B into
different-sized subnets is simple.  Address space.  Right
now we are projecting to have over 1k hosts on our main
ethernet (actually a combination of thin and fat wires
connected together using repeaters and smart bridges, like
DEC's LAN 100 bridge).  We also have many subnet that are
being installed.  Some of which are very small.  To
accomadate the main cable we would have to use a mask like
0xfffff800.  This means we have split our B into 32 subnets
each of 2k hosts (minus all ones and all zeros, of
course).  Anyway, 32 subnets will probably not be enough.
Most (if not all) of our subnets will be gatewayed directly
to the main ethernet (so subnetting the subnet won't really
come into the problem)

> Although some of the comments in reply to your message have been somewhat
> overblown, the fact is that the technical mechanism to handle
> different-sized subnets of the same network is not generally available
> today.  It may require carrying a 32-bit subnet mask along with each IP
> (sub-)network address in whatever IGP is used within the subnetted
> network.  The only current IGP which does carry such a mask is Dave
> Mills' Hello protocol used in the Fuzzballs; however, you could probably
> hack the BSD routing table and daemon to do so.  If you are not in a
> position to roll your own IGP in this fashion, you had better stick to a
> single subnet mask.
 
We are not planning to do any hacking.  Since there is no
real software solution at this time (unless you hack),
maybe a hardware solution is in order.  Anyone know of
where we could pick up a few "smart bridges" real cheap?

> Bob Braden

	- Kurt (zeilenga@hc.dspo.gov)

jsol@EDDIE.MIT.EDU (Jon Solomon) (07/29/87)

I can think of a situation where different sized subnets would be useful.
At BU we have some networks (1 -3 ) which have alot of hosts on them
(> 10), one of our networks is growing rapidly (our backbone) and we 
have other networks which will be in the future growth of our class B network.
We also have networks with less than 10 hosts, some haveo only 1 (one) 
host and need a network because of technical limitations, such as Macintoshes
which need to talk to an appletalk gateway, or a Sun Server with only 2
clients and little or no growth predicted. In the latter case, using
a common subnetting scheme will be alright in the near future because
we have a total of 254 subnets. But what happens when we run out?
I know, I know, maybe by then we will be switching to ISO protocols
or someone will come up with a subnetting scheme that works better than
the one we have. See? I can answer my own questions :-).

Anyway, there is a need and it should be recognized.

--jsol

LYNCH@A.ISI.EDU (Dan Lynch) (07/30/87)

This subnetting stuff can lead to bizzare situations that may sound
ok, but give some of the "semi-invisible glue" parts (like gateways,
routers, bridges) horrendous headaches.  Example:  you want a lot
of subnets, but you also want One Big One because you have a ton
of hosts on "one cable".  There is nothing that says you
cannot have more than one entwork number on the same "cable"!  So break
the 16 bits up into 256 nets of 256 hosts and assign 4 of the to the
main cable.   It's legal , but wil it work!?

Dan
-------

jqj@GVAX.CS.CORNELL.EDU (J Q Johnson) (07/31/87)

Dan Lynch <LYNCH@A.ISI.EDU> suggests (in jest, I think) a solution to
the heterogenous subnet problem:
> . . . have more than one entwork number on the same "cable"!  So break
>the 16 bits up into 256 nets of 256 hosts and assign 4 of the to the
>main cable.   It's legal , but wil it work!?

No, it probably won't work.  One big problem is that you are likely to
have broadcasts with all sorts of broadcast addresses.  Suppose that we
have 128.84.253.0 and 128.84.33.0 (netmask 0xffffff00) on the same cable.
Then the host with interface address 128.84.253.3 will occasionally
receive Ethernet broadcasts that contain IP broadcasts with destination
128.84.33.255.  If this is a typical 4.3BSD implementation, it will say
"that's not a broadcast address, so I gotta forward or send an ICMP
unreachable or something".  Result:  every host on 128.84.253.0 replies
at the same time, and you get a big Ethernet collision.  We tried something
like this, and sure enough our SUNs were reporting 70% collision rates!

Another version of the Ethernet meltdown Charles Hedrick so aptly described
in these pages a few weeks ago.

hedrick@TOPAZ.RUTGERS.EDU (Charles Hedrick) (08/03/87)

There is a compromise possible on the variable net mask issue.  Many
implementations of IP allow for more than one subnet on a given
Ethernet.  So you could pick a single mask that led to smallish 
network sizes, and then for a few networks with lots of hosts, simply
use more than one subnet number for tmemq 

hedrick@TOPAZ.RUTGERS.EDU (Charles Hedrick) (08/03/87)

We currently use multiple subnet numbers for two cases: a system
of Ethernets connected by bridges, and a single Ethernet that has
3 different groups on it that expect to move to different Ethernets
shortly.  Our gateways are from Cisco.  Unix can be set up to
know that several different networks are on the same cable.  Add the
extra subnets by using
  route add ..subnet.. ..local host address.. 0
The Cisco gateways have a similar ability.  The only problem we
have is that I don't like putting route commands in all the startup
files for the individual machines.  At the moment we are using
  route add default ..local host address.. 0
and depending upon the Cisco gateways to do proxy ARP.  (For non-Unix
hosts, we just don't tell them about subnetting, which gives the same
effect.)  Thus we don't have to make any changes on our hosts.  But
this is not my favorite way of doing routing.  I'd rather be able to
have a default route to a gateway, and have a form of ICMP redirect
that says "do it yourself, dummy" for hosts that are on the same
Ethernet but have different network numbers.  But if you are willing
to access proxy ARP, there doesn't seem to be any problem with using
multiple subnet numbers on one network.

ROODE@BIONET-20.ARPA (David Roode) (08/06/87)

Why don't you replace your DEC LANBridges with something at the IP
level.  In your description of the main ethernet, you
indicate you use these to connect together a combination of thin
and fat wires using these and repeaters.  For the price of a DEC
LANBridge, you can buy something like a cisco gateway, and voila,
no more 100 host subnet.  I can't see the real argument
for ever desiring to put 1000 hosts on a single subnet, or
even 300.  Organizations that large are going to be naturally
broken into administrative units of smaller size, each of which
might be allocated a subnet, or a portion of a subnet
shared with a limited number of other units.
-------

chris@gargoyle.UChicago.EDU (Chris Johnston) (08/11/87)

> [paraphrased] we intend to put around 1000 hosts on our backbone.

This has got to be a big lose.  I can think of all kinds of
problems...  And never mind whether or not one segment can support
all that traffic.

Each of the hosts connected to our backbone is a gateway.
Our backbone is implemented with fiber optics rather than coax.

By isolating the major segments of our net behind gateways, we
isolate broken subnets from the rest of the world.  Subnets get
broken in an amazing number of ways.  Electrician/plumber/carpenter
walks near the cable.  Professor unplugs the two thin ethernet cables
from the back of his workstation to rearrange his furniture (no thin
coax in this dept.)  Technician makes a lousy tap and shorts out the
segment.  Technician disconnects the 50 ohm terminator to put an
oscilloscope on the cable (!!!).

The fiber discourages people from making unauthorized taps and is
small enough to be secured out of the way of most harm.

Breaking the net into reasonably small segments is a major debugging
assist.

Of course we are limited to a single protocol (TCP/IP), but since we
want to talk to the rest of the planet we have no choice.  And one
can always pull another pair of fiber and run other protocols on it.

cj