Facebook’s Awesome IPv6 Address

While teaching a lecture about IPv6 tonight, I was floored when I did a lookup for Facebook: they have a “vanity” IPv6 address!

FACE:B00C

This is tremendously cool! A bit of explanation may be in order. Read on for more.

In IPv4 (the current system on the Internet), an address is generally written as four decimal numbers (between 0 and 255) separated by dots. “10.126.5.34” would be a valid IPv4 address for a private network, for example. But in IPv6, an address is much much longer. So long that they have to be written as eight groups of four hexadecimal digits each separated by colons: “1234:5678:90ab:cdef:1234:5678:90ab:cdef”. And while it is getting a bit technical, the first four groups of digits represent the network portion of the IPv6 address, while the last four groups represent the specific host within that network. Think of the network as like the address to an apartment building, while the host portion represents the apartment number.

Facebook’s IPv6 address, as of this writing, is “2a03:2880:f003:c07:face:b00c::2″. You can see in the fifth and sixth group of digits that the name “Facebook” (with a “c” instead of a “k”) is spelled out in hexadecimal digits. (The double colons are just a convenience; the expanded address would be “2a03:2880:f003:0c07:face:b00c:0000:0002″.)

What is really cool about that is that typically you see IPv6 addresses allocated the other way around (you fill out the host side from right to left), but the “face:b00c” is at the front of the host portion. It suggests they might plan to use that as the leading eight digits of every address in their network. But to be clear, they did not get the “facebook” characters in their network portion (which might have been a trick given how humorless ARIN seems to be) and that anyone could in theory copy what they did quite easily. But the fact that they thought to do it, even though almost no one would notice, is what makes this secret detail quite nice.