Network Working Group                                  Michael J. Karels
Request for Comments: 936                                    UC Berkeley
                                                           February 1985

               Another Internet Subnet Addressing Scheme


Status of this Memo

   This RFC suggests a proposed protocol for the ARPA-Internet
   community, and requests discussion and suggestions for improvements.
   Distribution of this memo is unlimited.

Introduction

   There have been several proposals for schemes to allow the use of a
   single Internet network number to refer to a collection of physical
   networks under common administration which are reachable from the
   rest of the Internet by a common route.  Such schemes allow a
   simplified view of an otherwise complicated topology from hosts and
   gateways outside of this collection.  They allow the complexity of
   the number and  type of these networks, and routing to them, to be
   localized.  Additions and changes in configuration thus cause no
   detectable change, and no interruption of service, due to slow
   propagation of routing and other information outside of the local
   environment.  These schemes also simplify the administration of the
   network, as changes do not require allocation of new network numbers
   for each new cable installed.  The motivation for explicit or
   implicit subnets, several of the alternatives, and descriptions of
   existing implementations of this type have been described in detail
   [1,2].  This proposal discusses an alternative scheme, one that has
   been in use at the University of California, Berkeley since
   April 1984.

Subnet Addressing at Berkeley

   As in the proposal by Jeff Mogul in RFC-917, the Berkeley subnet
   addressing utilizes encoding of the host part of the Internet
   address.  Hosts and gateways on the local network are able to
   determine the subnet number from each local address, and then route
   local packets based on the subnet number.  Logically, the collection
   of subnets appears to external sites to be a single, homogenous
   network.  Internally, however, each subnet is distinguished from the
   others and from other networks, and internal routing decisions are
   based on the subnet rather than the network number.

   The encoding of subnet addresses is similar to that proposed in
   RFC-917.  In decomposing an Internet address into the network and
   host parts, the algorithm is modified if the network is "local", that
   is, if the network is a directly-connected network under local
   administrative control.  (Networks are marked as local or non-local


Karels                                                          [Page 1]


RFC 936                                                    February 1985
Another Internet Subnet Addressing Scheme


   at the time each network interface's address is set at boot time.)
   For local addresses, the host part is examined for a subnet number.
   Local addresses may be on the main network, or they may be on a
   subnet.  The high-order bit of the host number is used to distinguish
   between subnets and the main net.  If the high-order bit of the host
   field is set, then the remainder of the high-order byte of the host
   part is taken to be the subnet number.  If the high-order bit is
   clear, then the address is interpreted in the normal fashion.  For
   Class A networks, using 8-bit subnet fields, this allows a network
   with up to 127 subnets, each of 65535 hosts maximum, and a main net
   with 2^23 hosts.  Class B nets may include 127 subnets, each of up to
   255 hosts, and 32767 hosts on the main net.  Class C networks are not
   currently included in this scheme. They might be reasonably be added,
   using four bits of the host part for a subnet desgination and four
   bits for the host, allowing 8 subnets of 15 hosts and 126 hosts on
   the main net.

   The current implementation does not use subnet numbers separately
   from the network field, but instead treats the subnet field as an
   extension of the network field.  Functions that previously returned
   the network number from an address now return a network or
   network-subnetwork number.  Conveniently, Class A subnets are
   distinguishable from Class B networks, although each is a 16-bit
   quantity, and Class B subnets are disjoint with Class C network
   numbers.  The net result is that subnets appear to be separate,
   independent networks with their own routing entries within the
   network, but outside of the network, they are invisible.  There is no
   current facility at Berkeley for broadcasting on the logical network;
   broadcasting may be done on each subnet that uses harware capable of
   broadcast.

Discussion

   There have been several earlier proposals for methods of allowing
   several physical networks to share an Internet network designation,
   and to provide routing within this logical network.  RFC-917 proposes
   a means for encoding the host part of each local address such that
   the hosts, or the gateways connecting them, are able to determine the
   physical network for the host.  The current proposal is most similar
   to that scheme; the differences are discussed in detail below.

   Another proposal (RFC-925) involves the use of intelligent gateways
   to perform routing for unmodified hosts, using an Address Resolution
   Protocol (ARP) [2].  This has the advantage of placing all
   modifications in the gateways, but is likely to require additional
   routing protocols and caching mechanisms in the gateways in order to
   avoid excessive broadcasts for address resolution.  A modification of


Karels                                                          [Page 2]


RFC 936                                                    February 1985
Another Internet Subnet Addressing Scheme


   this method is to perform encoding of subnets within host addresses
   by convention to simplify the routing in the gateways, without
   modifying host software to recognize these subnet addresses.  These
   techniques were not considered for use at Berkeley, because all
   packet forwarding was being done by multi- homed hosts, all of which
   ran the same software as the singly-homed hosts (4.2BSD Unix).

   The most recent proposal, RFC-932 [3], provides subnetting by
   encoding the network part of the Internet address rather than the
   host part.  Ordinary hosts need not know of this convention,
   eliminating the need for modification to host software.  Gateways
   would be able to take advantage of this encoding to compress the
   routing information for the collection of networks into a single
   entry.  Unfortunately, implementation of that scheme would require a
   fairly concerted transition by the gateways of the Internet, or the
   transition period would be likely to overflow the routing tables in
   the existing gateways.  All of the hosts on the larger networks would
   be forced to change addresses from their current Class A or B
   addresses to "B 1/2" addresses.  There are a limited number (4096) of
   blocks of Class C addresses available using this encoding.  The
   number of universities and other organizations having already
   implemented subnets or contemplating their installation argues for a
   more extensible scheme, as well as one that can be implemented more
   quickly.

   The current proposal is most similar to that of RFC-917; indeed, the
   two implementations are nearly compatible.  There are two differences
   of significance.  First, the use of a bit to distinguish subnetted
   addresses from non-subnetted addresses allows both smaller subnets
   and a larger (physical or logical) main network.  Half of the host
   addresses within a Class A or B network are reserved for use in
   subnets, the other half are available for the primary net.  This may
   useful when using a hardware medium that is capable of supporting
   large numbers of hosts or for transparent subnetting (e.g. using
   ARP-based bridges).  The corresponding disadvantage is that fewer
   subnets may be supported.  The allocation of bits between the subnet
   number and the host field could be adjusted, but for Class B
   networks, neither is excessively large.  Given the limited address
   space of the current Internet addressing, this is a difficult choice.

   The second difference is that the width of the subnet field is fixed
   in advance.  This simplifies the already-too-complicated code to
   interpret Internet addresses, and avoids the bootstrap problem. If
   the subnet field width is to be determined dynamically, some fraction
   of the hosts on a network must be prepared to specify this value, and
   the situation will be unworkable if one of these hosts does not make
   the correct choice or none are accessible when other machines come


Karels                                                          [Page 3]


RFC 936                                                    February 1985
Another Internet Subnet Addressing Scheme


   up.  Also, the recovery procedure proposed by RFC-917 seems
   unnecessarily complicated and liable to fail.  Dynamic discovery of
   this value depends on another modification as well, the addition of a
   new ICMP request.  The alternatives are to specify the field size as
   a standard, or to require each implementation to be configurable in
   advance (e.g with a system compilation option or the use of a system
   patch installed when a host is initially installed.  The use of a
   standard field width seems preferable, and an 8-bit field allows the
   most efficient implementations on most architectures.  For Class C
   nets, a 4-bit field seems the only choice for a standard division.

References

   [1]  J. Mogul, "Internet Subnets", RFC-917, Stanford University,
   October 1984

   [2]  J. Postel, "Multi-LAN Address Resolution", RFC-925, USC-ISI,
   October 1984

   [3]  D. Clark, "A Subnet Addressing Scheme", RFC-932, MIT-LCS,
   January 1985




























Karels                                                          [Page 4]