On reading various 'expert' networking text books, I seem unable to obtain a clear explanation of what occurs when 'invalid' or 'not allowed' IP addresses are used configured on interfaces and operational in a routed environment.
According to the text books, using a class B network 172.16.0.0 with a 2
bit SNM (2bits in 3rd Octet) , gives two valid nets, 172.16.64.0 and 172.16.128.0 each with 16382 hosts. i.e.
First Host 172.16.64.1
Last Host 172.16.127.254
First Host 172.16.128.1
Last Host 172.16.191.254
By implication, the addresses 172.16.0.0 through 172.16.63.255 and
172.16.192.0 through 172.16.255.255 are invalid as the SNM bit's are either
all off (0.0-63.255) or all on (192.0-255.255).
To test the theory that the invalid network addresses would not work in a
routed environment, I built the following test net:
LAN A - 172.16.0.0 with two hosts 172.16.0.2 and 172.16.0.3 and router A Ethernet port 172.16.0.1 all with SNM 255.255.192.0
WAN - 172.16.10.0 with router A Serial port 172.16.10.1 and router B serial port 172.16.10.2 both with SNM 255.255.192.0
LAN B - 172.16.200.0 with two hosts 172.16.200.2 and 172.16.200.3 and router B Ethernet port 172.16.200.1 all with SNM 255.255.192.0
According to the text books, all three networks are technically invalid, given the SNM, as all the addresses exist below 172.16.64.0 or above 172.16.192.0 and therefore all SNM bits are either all off or all on!
However, both Cisco's allowed the configuration to be entered, RIP
redistributed the 172.16.0.0 network and published the route as being
variably subnetted with one mask and three subnets (0.0, 10.0 and 200.0)
and all hosts pinged correctly.
My question is ...are the 'invalid' networks truely invalid?
If so ...
Why does the IOS allow the configuration to be entered ?
Why are the 'invalid' routes redistributed and routing appear to work?
Is the recommendation not to use these 'invalid' network numbers just that i.e. a recommendation, or can the 'invalid' nets actually be successfully deployed in a routed internetwork?
Many texts disallow subnets of all zeroes and all ones for the reason that an all zeroes subnet includes the network address of the full, classful network, and the all ones subnet would include the broadcast address of the full network. In your example, the ".0" subnet has the two subnet bits set to zero, the ".64" subnet has "01" in the subnet portion, the ".128" has "10" in the subnet portion, and ".192" has "11 in the subnet.
The Cisco IOS command "ip subnet-zero" allows the use of subnets having all zeroes and all ones. This recognizes that, in most instances (all instances that I've ever seen, BTW), the classful network's network address and broadcast address are not used by any process. If you check the full configurations of your routers, I'm sure you'll see this command in both of them.
The restriction of not using the networks with all zeros and all ones was specified in RFC950 (Internet Standard Subnetting Procedure) :
This means the values of all zeros and all ones in the subnet field
should not be assigned to actual (physical) subnets.
This has been superceded by RFC1878 () which states (rather grumpily I have always felt!):
For the sake of completeness within this memo, tables 2-1 and 2-2
illistrate some options for subnet/host partions within selected
block sizes using calculations which exclude all-zeros and all-ones
subnets . Many vendors only support subnetting based upon this
premise. This practice is obsolete! Modern software will be able to
utilize all definable networks.
Cisco IOS (>12.0 I believe) follows RFC1878 by default. To get back to the older (RFC950) scheme, try "no ip subnet-zero"
Thank you for your response.
It appears that there is inconsistancy as to how authors interpret the RFC's as some texts say '...shouldn't be used' while others say '...can't be used'.
I did try removing the ip subnet-zero configuration prior to posting the query, but either the configuration is fixed in v12 and can't be removed or the router simulation package I'm using (Routersim 3.2) doesn't support its removal.
If IOS v12 can use all available nets, then I wonder if Cisco's CCNA documentation reflects this update. The text I'm currently using (Todd Lammle) states that '... according to Cisco, these nets should not be used'.
RouterA's Ethernet and Serial port will definately overlap. If you attempted to address the Ethernet with 172.16.0.1/18 and the Serial with 172.16.10.1/18 you should have got the error '172.16.0.0 overlaps with Ethernet x/y'.
Apologies if I have misunderstood the question. What hardware\software where you using to Lab this?
Thank you for your very prompt response ... 0658am PST ... isn't it still dark ?
I'm using the Routersim cisco simulator package which emulates IOS v12.0.8
There was no 'overlap' error given during interface configuration and the network does appear to function correctly ... probably due to v12 support for 'ip-subnet zero'
The main reason for me raising the question as to the use of 'invalid' networks was because of the inconsistent message as to the use of such nets given in the various texts I'm reading. Some texts use terms such as ' really shouldn't be used', other texts say '...cannot be used' and as far as I can tell, Cisco's CCNA documentation states that these nets should not be used even though the routers can be configured to support them!
Thank you for your help anyway.