Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

A reasonable approach imo would be to let the RIRs assign it, but only to networks that can demonstrate they are running v6.

As regards to the zeroth address on multipoint L2 networks would it really help that much? I’m not sure many people are really gonna see massive improvement squeezing one more host onto subnets. Maybe at the smaller end of things, /30, /29, /28 etc.

Orgs are finding they can stretch v4 quite a lot, with load-balancers, proxies, NATs etc. The bigger headache in my experience is acquiring enough routable ranges to assign 1 for each site. A couple of extra hosts at each seems less critical.



sort by: page size:

This even proposes the use of the zero node address in each network or subnet (6.1)

Ah. That is actually an interesting idea I had never thought of. That said, it has its drawbacks as well - especially when it comes to who owns what. IPv4 are mainly all gone. So even if we tack two bytes onto each address, I'd assume those who got the allocations would get those additional addresses.

One can chose addresses that maximize compressible sequences of zeros. If I were allocated a subnet of 2002:/, I could make my computer's address 2002::2 and my router 2002::1.

Realistically the first 64 bits are going to be very ugly, so I disagree that a v6 will ever be much easier to remember than a v4 address. Especially with the 0 compression being back-ported to v4 stacks, running on the 10. network - You can ping 10.1 as 10.0.0.1 on many stacks now.


With their IPv4 /8 they had 2^24 IPv4 addresses to work with, or, from a network perspective, 2^16 /24 (65K) networks, each network containing no more than 254 hosts.

If they had requested a boring /48 IPv6 allocation (that anybody can have just by asking) - they would have had 2^16 /64 networks, and each network could have had basically an infinite number of hosts.

But, this is the IPv6 world, so I would have expected MIT to claim they were a LIR (Local Internet Registry - equivalent of a small ISP or larger) - and asked for a /32 - which would have given them 2^32 networks - or 4 Billion networks to work with. They probably would have assigned the networks by segmenting them on a per site basis - so each site would have had a /48 assigned, so they could have up to 65K sites, each site having 65K networks, each network having (effectively) infinite number of hosts. That is, a /32 would have been far, far, far larger than their /8 was. Easier to manage as well (no VLSM - nothing ever smaller than a /64) And, keep in mind, with a single, no contest request, they could have gotten the /32 adjacent to theirs (another 4 Billion networks, or 65K /48s) so they could aggregate on a /31.

Instead, they've asked for a /24. And I'm just darn intrigued as to why they think they can make use of such an address space. If they weren't constrained with their /8, then a /32 would have been far more than they ever required. (And odds are a /48 would have been sufficient with even modest address management).

I mean, I work with really large mesh networks, millions of nodes, some of our subnets have 20K nodes each on them - we roll out /48s like they are nothing, and even after deploying a couple hundred customers over 10 years, and 25 million nodes, I think we've used up maybe 1500 /48s.

BTW - this doesn't even take into account that they can use RFC 4193 up the wazoo for all sorts of interesting non-globally routable experimental internal networks.

I"m just hoping someone from MIT is reading HN and will clue us in.


So, if the hosting provider's router supports lowest-address, you'll be able to host two usable addresses on that subnet, at least using Linux, FreeBSD, or OpenBSD (hopefully more OSes in the future).

Maybe we should (be able to) get rid of the broadcast address in this situation too. Cf. RFC 3021 (adding a special case for /31).

