I'm curious about something so I'm going to throw this thought experiment out here. For some background I run a pure IPv6 network and dove into v6 ignoring any v4 baggage so this is more of a devils advocate question than anything I genuinely believe.
Onto the question, why should I run a /64 subnet and waste all those addresses as opposed to running a /96 or even a /112?
- It breaks SLAAC and Android
let's assume I don't care for whatever reason and I'm content with DHCP, maybe android actually supports DHCP in this alternate universe
- It breaks RFC3306 aka Unicast-prefix-based multicast groups
No applications I care about are impacted by this breakage
- It violates the purity of the spec
I don't care
What advantages does running a /64 provide over smaller subnets? Especially subnets like a /96 where address count still far exceeds usage so filling subnets remains impossible.
Standardizing /64 everywhere is great when you want to immediately figure out which part is the "network number" and which part is the "host number".
The standardization also helps in conserving route table space as the routers don't have to care about the last 64 bits of IPv6 addresses, because you are routing /64 networks around, not the hosts. (I believe that's why people do the "reserve /64, assign /127" thing for P2P links.)
Does it conserve router space? I get what you're getting at but if I have 10 subnets it doesn't really matter from a route table perspective if they're /96 or /64. What matters is subnet aggregation but I'm not sure the size matters?
I think someone will still have to route the /96 networks eventually? Aggregation is helpful for routers located in the upper part of the network hierarchy only.
There's also the problem of service providers "racing to the bottom" if /64 is not standardized, for example some ISPs may choose to delegate /96 instead, or /116, or /120, ... you get it. We still have ISPs assigning people /128 in spite of /64 being standardized everywhere.
Yeah but what I'm getting at is that upper router routing /96s shouldn't be impacted. 10 /96s is basically indestinguisable from 10 /64s in terms of memory consumed. If I'm only using 10 subnets it shouldn't matter what the size of those subnets are as long as the count stays the same. It's when you start deagregating blocks into smaller chunks and consuming more of them than you would otherwise that you start eating table space. I can't think of a situation where someone would consume more /96s than /64s given they're both basically infinite addresses.
...you know...that's a really good point. Honestly this whole thought started because I saw someone adamantly defend not wanting to use an entire /64 and being annoyed Android didn't have DHCP and it got me thinking...if someone genuinely didn't care about the design goals of v6 are there good reasons to stick to them if DHCP works everywhere. Like I care about the elegance...but not everyone does. I've never seen ISPs assign a /128 although I have heard about it. I have seen 1x/64 assignments though which is only marginally better...but if you stop caring about clean /64 subnets then it becomes manageable without having to resort to an NDP proxy.
I personally have mixed feelings on Google's decision with DHCP. On the one hand I understand the frustration as it's not their place to dictate your network architecture...on the other hand I think it's admirable because it might be the one thing keeping that part of the v6 design goals alive when some wish it weren't.
You are right - although I dislike Google in general, the fact that Android supports only SLAAC is most likely the dominating reason why residential ISPs delegate /64 at all.
🤔 I hope you're wrong but also I doubt you are. Ik a lot of people have been making a fuss about Android and DHCP, I do hope Google will stick to their guns on this. I feel like whether they do or not will have a massive impact on the direction v6 goes with subnet sizes in the future. Mostly in business environments which largely haven't deployed v6 yet.