Skip site navigation (1)Skip section navigation (2)
Date:      15 Apr 1997 21:57:32 +0200
From:      fenyo@email.enst.fr (Alex Fenyo (eowyn))
To:        Alec Kloss <alec@d2si.com>
Cc:        ghelmer@cs.iastate.edu (Guy Helmer), freebsd-questions@FreeBSD.ORG
Subject:   Re: Subnets of all 0's/all 1's
Message-ID:  <d06hgh883f7.fsf@nikopol.enst.fr>
In-Reply-To: Alec Kloss's message of Tue, 15 Apr 1997 12:39:16 -0500 (CDT)
References:  <199704151739.MAA25341@d2si.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Alec Kloss <alec@d2si.com> writes:
> Well, I already use hosts on the "reserved" subnet in the range 1-31
> without any problems.  Anyone out there have a definitive answer?

It is due to RIPv1 : a router that announces a sub network to
another has to send the address of the sub network to its peers.
It doesn't send the subnet mask in the announcement datagram (no
field for this in RIPv1 !). Then, suppose your network
is 192.160.30.0 and you have 4 subnets of size 64 :
192.160.30.{0,64,128,192}.
Suppose too that the nodes connected to one of your Ethernet
are in the subnet 192.160.30.0.

The router that connects this Ethernet to the other networks
announces 192.160.30.0 to its peers. But the other routers that receive
this annoucement think it's the whole class C network 192.160.30.0
that is announced, not only hosts from 192.160.30.1 to 192.160.30.62.

Then, they will send all packets with a destination in the
class C network 192.160.30.0 to this router, even if the address
is outside the first subnet of 64 addresses !

This is why RFC 1058 forbids the usage of the first subnet.

It's stupid because there is a way to handle this. If all the subnets
of a class C network are a connex graph, you can simply prove that,
without changing RIPv1 :

The routers that may receive an announce like 192.160.30.0 THAT IS NOT
an announce for the whole net but only for the first subnet, have a
local interface in the net 192.160.30.0.
Then, there are two cases :

- the router that receives this announcement has no interface in the
net. It must then send all datagrams with a destination address in
192.160.30.0/24 to the router that sent the announcement.

- the router that receives this announcement has one or more interfaces
in the net. If the announcement came from an interface in the net,
the announcement is then for the first subnet only. If it came
from an interface NOT in the net, it's an announcement for the
whole class C network (and it will be discarded because the routeur
must has received more specific routes).

Note that this method works only if the subnets of a same net are a
connex graph.

Alexandre Fenyo




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d06hgh883f7.fsf>