(If the hosting provider literally only intends to give you a single address, and insists on giving you a subnet, it should probably give you a /31 instead of a /30, because of the RFC 3021 behavior. Then it's not throwing away addresses for no reason.)


It's too small. /56 should be the minimum unless there are hard technical reasons why you can't do that. My point was that a lot of ISPs seem to think that even /63 is too big, and that's in a 128-bit address space. Surely they would be even more miserly than they currently are if you removed 99.9999..% of the address space?

I was primarily thinking of residential ISPs; business ISPs tend to be a little bit better. That said, datacenters (or rather server/VPS providers) are absolutely terrible. Most of them give you no v6 allocation of your own at all. If you're lucky they let you use as many addresses as you like on your WAN segment, but good luck if you wanted to do a VPN or routed VM subnet.


It's also probably a great way to annoy your RIR when they ask 'how the hell did you burn through your initial IPv6 delegation with only two hosts'

Since /56 seems to become the "easily available standard size" for allocations, using a /64 doesn't seem like to much of an issue, especially since larger orgs should easily get /48s? (But are /64 really accepted as routes? I would have imagined that to be also limited to /56 or /60 or so)


v4.1 host is still addressable from v4 host as long as its address is 32-bit. So they don't start leasing out the longer ones until v4.1 adoption is good enough. In the meantime, you slap in v4.1 hardware without having to even think about it.

You can also make compromises with NAT, like handing out 40-bit addresses that are auto-translated to/from 32-bit with 8 bits going into the port.


> “why is 64 bits not enough?” Here, why not an option?

Because then you don't really have enough bits to do some nice things:

1. It would be nice for your upstream network provider (and you) if they can delegate some network prefix and thus don't need to concern themselves with the address plan inside your subnet. That means, if there is an address collision on your prefix it's not their problem.

2. Assuming you have been delegated a network prefix, having at least 48 bits for within-subnet addressing greatly simplifies self-assigned addresses:

2.1 You can use the data link layer's address (the 48 bit MAC address for ethernet) which often has weak guarantees of uniqueness (though this isn't really advised today)

2.2 You can also randomly generate addresses or generate them by hashing things, and be reasonably confident of not colliding with another station.

2.2.1 Of course, you want to check that no other station is using the same address, but there's always the hidden node problem: How does station C cope with stations A and B both claiming address XYZ?

2.3 You can (if you want) still use DHCP to assign addresses if you want. But you don't have to.

3. It would be nice if each station was not limited to a single address.

3.1 Among other things, having multiple addresses vastly simplifies building a multi-homed network. For example, you can (today) sign up for two (or more!) ISPs that support IPv6 Prefix Delegation and have your router(s) issue Router Advertisements (RAs) for each prefix.

If a link goes down, your router(s) don't need to do anything or share any state... it just works (yes, really, I've tried it!). Each of your routers, of course, only routes packets for the prefix it was delegated by its upstream.

(BTW, IPv6 also has some neat RFCs for letting foreign hosts know about a prefix change, so you can even transfer existing open connections initiated from an address on prefix A through a different router with connectivity on prefix B)

3.2 For privacy, wouldn't it be nice if you could generate a new address for every external server you connect to? You can do that with the 64 bit subnet address space--remember, your ISP has no say about the address plan within your network.

4. With 128 bit addresses, IPv6 allows you to delegate a /64 to yourself from the ULA block (the IPv6 equivalent of 192.168.. or 10...). You can just randomly pick a 57 bit suffix to append to fc00::/7, and you can be pretty darn confident that nobody else will pick the same one. And you get all the same advantages of self-assigned addresses (mentioned above) within that prefix.

4.1 Having a unique* local prefix maybe doesn't sound like such a big deal until you've tried to merge two enterprise networks that both have hosts on 10..., and clients hard-coded to connect to those hosts.

Finally, think about how a 64 bit global address space would be split up:

We're running out of IPv4 addresses, even with* NAT (and "CGNAT", which is just regular NAT with a fancy name). Most of those endpoints are users, not servers--you need at least 30 bits to give one prefix to each household with a current internet connection. Between the expected growth of internet users and all current enterprise networks, you need well in excess of 40 bits for the prefix.

So you'd realistically get no more than /48 prefix at home (16 subnet bits). That's not enough to do the cool autoconfig and privacy things I mentioned. More likely, you'd get a /56 because 256 hosts "ought to be enough for anybody" and you can't do the cool stuff anyway.


/64 is not large--it is only enough to run one network / broadcast domain. It is fine for 90%+ of homes, unless they want to do anything like run a separate guest or IOT network. Hopefully they would be able to obtain larger prefix delegations by simply requesting one with their router.

A /48 for a site allows a decent number of subdivisions along the easily human-readable nibble (16 bit) boundaries. Four characters each can be 0 through f.

