[comp.protocols.tcp-ip] subnetting zero-numbers

mogul@DECWRL.DEC.COM (Jeffrey Mogul) (01/01/88)

From: nomad@cs.orst.edu (Lee Vincent Damon)

       I have just finished reading rfc950 (finally). I notice in this
    doc that the "zero address" of each subnet is supposed to remain 
    unused, along with the "all-one" address.  When I issued numbers
    on my subnet I knew about the all ones, but not about the zeros. None
    of our machines have complained so I was wondering if the zero's
    "this net" requirement has been removed and we just have an old doc?

If viewed in isolation, there is no intrinsic reason why the zero
host address should be banned; unfortunately, things like this can
never safely be viewed in isolation.  The problem comes from the
historical use of that address as a broadcast address by some hosts
(chiefly, 4.2BSD-derived systems).  Even though the standards now
specify an "all ones" broadcast address, many hosts still treat
the "all zeros" host address as a broadcast.  So, you might have
some hosts that are sending packets as link-level broadcasts when
they are meant to be sending unicasts, and other hosts that may
refuse to receive or forward packets addressed to the all zeros
host.

Further, some systems use an all-zeros host part to refer to the
network rather than a specific host; e.g., 128.45.1.1 is a host
but 125.45.0.0 is a network.

In summary, use of the zero host address can lead to confusion
and chaos.  As a general principle of address space engineering
(a discipline I just invented), it is always a bad idea to use
the "zero" address for a real object.  You're likely to find
it used by mistake.

By the way, the zero subnet number is also a bad idea, for
similar (but not identical) reasons.

-Jeff