[comp.protocols.tcp-ip] An INTERESTING problem

rlg@desktalk.com (Richard L. Gralnik) (01/10/91)

Hi everyone,  

We are trying to make efficient use of a Class B address in a situation where
the standard procedure wastes roughly half the available addresses.  Any
thoughts on our proposed solution(s) or others of your own devising would be
greatly appreciated.

Here is the scenario:

We have a network which resembles a wheel with spokes - central hub of main
processors on a common ethernet, with remote offices scattered around the
area.  The remote offices are to be linked to the central site over serial
lines using routers.

The standard wisdom/procedure is to assign a subnet number to each remote
office, another subnet number to each serial line, and another (or many)
to the central site net.  We want to use an 8-bit subnet mask for the 
obvious reasons, but the cost of this is that the serial lines become 2-node 
subnets, thereby wasting 251 addresses (including 0 and 255) each.  Since 
there are 20 remote sites, and the user wants redundant serial lines because 
the network is mission-critical, we eat up 60+ subnet numbers right off the
bat.  

This is the pilot for a nation-wide company, so the other subnet numbers are
expected to be needed before too long. Also, this operation is growing and
will likely need additional remote offices added later.

We have thought of 3 solutions -

	1.  Use more than 8 bits for the subnet mask.  We don't like the
		administrative problems this creates, plus there is a 
		good chance that later additions to the net will have
		many hosts per subnet, so the additional mask bits will
		not leave enough host address space.

	2.  Use different size subnet masks for the serial lines than for
		the office subnets.  We don't think the routers will like
		this very much.

	3.  Use our Class B network number for the central net and for the 
		remote office nets with the 8-bit subnet mask, and use
		subnetted Class C addresses for the serial lines.  We think
		this will work since all the Class B subnets have the same 
		net number and subnet mask, and since RIP only sends 
		(sub)net numbers and next hop addresses, the updates should
		be accurate.
		
		We think this is very clever, and believe it will work.  
		However, we haven't actually tried it yet...  Also, we
		aren't knowledgeable enough about OSPF, IGRP, etc. to know
		if it will confuse/trash them.  There is also the 
		consideration that a network address space is assumed to be
		physically contiguous, but in this case, the Class B is 
		fragmented, and the Class C is not directly reachable from
		outside the Class B.  On the other hand, since the only 
		nodes using the Class C addresses are the serial interfaces
		of the routers, maybe none of this matters.

What do you think?

Thanks in advance for any input.   I will summarize for the net if we get
some good responses.


Richard Gralnik
(rlg@desktalk.com)

MAP@LCS.MIT.EDU (Michael A. Patton) (01/11/91)

You were almost clever enough...

   Date: Wed, 9 Jan 91 18:48:55 PST
   From: rlg@desktalk.com (Richard L. Gralnik)

   We have a network which resembles a wheel with spokes

Actually your later description sounds like spokes, but no wheel.
Given the critical nature you describe later you may want to consider
interconnecting the ends of the spokes to actually create a "wheel".
There are many cases where single failures can take out multiple lines
and at least having the ability to route all around the outside means
only one of the spokes into the hub needs to be operational for
connectivity to exist everywhere (of course, that one link will get
quite loaded).

   We have thought of 3 solutions -

But you missed a fourth that is probably the one you want...

	   1.  Use more than 8 bits for the subnet mask.

I agree with your reasons against this one.

	   2.  Use different size subnet masks

This is very iffy.  Exactly what you can accomplish with variable
subnets depends on what vendors equipment you are using.  There may be
restrictions that prevent use in this application.  It may be very
hard to get right if you want to allow for competitive sourcing of the
equipment you use.

	   3.  Use our Class B network number for the central net and for the 
		   remote office nets with the 8-bit subnet mask, and use
		   subnetted Class C addresses for the serial lines.

		   We think this is very clever

I agree it seems clever, but it doesn't work...  However there is
something that does (and is related).  This doesn't work because of
the contiguous network assumption.  You may find some vendors
implementation that happens to operate the way you want today, but
since the specs imply networks are contiguous, this may not continue
to be available.

However, most vendors of IP routers will let you run the serial line
between two routers as an unnumbered subnet.  Even if it's not
directly supported, this is easy to simulate (see below).  This
feature is intended to address problems just such as yours.  The main
disadvantage is that you cannot address these unnumbered ports
directly (say to ping them), but with SNMP you still get the
information so this may not be a problem at all.  This will eliminate
all the waste of addresses for these lines.

