8 ms·
Because address allocation is inefficient and it is impractical to address this inefficiency in IPv4. ARIN is out but your ISP has extras. Why doesn't your ISP
by msbarnett 11y ago
Because address allocation is inefficient and it is impractical to address this inefficiency in IPv4.
ARIN is out but your ISP has extras. Why doesn't your ISP sell its extras, since a scarce resource should have monetary value?
Routing tables.
Selling individual IPs off piecemeal isn't practical because routers simply do not have enough RAM to handle the enormous routing tables that would resultantly be necessary in order for packets to find their destinations.
- thaumasiotes 11y agoI have a hard time seeing how IPv6 solves this problem. If we allocate them all individually, we have a world-shattering routing table problem. If we allocate them in gargantuan blocks, we have the same problem we have now with IPv4 -- we can't reallocate because routing becomes an impossible task. What am I missing? We're certainly not going to get the allocation right by doing it all at the beginning.
- drdaeman 11y ago> If we allocate them in gargantuan blocks, we have the same problem we have now with IPv4 The problem with IPv4 is that when ISP can't get more, so they have to put some unlucky users behind a NAT. The company I worked for got /21, but we had way more than 2K simultaneously connected users. And, well, we failed the timing to get another allocation, and (I had left since then) is even more unlikely they'll get one those days. IPv6 solves that by making all the blocks giant. With IPv6, when ISP is allocated /48 and allocates /64 per client - comparing to IPv4, it's like everyone gets a mighty /16 block right from the start, so even a tiniest company can grow to 65K users. And if they grow more, there is no problem in getting another subnet, those are not scarce, too.
- ghshephard 11y agoWith IPv6 the smallest allocation an ISP gets is a /32 (and it's pretty easy to get more as the ISP starts to fully utilize that /32). And even a small business can get a /48 from an ISP with almost no questions asked. That means, starting out, a company can grow to 65K networks (each network with effectively unlimited number of nodes on it). And, just as you said, getting another /48 won't be a problem.
- drdaeman 11y agoOuch. Yes. Sorry, you're absolutely right, it's /32, not /48. Was sleepy writing that comment and got numbers messed up in my head :) The logic still stands, it's just that problem's solved by just making everything giant.
- ary 11y agoThere are 2^128 IPv6 addresses. The number of "gargantuan blocks" possible with that many addresses is quite large. The problem of routing the allocated blocks is solved incrementally as needed by network expansion. In the event we need to route more than we can now routers are upgraded or topologies are changed.
- teraflop 11y agoWith both IPv4 and IPv6, you want to allocate addresses hierarchically: network providers get large blocks, and delegate subsets to their customers. The problem is that with IPv4, addresses are scarce enough that customers only get as many as they can justify now (or in the immediate future). When that allocation runs out, they need to get another non-contiguous block. And this problem reoccurs on every level of the hierarchy, so ISPs themselves end up with lots of different blocks. Even if you manage to get a large block to allow for your own future expansion, you're just increasing the pressure on your neighbors. With IPv6, we have enough bits of address space that we can drastically over-provision each level of delegation -- by orders of magnitude, if necessary -- and still have plenty of room to spare. e.g. as a home customer, my ISP gives me a /56 with no questions asked, which means 256 subnets each with an effectively unlimited number of devices. In theory, this means it should become very rare for a single physical or logical network to have non-contiguous addresses. Which in turn means that routing tables can use a single prefix to cover an entire provider, instead of having to know about all of the individual sub-allocations.
- thaumasiotes 11y agoIn your example, your ISP has allocated you well over half the bits in an address. It's true that this is only 1/2^56 of the total space, but you can't overprovision very many levels to that extent no matter how long the addresses are (using the same proportions, the level above "home customer" might have a /25, the level above "ISP" might have a /10, and you could probably have two more levels on top of that with /5 and /2, although I'm not sure there's a lot of value in having a /2 layer protecting the /5. But I don't do internet routing; what do I know? There are some rival pressures here: - IPv6 space is so abundant (and cheap to allocate) that you can have as much as you ask for. This obviously leads to massive overdemand, after which it's hard to reallocate while preserving the idea that everyone who owns space owns one contiguous block. - You can counter that by restricting how much people can ask for. But at that point you're not using the full space; you're restricted to the amount that can be allocated, which is smaller. - Not everyone will be on board with "I'm going to take as much space as I can get, just in case I end up needing a million times as much space as expected." But some of those less-demanding people really will end up with addressing needs in excess of what they anticipated. We could call this the Hofstadter's Law ("it always takes longer than you expect, even after accounting for Hofstadter's Law") of addressing. We can't expect everyone to get things right the first time; we need a working reallocation system. If reallocation doesn't work, abundance alone isn't going to save us.
- msbarnett 11y ago> What am I missing? A few things. There's only 4,294,967,296 addresses in IPv4, so if you hand out giant blocks, you run out quite fast, whereas with 340,282,366,920,938,463,463,374,607,431,768,211,456 you could hand out huge IPv4 /8 sized blocks from now until the heat death of the sun if you wanted to. But there's more to it than that. Right now only 1/8th of the IPv6 address space is "assigned to the internet", so there's effectively 7/8ths being held in reserve for the foreseable future -- this is partially to accommodate realistic router memory limits in the near term. IPv6 also has a more efficient hierarchical routing scheme than CIDR (which was kind of bolted on to IPv4 after-the-fact), which helps keep router tables from consuming terabytes of RAM. And IPv6 is designed to be more easily renumberable when we do make mistakes with assignments, with a clear separation between subnet prefix all that requires is changing the routing prefix. At the end of the day, with 340 trillion trillion trillion addresses, handing out too many isn't ever going to be a big worry in the foreseeable lifetime of...anything, really.
- thaumasiotes 11y ago> At the end of the day, with 340 trillion trillion trillion addresses, handing out too many isn't ever going to be a big worry in the foreseeable lifetime of...anything, really. Well, why can't I have them all?
- msbarnett 11y agoYou'll have to settle for a measly trillion of them
- metaphor 11y agoCertain DARPA-funded emerging technologies[1] will more than likely need just a wee bit more than "a measly trillion". Before spending some time in a wireless sensor net research lab as an undergrad, I had a difficult time imagining the scale of an application that could justify such a massive network address space...probably because I was too focused on trying to visualize what it might look like without considering the possibility that it would be invisible to the human eye. [1] http://www.eecs.berkeley.edu/~pister/SmartDust/SmartDustBAA97-43-Abstract.pdf http://www.eecs.berkeley.edu/~pister/SmartDust/SmartDustBAA9...
- Dylan16807 11y agoLet's say we make a list of all IP allocations today. We could replace each of them with 16 million unlimited-size subnets worth of address space, and we'd still only be using .00004% of IPv6. And that's before we consolidate multiple blocks owned by the same user. There are currently half a million active BGP entries. There's no reason to massively change that number.
- ra1n85 11y agoTo be specific here, RAM is not the problem. It's often on-chip memory/TCAM. RAM is abundant. The place where the hardware actually installs the routes (the data plane/FIB) is often constrained.
- msbarnett 11y agoGood clarification
- BillinghamJ 11y agoSeems it'd be nice to "defragment" the IP address allocations, but totally infeasible since everyone's IPs would change and all the DNS records would point to the wrong places.
- jwatte 11y ago/24 can easily be moved. And if I have 65000 /24s with varying utilization (like Apple,) and could turn that into money by coalescing and adding NAT, that would drive change.