all [0s|1]'s subnets

Zachary,

You can't us an all zeros or all ones host part. That means that if
your prefix is x.y.z/24 you can't use x.y.z.0 as a host address
because that is the address of the network, and you can't use
x.y.z.255. The mistake that is commonly made is getting confused
about this and avoiding all zeros or all ones in any octet of the
prefix. If you have an address of x.y/16 and want to split up the
prefix into /20s (for example), you can start numbering your
prefixes at x.y.0/20, x.y.16/20, ..., x.y.240/20. If you split into
/24s (*only* internally I would hope), you can number from x.y.0/24,
x.y.1/24, ... x.y.255/24, and all other the values in the third octet
are valid.

You may run into a problem with some older software that is just plain
broken. For example, the "subnet broadcast" remains, but the "network
broadcast" is depricated by CIDR. If you have broken hosts on an
older class B, like 191.x/16, and the subnet is 191.x.0/24, some hosts
may have trouble, but I think you'd have to have not upgraded the
vendor's OS for 2-3 years (in the one example I can think of). The
broken host might also think 191.x.255.255 is a "network broadcast",
which would not be a problem unless it sits on other subnets and
broadcasts to all 191.x.y/24 when it sees that.

The answer is it is absolutely legal to use all ones or all zeros in
an octet of the network part. There used to be some broken software
that gave you trouble due to remnants of "address class" based code.
That broken software should by now be long gone.

I don't know about Ascend's implementation, though I have heard they
were in some ways CIDR challenged. If Ascend's software is broken,
get them to stop spreading misinformation and admit that it is just a
bug on their part and preferably also fix the bug.

Curtis

You can't us an all zeros or all ones host part. That means that if

[...]

The answer is it is absolutely legal to use all ones or all zeros in
an octet of the network part. There used to be some broken software
that gave you trouble due to remnants of "address class" based code.
That broken software should by now be long gone.

Hmmm...What if you have, say, 192.168.2.0/23. So the net address is
192.168.2.0 and the broadcast is 192.168.3.255. You should then be able to
use any address in between those, right? Like 192.168.2.255 and
192.168.3.0?

Both FreeBSD and BSDI appear to choke on those two addresses. Traceroute
from boxes with a default route do not even get to the router (which
does have classless forwarding enabled, BTW). Interestingly enough, an
address like 172.16.3.0 does make it to the router, leading me to believe
that there is still some classful kruft hanging around.

-BD