A very small portion of addresses have been allocated so far. "According to the IPv6 Global Unicast Address Assignments list from IANA (last updated in Nov 2019), there have been 33 allocations made to the five Regional Internet Registries in total so far. This is equivalent to about 7,396,864 IPv6 /32 subnets which is approximately 0.172% of the total available IPv6 space." https://www.cidr.eu/en/ipv6


IIRC the reason we can't use those is many IP stacks deployed today will refuse to even try using the addresses in 240/4. They were for a future version of IP, not for allocation later.

As a hack, it's quite possible someone will try allocating these and ask everyone to patch their systems over the next half a year to a year as things get more critical and the RIRs begin to run out of /24s. (The RIRs all still have enough /24s to last us for months after the IANA pool gets exhausted.)

We shall see. At the moment, there is no plans to use these. We could also arguably try to steal back the multicast ranges since it's so underused. :\


Thank you for your comments, I'll edit the post accordingly!

I thought the RIR could be assigned a /32 subnet at most (by the IANA), and that the RIR would hand /48 out to ISPs. The book I read on IPv6 is from before RFC6177, perhaps that's where the confusion came from.


Then you are missing the chance to simplify things though.

In IPv6 most ISPs (except very large ones) are assigned one /32, which they can then subdivide how it fits their network. Every LAN gets it's own /64 (now one could debate if that should be smaller or not) and one doesn't really have to think hard how many hosts one expects in that broadcast domain.. do I want a /26 or is a /28 enough?

In addition in the IPv6 case you can get away with a single route in the routing table to reach all the networks of this ISP. Compare this to the IPv4 case where each ISP will have hundreds of /24s. Of course if one starts with multiple sites and traffic engineering that benefit goes away a bit, but still.. for most cases it does help with routing table fragmentation.


Internet-routable (v6) addresses on home LAN is a pretty standard thing and not silly at all. In many places you still get multiple v4 addresses too.

Have you considered getting provider-independent address space and using that instead of ULA? (Or, if it's too difficult to switch now, would you have done that if you could go back and do it all over again?) You sound like a big organization that could easily justify the allocation. I understand small sites, who can't justify the allocation or just don't want to pay the fees, using ULA+NAT to avoid renumbering hassles, but if you're big enough for PI why not use it? It's just as convenient as ULA but is also globally routable so you get to take NAT out of the equation.

Back in the 80s or possibly 90s that might have worked, but an experienced admin today will look at a /24 and go "I can support 16 sites with that", whereas a /64 is really the smallest allocation you should see with IPv6, like a single IP address in IPv4.

It's not about number of addresses available, it's about reflection of organization hierarchy in the octets. The 10.0.0.0/8 range is useful for breaking a distributed company's network up so each major office gets a 10.x.0.0/16, and each department a 10.x.y.0/24.

This is why 192.168.0.0/16 is often used for services like libvirtd, kubernetes and docker. And the use of the range by those services makes it even more unwieldy to try and put some other LAN in there.

You can work around these considerations if you want, but many people won't. When you're the network engineer responsible for designing a company's networks, you'll be wanting to keep things simple and robust. When you're called in at 3am on a Sunday because the network is down, you better hope your ability to recover doesn't require making a bunch of subnet calculations because you decided to try and use the pool of available IP addresses efficiently.


/64 is actually pretty useless since you can't automatically allocate anything smaller than that. If I want to give each host on my net a bunch of addresses (maybe /72) I have to do that manually - DHCPv6/RA/whatever will straight up refuse to allocate anything smaller.

Originally (2002) a /48 per site was recommended in RFC3177.

More recently (2011) RFC6177 took a more pragmatic / softened approach, but it does say:

      - it should be easy for an end site to obtain address space to
        number multiple subnets (i.e., a block larger than a single /64)
        and to support reasonable growth projections over long time
        periods (e.g., a decade or more).
I don't really understand why ISPs choose to be so stingy with allocations. An extra 8 bits of address space to allocate /56 instead of /64 costs them effectively nothing and has considerable operational benefits, simplifies CPE configuration etc. Just minds still living in IPv4 land I guess.
next

Legal | privacy