Networking – addresses from the network 0.0.0.0/8 used in practice

ipnetworkingsubnet

I read that this pool:

  • Means "these hosts" in "this network"
  • Is used for self-identification
  • Is used for broadcast messages

My questions are:

  • Where exactly these addresses can be found?
  • Which protocols use them?

Best Answer

According to RFC 5735:

0.0.0.0/8 - Addresses in this block refer to source hosts on "this" network. Address 0.0.0.0/32 may be used as a source address for this host on this network; other addresses within 0.0.0.0/8 may be used to refer to specified hosts on this network ([RFC1122], Section 3.2.1.3).

So, looking at RFC 1122:

0.0.0.0/32:

This host on this network. MUST NOT be sent, except as a source address as part of an initialization procedure by which the host learns its own IP address.

0.0.0.0/8 (i.e. any IP from 0.0.0.0 to 0.255.255.255):

Specified host on this network. It MUST NOT be sent, except as a source address as part of an initialization procedure by which the host learns its full IP address.

So @Spiff is right, they're used exclusively in initialization procedures before obtaining the "real" IP Address.

But later on RFC 1122 states that:

There is a class of hosts (4.2BSD Unix and its derivatives, but not 4.3BSD) that use non-standard broadcast address forms, substituting 0 for 255 (as in 0.0.0.0 instead of 255.255.255.255)

so BSDs version 4.2 actually send broadcasts to 0.0.0.0.

Update:

Found another piece of info:

0.0.0.0/32 is INADDR_ANY [snip] Another common use for 0.0.0.0/8 is to designate ifIndex numbers, as for the "Link Data" value in OSPF, and for some BSD-ish interfaces.

And here appears BSD again:

imr_interface should be set to INADDR_ANY to choose the default multicast interface, or the IP address of a particular multicast-capable interface if the host is multihomed. Since FreeBSD 4.4, if the imr_interface mem- ber is within the network range 0.0.0.0/8, it is treated as an interface index in the system interface MIB, as per the RIP Version 2 MIB Extension (RFC-1724).