If your vendor doesn't support this (or for some reason you don't want
to rely on that support), there is a simple way to simulate it.  All
you do is allocate one subnet of your class B address and use it for
all the serial lines.  That's right, you just made a discontiguous
subnet.  The only reason a discontiguous subnet is a problem is
that you don't know how to route to it but, as described before, you
don't need to address the serial line side!  I have, in fact, tested
this configuration, by accident, and found it to work fine.  The way
to accidentally get this configuration is with a spine subnet that
partitions in such a way that the parts still work, and the two
partitions are interconnected through some back door.  In your case,
you could think of all the serial ports being on one super-subnet that
just happens to be broken into partitions of size 2.  There are some
minor complications if multiples of these "partitions" need to feed
into a single router, but a little thought can generally configure a
setup for this case.

            __
  /|  /|  /|  \         Michael A. Patton, Network Manager
 / | / | /_|__/         Laboratory for Computer Science
/  |/  |/  |atton       Massachusetts Institute of Technology

Disclaimer: The opinions expressed above are a figment of the phosphor
on your screen and do not represent the views of MIT, LCS, or MAP. :-)

barmar@think.com (Barry Margolin) (01/11/91)

In article <9101100248.AA01030@desktalk.desktalk.com> rlg@desktalk.com (Richard L. Gralnik) writes:
>The standard wisdom/procedure is to assign a subnet number to each remote
>office, another subnet number to each serial line, and another (or many)
>to the central site net.  We want to use an 8-bit subnet mask for the 
>obvious reasons, but the cost of this is that the serial lines become 2-node 
>subnets, thereby wasting 251 addresses (including 0 and 255) each.  Since 
>there are 20 remote sites, and the user wants redundant serial lines because 
>the network is mission-critical, we eat up 60+ subnet numbers right off the
>bat.  

Some routers (e.g. cisco) support configurations where the ends of a
point-to-point link are not assigned unique addresses, so the serial lines
don't have to be assigned subnet numbers.  As far as all the other hosts
are concerned, the two routers connected by the serial line are a single
virtual host (the serial link would be a slow virtual bus).  The routers
themselves need to know the number of at least one subnet connected to the
router at the other end of the link.
--
Barry Margolin, Thinking Machines Corp.

barmar@think.com
{uunet,harvard}!think!barmar

simon@sirius.ucs.adelaide.edu.au (Simon Hackett) (01/11/91)

You don't have to waste a subnet number on each sl/ip link. You can configure each end of the link using the primary IP address of each system as the addresses configured into the sl/ip interface at each end of the sl/ip link.

i.e. for a link thus:

   ----(ether)----[HOST A]--(sl/ip)--[HOST B]---(ether 2)---

If HOST A and HOST B have primary IP addresses for each of their respective ethernets, set up the sl/ip interface on HOST A so the ip address of the local side of the sl/ip link is the same as host A's ethernet address, and set the IP address of the remote end of the sl/ip link to the ethernet IP address of HOST B. Vice versa at the other end.

