[ih] The history of "This" 0.0.0.0/8 network?
Dave Taht
dave at taht.net
Wed Feb 13 11:19:21 PST 2019
Grant Taylor <internet-history at gtaylor.tnetconsulting.net> writes:
> On 02/12/2019 11:23 AM, Dave Taht wrote:
>> I loved that book. It needs a sequel. Multiple sequels.
>
> Agreed!!!
>
>> One tidbit from that book I'd love to track down - it said paul buran
>> wrote 11?13? 14? - can't remember- *books* about packet processing,
>> and yet these have vanished from the internet. Whenever I struggle on
>> something - like the whol bufferbloat thing - I fantasize that scribbled
>> in the margin of book 13 was the answer to my problem.
>
> Hum.
>
> I'll have to look for that in context when I next re-read the book and
> then start researching things. }:-)
Might have been donald davies, don't remember.
>
>> What we see nowadays is 0.0.0.0/32 is used for useful stuff. 0.0.0.0/8,
>> by history and by extension (including the 4.2 BSD broadcast gaff),
>> is unused.
>>
>> However, 0.0.0.1 - 0.255.255.254 *does work* as a real address with a
>> very simple patch to linux.
>
> ~chuckle~
>
> Why do I now want to use this as something akin to 169.254/16 link-local
> IP addresses. }:-)
>
>> Boom. arp works, address assignement via dhcp works, it works as an
>> address on everything patched.
>
> :-)
Apply this to linux/include/linux/in.h
and recompile.
@@ -67,7 +72,7 @@ static inline bool ipv4_is_all_snoopers(__be32 addr)
static inline bool ipv4_is_zeronet(__be32 addr)
{
- return (addr & htonl(0xff000000)) == htonl(0x00000000);
+ return (addr == 0);
}
and you too can have 16 million extra IPv4 addresses to play with.
>> So trying to find the cases where that address range wouldn't work is
>> on my mind. Clearly 0.0.0.0/32 is special, but...
>
> 0.0.0.0/32 is special. But that doesn't directly translate to the
> zeroth address in a subnet.
>
> I don't recall at the moment where 0.0.0.0/32 is used as a /destination/
> address. I'm sure there is something, but I don't recall it at the moment.
>
>> The zeroth address is another long standing problem. Since cidr, and
>> 4.2BSD's retirement, zeroth should be a usable address.
>
> The best I've found is that the zeroth address / subnet can be
> misconstrued when addressing the (sub)network.
>
> Does 192.168.0.0 sans netmask address the 192.168.0.0/16 network, or the
> 192.168.0.0/24 sub-network, or one of the 14 other sub-networks?
>
> As I think about it, I guess the broadcast (all ones host) address could
> suffer from the same problem. But the broadcast address is already
> special and unused by hosts.
>
>> Explicit checks in the OS.
>
> Sorry, I was asking about what the reasoning was for them to be special,
> not the code used to enforce / protect their special nature.
>
> Asked another way, what is the reasoning behind the zeroth (all zeros
> host) address special and in need of protection to prevent it's use by
> normal hosts?
I'm not sure there's any reasoning left at all. Just enough vestiges of
code and rfcs to make the zeroth address semi-special to make it harder
to deploy. Perhaps a new definitive RFC (and patches) mandating zeroth
be treated like any other unicast address would help.
>> Good question. But the issue died with BSD 4.2
>
> Indeed.
>
> I had (what I think is) another one come to mind last night.
>
> What, if any, security / specialness do people still ascribe to ports
> below 1024?
>
> If it's a throwback to thinking that it requires root on a host to be
> able to source traffic from ports below 1024.... Well, I don't trust
> the remote host across the Internet at all. So, I don't personally
> ascribe any security to the port number. But I don't know if I'm
> strange in that.
>
> I personally (in my current naive state of mind) would like to see
> daemons daemons source traffic from any of the other 65,535 ports
> excluding than the destination port as a possible source port.
>
> Aside: Why is port 0 special? }:-)
More information about the Internet-history
mailing list