[comp.protocols.tcp-ip] Dividing Class B number in subnets, Routing Problem

stephan@kulcs.uucp (Stephan Biesbroeck) (05/23/89)

We are planning to build a university-wide (=city-wide) network. 
We have an official class B IP-number.
I'd like to divide the IP-number in subnet numbers with a certain
flexibility e.g. giving a great department a subnet number of 21 bits
(= 11 bits left for further subnetting or for their hosts) and giving
a smaller department a subnet number of 25 bits (=7 bits left for further
subnetting or for hosts).
The division should also be hierarchical : all the subnets connected 
to the same router at the backbone have subnet numbers that start with
the same bits.

MY PROBLEM IS THE ROUTING. 
In Comer's book "Internetworking with TCP/IP", there is a paragraph
about routing with subnets (16.10 p.202) : about the routing table :
"each entry contains one additional field that specifies the subnet mask
used with the network in that entry:
     (subnet mask, network addreess, next gateway)

!!BUT, in a lot of implementations (UNIX BSD 4.3, SunOS, ...), there is
no place for a subnetmask for each entry in the routing table. 
The subnet mask is only specified for the interface. But it is possible
that my interface has a subnet mask of 25 bits, and I want to direct
to a subnet with a subnet mask of 21 bits.
How can I solve this ?

I hope my problem is clear (it's hard to explain in a few words).
Anyone who can give some help ?? Also other tips about dividing
a class B address in subnet numbers are welcome.

----------------------------------------------------------------------------
Stephan Biesbroeck                        Katholieke Universiteit Leuven
Tel : +32/16/20.06.56(x3602)              Dept. of Computer Science
telex : 23674 KULEUV B                    Celestijnenlaan 200A
fax : +32/16/20.53.08                     B - 3030 Leuven
email : stephan@cs.kuleuven.ac.be         Belgium
        stephan@blekul60.BITNET
        stephan@kulcs.UUCP
----------------------------------------------------------------------------

almquist@JESSICA.STANFORD.EDU (Philip Almquist) (05/26/89)

Stephan,
> In Comer's book "Internetworking with TCP/IP", there is a paragraph
> about routing with subnets (16.10 p.202) : about the routing table :
> "each entry contains one additional field that specifies the subnet mask
> used with the network in that entry:
>      (subnet mask, network addreess, next gateway)
>
> !!BUT, in a lot of implementations (UNIX BSD 4.3, SunOS, ...), there is
> no place for a subnetmask for each entry in the routing table. 
> The subnet mask is only specified for the interface.

	Hosts don't need to know anything about subnets other than the
subnet masks of any directly connected subnets.  Therefore, a subnet
mask per interface is fine for hosts (unless you run subnets with
different subnet masks on the same cable).

	Routers, on the other hand, have a lot more problems when a
network uses more than one subnet mask.  Traditionally, IP routing
protocols have not included subnet masks in routing updates, though this
is changing.  Traditionally, IP routing software has assumed that any
net has a single subnet mask.  This is also changing.

	The description in Comer's book reflects current theory, but
multiple subnet masks on a single network is an area where current
practice has not yet caught up with the theory.  It is only fairly
recently that the Internet protocol powers that be have come to
seriously address the issue.  And yes, it can work, and will be part of
future TCP/IP standards.

	However, unless you really enjoy being on the leading edge, I
would recommend that you stick to a single subnet mask for your network.
Make each subnet fairly small (7 or 8 bits of host field), and just give
out more than one subnet number to larger departments.

						Philip

holmes@wdl1.UUCP (Randy D Holmes) (05/26/89)

   Stephan,
      I understand your problem, we were faced with it a while back.
      Based on our experience I recommend you avoid using different 
      sized subnets if at all possible. If you haven't already read
      RFC950 "Internet Standard Subnetting Procedure" you should.
      Here is an important point stated in the RFC

     ...
        For example, the Internet address might be interpreted as:
 
            <network-number><subnet-number><host-number>
 
         where the <network-number> field is as defined by IP [3], the
         <host-number> field is at least 1-bit wide, and the width of the
         <subnet-number> field is constant for a given network.  No further
         structure is required for the <subnet-number> or <host-number>
         fields.  If the width of the <subnet-number> field is zero, then
         the network is not subnetted (i.e., the interpretation of [3] is
         used).
     ...

     In other words what you want to do is non-standard.

     Having said that, if you still want to go ahead, heres what we 
     did. Our class B network uses 3-bit subnetting at the top level,
     2 of those subnets are further subnetted to 8-bit subnets. Because
     of the RFC950 requirement to have subnet widths fixed for a given
     network, we were NOT able to do this using one gateway (we use
     cisco gateways). We have one gate way configured to do 3-bit
     subnetting, and one to do 8-bit subnetting, they are separated by
     a serial link and there are more gateways on both sides of this link.
     Immediate problems arise if you try to do dynamic routing. All the
     gateways on the 8 bit side send routing info for all the 8-bit 
     subnets they know about, but the 3-bit gateway just sees this as
     several routes to 2 3-bit subnets, often with the routing information
     conflicting. i.e. an 8-bit subnet which is 2 hops from the 3-bit gateway
     looks like the SAME subnet which is one hop away, and both routes use the
     same first hop. Also, and I'm a little less clear on this one, the
     3-bit gateway and the 8-bit gateway seem to argue over who has the correct
     subnet mask, and eventually ignore each other. Going the other way,
     hosts 128.5.192.2, and 128.5.193.2 are both on 3-bit subnet 128.5.192,
     however all of the 8-bit subnetted gateways think these are separate
     8-bit subnets, and DON'T know how to get to 128.5.193.2. 
     Our final solution was to turn off the dynamic routing on the 3-bit 
     gateway, and make all of its routes static. We also had to enter 32
     static  routes on the 8-bit gateway for EACH 3-bit subnet in use on the
     other side of the 3-bit subnet gateway.

     The bottom line is, we are working, and working quite well. But
     because we are doing things in a non-standard way we have an
     administrative headache on our hands, and a large portion of
     our down time has been attributed to this problem. Also we only
     have 2 sizes of subnets, you seem to propose at least 3. I should
     also mention that steps are being taken to eliminate this kludge in
     our network.

     I am sending this message not as a solution to your problem, but
     as an argument against doing what you propose.

     I hope this helps.


     Randy    holmes@wdl1.fac.ford.com