What happens under these conditions? Well, it might look illegal, but although it skates on the edge, it works: For routing out of HOST A to HOST B, all the matters is the remote sl/ip interface address - so packets get sent correctly to host B. They have a source IP address of [HOST A's ethernet IP number], but this is perfectly valid for them.

Packets on the way back work the same way - since they are tagged as having originated from HOST A's ether address, they get routed to HOST A via the SL/IP link. 

Hopefully this makes sense. If you imagine you're an IP router and go through the steps involved in routing packets each way, you'll see that it works out right.

Simon Hackett
Adelaide Uni

oleary@noc.sura.net (dave o'leary) (01/11/91)

In article <9101100248.AA01030@desktalk.desktalk.com> rlg@desktalk.com (Richard L. Gralnik) writes:
>Hi everyone,  
>
>We are trying to make efficient use of a Class B address in a situation where
>the standard procedure wastes roughly half the available addresses.  Any
>thoughts on our proposed solution(s) or others of your own devising would be
>greatly appreciated.
>
[Typical scenario where variable length subnets are desirable deleted]

>	2.  Use different size subnet masks for the serial lines than for
>		the office subnets.  We don't think the routers will like
>		this very much.
>

OSPF can deal with variable length subnet masks, now that most of
the major router vendors are committed to implementing it, there
shouldn't be any problem.... :-)

					dave

PIRARD%vm1.ulg.ac.be@CUNYVM.CUNY.EDU (Andr'e PIRARD) (01/11/91)

On Wed, 9 Jan 91 18:48:55 PST Richard L. Gralnik said:
>	3.  Use our Class B network number for the central net and for the
>		remote office nets with the 8-bit subnet mask, and use
>		subnetted Class C addresses for the serial lines.  We think
>		this will work since all the Class B subnets have the same
>		net number and subnet mask, and since RIP only sends
>		(sub)net numbers and next hop addresses, the updates should
>		be accurate.

A&Q.
Configuration when routing by a pair of hosts usually provides the alternative
of (1) using a network number dedicated to the serial line or (2) having
each side borrow for the line interface a network address from the other
side (i. e. one it uses on another interface). I bet you're allowed (2) but
avoid it.
PCROUTE's doc says that (1) is "PREFERRED", and that, in case (2) is used,
one should "turn off RIP on this interface".
TCP/IP for VM (version 1.2) seems to propose only (2) for links on SNA. For
example I use home addresses 2.1 on one side and 32.1 on the other albeit
32.1 is the home address of another Ethernet interface of the latter.
What are exactly the reasons favoring (1) besides saving a network number?
What is the RIP concern? RIP broadcast traffic or RIP operability?
I guess there's no reason for added traffic, as each host is supposed to
send only its routing tables. But where goes a broadcast supposed to be sent
to a network and that's received by a single host, etc...
Any guru's comment?

I think that (2) is safe indeed.
I see no reason for keeping a network address contiguous. No more than if
you were using multiple C addresses.

Andr'e PIRARD             SEGI, Univ. de Li`ege
B26 - Sart Tilman         B-4000 Li`ege 1 (Belgium)
pirard@vm1.ulg.ac.be  or  PIRARD%BLIULG11.BITNET@CUNYVM.CUNY.EDU

medin@NSIPO.NASA.GOV ("Milo S. Medin", NASA ARC NSI Project Office) (01/13/91)

Mike, I disagree that #2 is risky (using variable length subnets).  Vendors
running OSPF have to implement variable length mask support, and since
Proteon, 3com, Wellfleet and ACC also have demonstrated OSPF interoperability
recently, with cisco committing to have it by Q2 1991, I fail to see how
this restricts your choice of vendors in any significant way!

Also note, that of the system is running OSPF, subnets no longer need to
be contiguous.  This works fine (we have done this here at Ames).  Time
moves on and progress is made.  People can take advantage of the new
technology.  We don't still eat with stone knives and forks.  Let's try and
avoid the use of their equivalents in routing technology.

						Thanks,
						   Milo

tmallory@BBN.COM (01/15/91)

In article <9101100248.AA01030@desktalk.desktalk.com> rlg@desktalk.com
(Richard L. Gralnik) writes:
>The standard wisdom/procedure is to assign a subnet number to each remote
>office, another subnet number to each serial line, and another (or many)
>to the central site net.  We want to use an 8-bit subnet mask for the 
>obvious reasons, but the cost of this is that the serial lines become 2-node 
>subnets, thereby wasting 251 addresses (including 0 and 255) each.  Since 
>there are 20 remote sites, and the user wants redundant serial lines because 
>the network is mission-critical, we eat up 60+ subnet numbers right off the
>bat.  

Another obvious approach is to use two sizes of subnet masks. Given the
minimum usable size of two bits(00 unused, 11=broadcast, 01 and 10 the hosts),
you can get 64 trunks worth of subnets out of each subnet with an 8-bit host
space.  This is fairly efficient, and allows for use of the conventional
addressing procedure.  Of course, once you have the hierarchical subnetting
then you have the option of giving less than 254 host addresses to smaller
sites.  BBN T/20s give you this option, others probably do as well.

Paul Tsuchiya wrote a paper on assigning addresses in a hierarchical manner
that allowed for expansion of chunks of the address space without forcing host
addresses to change.  The basic idea was to assign addresses right-to-left,
starting with large masks that could be shrunk to expose more of the host
address space.  It's single most important requirement was support for
variable length subnet masks.  I'm pretty sure that it did NOT require
non-contiguous subnet masks, just a general left-to-right hierarchy.  I can't
locate the paper now, but I'm sure someone(Paul?), can supply a pointer to it.

Tracy Mallory
BBN Communications

tsuchiya@THUMPER.BELLCORE.COM (Paul Tsuchiya) (01/18/91)

A couple of days ago Tracy Mallory mentioned that
I had a method of assigning subnet numbers prevents
one from having to determine in advance where the
subnet/host boundary goes.  Well, I do, and it has
been submitted to become an internet draft, shortly
after which it will be an rfc.

Anyway, if people are interested, I have made it
available via anonymous ftp on thumper.bellcore.com:subnet.
I'd love any improvements you might suggest.

rlg@STYX.DESKTALK.COM (Richard L. Gralnik) (01/23/91)

Hi folks,

My thanks to everyone who responded to my request for comments on how to r
configure the IP addresses for a network consisting of a lot of subnets 
connected by routers over serial lines.  There were over 20 replies, most 
agreeing on unnumbered subnets as the way to go, although a few of you did
mention variable length subnet masks and OSPF routing updates as a more
sophisticated and just as workable approach.  I appreciate the live experience
a couple of you shared on attempts to implement the Class B offices linked
by subnetted Class C serial lines.  You justified our suspicions that 'here
there are monsters'.

I would have replied sooner, but my son was in the hospital unexpectedly for
a week with meningitis (he's ok now) so I was a bit back-logged.

Thanks again,
Richard Gralnik
(rlg@desktalk.com)