In response to offline comments on my February post “How Much IPv6 is There?” I am going to take a brief look at the comparative scale of the MAC address space to the IPv4 and IPv6 address spaces.
The original (and thus most commonly encountered at this time) standard for Media Access Control (MAC) addresses is MAC-48 (now referred to as EUI-48 by the IEEE). The 48 stands for 48-bits, meaning that this space contains potentially 2^48 or 281,474,976,710,656 possible addresses. Therefor:
(2^128) / (2^48) = 1.20892582 × 10^24 times more individual IPv6 than MAC-48(EUI-48) addresses
(2^48) / (2^32) = 65,536 times more individual MAC-48(EUI-48) than IPv4 addresses
Unlike current IP implementations however, MAC addresses are hard split (by standard) into two pieces (similar to the original classful networks in IP). The first piece is called the Organizationally Unique Identifier (OUI) and is 3 bytes (24 bits) long. As the name implies, these are handed out to organizations for their exclusive use. The second three bytes are typically used by these organizations to uniquely identify individual Network Interface Controllers (NICs) produced by said organization.
This means that there are a possible total 16,777,216 (2^24) unique OUIs and each OUI can potentially support the same number of NICs. Because NIC assignments must be unique, some hardware manufacturers have run out of addresses and now posses multiple OUIs. [EUI addresses are used for other things as well, here we focus on their use as globally unique hardware interface identifiers.]
Because there is no way to “subnet” a MAC address and each OUI is purchased and utilized by a vendor as opposed to an end-user, the one to one comparison to the IPv4 space above probably stands as the best contrast. As we discussed in the previous post however, IPv6 as implemented places much less significance on individual addresses which makes the comparison much less valuable. Perhaps looking at the smallest IPv6 subnet (a /64) is more accurate. There are 2^64 (1.84467441 × 10^19) IPv6 /64s in total.
(2^64) / (2^48) = 65,536 times more v6/64s than individual MAC-48(EUI-48) addresses
This is not very accurate though because there will likely be more than one host utilized in most v6/64s. This means that the IPv6 address space is some where between 65,536 and 1.20892582 × 10^24 times bigger than that of MAC (EUI-48) depending on utilization.
To try and narrow that down to get a more tangible number; let’s look at that v6/64. Because IPv6 uses 128 bits, a v6/64 subnet splits the bits right down the middle. This just means that there are 1.84467441 × 10^19 (2^64) of them and each one contains 1.84467441 × 10^19 (the same number) individual addresses. The question here is one of utilization. I would venture a (pretty safe) guess that the average utilization of individual IPs in each v6/64 will be extremely low. I say this because even if every single v6/64 eventually has a v4/8 worth of hosts (roughly 16.7 million) on it, we would only see an average utilization of 9.09494702 × 10^-11 percent, that is .00000000009%. Who wants almost 17 million hosts on a single segment though? I think a likely average is actually much lower than this. Most folks now limit an unrouted segment to a v4/24 which is only 254 hosts in practice. For our purposes, let’s use 16 times that and say that the average number of hosts on a LAN segment will be equivalent to a v4/20. That would be 4,096 hosts per v6/64. Remember that many v6/64s will be assigned to residential broadband subscribers and will have only a handful of addresses on them – even if every appliance has 3 each your only looking at 30 or 40 addresses being utilized.
(4,096 * (2^64)) / (2^48) = 268,435,456 times bigger (IPv6 vs MAC/EUI-48)
Then of course there is the newer EUI-64 standard. Here again the number stands for bit quantity, so:
(2^128) / (2^64) = 1.84467441 × 10^19 times more individual IPv6 than EUI-64 addresses
(2^64) / (2^32) = 4,294,967,296 times more individual EUI-64 than IPv4 addresses
And the actual scale comparison between EUI-64 and IPv6 will again be dependent on utilization. In fact because there are the same number of total EUI-64 addresses as there are v6/64s, the number of hosts per v6/64 will be the number of times that the IPv6 address space is bigger than the EUI-64 space, re-using the 4,096 hosts per v6/64 from above:
(4,096 * (2^64)) / (2^64) = 4,096 times bigger (IPv6 vs EUI-64)
I am not sure if these comparisons are actually of any real use to anyone but it was good exercise anyway. The most useful take away for me is how amazingly small the percentage of actual utilization will be with IPv6 when looking at individual addresses. Even assuming over 4,000 hosts per segment as an average, the utilization would stand at: 0.0000000000000222044605%
(((2^64) * 4 096) / (2^128)) * 100 = 2.22044605 × 10^-14 percent utilization of IPv6 addresses
Interesting article. Thanks for breaking down the numbers as much as you do. I also like how you add in some common sense utilization numbers for perspective.
With every electronic gadget having a NIC in it these days and the onset of mobile computing, I wonder how long before all 2^24 OUIs are used up? :)