Waste will kill ipv6 too

Ricky Beam jfbeam at gmail.com
Fri Dec 29 00:24:44 CST 2017


On Thu, 28 Dec 2017 16:35:08 -0500, Owen DeLong <owen at delong.com> wrote:
> Wasting 2^64 addresses was intentional because the original plan was for  
> a 64-bit total
> address and the additional 64 bits was added to make universal 64-bit  
> subnets a no-brainer.

Incorrect. The original 128 address space was split 80+48. That *LATER*  
became 64+64 to support EUI-64 (vs. 48bit ethernet MACs)

A 64bit LAN is, and always will be, an infinitely stupid idea. The reason  
for that over-optimization in SLAAC never materialized -- the 8bit  
micro-controlers from the 80s will never run IPv6, so the ability to form  
your address in 4 lines of ASM is meaningless, even more so when IPSec was  
bolted on. (later marked optional, but was originally required)

SLAAC is still, to this day, THE. ONLY. THING. demanding your LANs be  
64bits. I've run LANs with longer prefixes for decades. And they work.  
(the original intent was to keep android devices from using IPv6, as  
there's no f'ing way to turn it off, or even see it anywhere.) Yes, there  
are various RFCs saying you need to use /64's, but they're all bunk. SLAAC  
is the only thing that REQUIRES a /64, and few modifications to your IPv6  
source and privacy extensions function just fine with longer prefixes.  
(don't go nuts and use /120's, unless you like seeing address collisions;  
DAD is designed to handle that -- and does, but it can take a few rounds  
to find a free address. I've used /96 on a LAN with ~100 machines without  
issue.)

Back to the main theme... artificially cutting the address space in half,  
just makes the point even stronger. IPv6 address space is, in fact, half  
as big as people think it is, because we've drawn a line at /64 -- and the  
catastrophic part is people *ARE* wiring that into hardware. Every example  
I've seen people bat around about just how big 2^128 is, ignores the  
reality of Real World Networking(tm). They ignore infrastructure. The  
ignore route table size. They ignore the sparse nature of hierarchical  
address assignment. In the "10B people === 10B /48's" example, that's a  
dense PI allocation scheme that will lead to a global routing table  
approaching 10B routes -- you can't aggregate a random selection of /48s  
-- with zero consideration for how those 10B networks will interconnect.

The simple truth is, we're doing the exact same thing with IPv6 that we  
did with IPv4: "The address space is so mind alteringly large we'll never  
use even a fraction of it." *pause* "Umm, wait a minute, we're carving  
this turkey up alarmingly fast." Will we use up the entire thing? Of  
course we will; it's not, in fact, *infinite*, so we *will* eventually  
assign all of it. It's going to happen a lot faster than most people  
think, as we're so cavalier with handing out vast amounts of space for  
which most people will never use more than (a) one LAN, and (b) a few  
dozen addresses within that single LAN. Will it happen in 5, 10, 100  
years? The later is a safer bet. (not that I'll be around to collect) But  
just like IPv4, some decades down the road, people will see how stupid our  
allocation scheme really is, and begin a new "classless" era for IPv6. The  
short of it is, we got here first, so we don't have to give a shit about  
being efficient or frugal.


More information about the NANOG mailing list