4 ms·
It is nice because it's a xmas display, but it's nothing magic. IPv6 lets you do many things very simply, and it can get very messy too (which is fun by itself!
by devereaux 8y ago
It is nice because it's a xmas display, but it's nothing magic. IPv6 lets you do many things very simply, and it can get very messy too (which is fun by itself!)
They got a /48, and they got some inspiration. You too can get a /48 easily if you want to play! Even if you don't get a /48, you can do some messy play very easily.
My personal experience being messy: when I had to handle multiple containers on one actual computer, I had enough IPv4 addresses (like A.B.C.D) to give one per container, but just a single regular W:X:Y:Z/64 (the suggested minimum default for IPv6, like with SLAAC, while a /56 is often better even for a home network)
The provider wanted some insane amount of money for a decent IPv6 allocation while usually it's the opposite, and IPv4 is expansive but IPv6 is mostly free. I didn't want to use tunnelbroker to keep the latency low.
So I simply assigned W:X:Y:Z:A:B:C:D to each container -- because, why not? Yes it's wasteful, but it's easy to figure out which is which!
IPv6 make many creative things possible and simpler than what the equivalent IPv4 solution would be, simply because of space constraints.
After reading https://blog.donatas.net/blog/2018/12/14/geodns-ipv6-failover/ https://blog.donatas.net/blog/2018/12/14/geodns-ipv6-failove..., among my new year resolutions is setting up a CDN using IPv6. It's mostly to play with BGP.
- qlk1123 8y ago> So I simply assigned W:X:Y:Z:A:B:C:D to each container -- because, why not? Yes it's wasteful, but it's easy to figure out which is which! It makes me curious. Did you apply any service-discovery mechanism in your IPv6-based container cluster? I wonder if IPv6 makes orchestration easier, tougher, or actually things just work transparently.
- devereaux 8y agoNo, I didn't do anything that fancy even if it's what I really wanted in the first place :-) Full story: initially I wanted to do SLAAC with different subnets for the different physical computers. To do that and use the MAC address of the containers in a "standard" way, I would have needed a larger subnet that what the provider even had for sale - but then everything would indeed have been much easier and automatic. In case it's not clear, imagine having W:X:Y::/48 like the xmas tree example, then using Z to identify which physical computer the container is on: then A:B:C:D are automatically derived from the hardware address of the (here virtual) interface. It's also very handy if you have multiple networks - say a wired and wireless setup: use a different value for each network on each site say Z=1 for your wired netword, Z=2 for your wireless, etc. Then you can automatically populate AAAA records like computername.connection.site.yourdomain.com. Why is it cool? Then if you need to check connectivity or push updates or whatever, you can ping6 ceolaptop.wifi.nycoffice.yourdomain.com- but don't worry, that IPv6 address will not be leaked if you are using the privacy additions (lft=0 aka deprecation): this laptop will use a "throwaway" IPv6 access so it can't be tracked (well, at least the mac address part, but good luck finding the needle in a haystack!) See https://en.wikipedia.org/wiki/IPv6_address#Stateless_address_autoconfiguration https://en.wikipedia.org/wiki/IPv6_address#Stateless_address... : A 64-bit interface identifier is most commonly derived from its 48-bit MAC address. A MAC address 00-0C-29-0C-47-D5 is turned into a 64-bit EUI-64 by inserting FF-FE in the middle: 00-0C-29-FF-FE-0C-47-D5. When this EUI-64 is used to form an IPv6 address it is modified:[1] the meaning of the Universal/Local bit (the 7th most significant bit of the EUI-64, starting from 1) is inverted, so that a 1 now means Universal. To create an IPv6 address with the network prefix 2001:db8:1:2::/64 it yields the address 2001:db8:1:2:020c:29ff:fe0c:47d5 (with the Universal/Local bit, the second-least-significant bit of the underlined quartet, inverted to 1 in this case because the MAC address is universally unique).