Just after 18:00 UTC 19 July 2016, we published our first set of AAAA records in DNS, making bitbucket.org and its associated hostnames available to the world over IPv6. We’re taking a dual-stack approach here, so IPv4 addresses will continue to work for the foreseeable future – but any IPv6-only systems you manage will now be able to access Bitbucket APIs and repos, and any systems that work with both IPv4 and IPv6 will have additional routing options which may improve network performance. This also makes it easier for us to handle new networks and clients, especially as new IPv6-only systems come online.

IPv6 traffic picked up as soon as DNS servers started seeing AAAA records.

Most people will not have to do anything different to use our IPv6 addresses: in fact, if your local network and ISP both support IPv6, then you may already be using IPv6 to reach Bitbucket. However, some people may need to update their firewall configurations to permit the following destination IPv6 addresses for bitbucket.org:

2401:1d80:1010::150

2401:1d80:1010::151

2401:1d80:1010::152

2401:1d80:1003::150

2401:1d80:1003::151

2401:1d80:1003::152

Firewalls should also permit the following destination IPv6 addresses for api.bitbucket.org:

2401:1d80:1010::153

2401:1d80:1010::154

2401:1d80:1010::155

2401:1d80:1003::153

2401:1d80:1003::154

2401:1d80:1003::155

These addresses are listed alongside their IPv4 equivalents in our public documentation. We’ve also added IPv6 support for altssh.bitbucket.org, 2401:1d80:1010::15f and 2401:1d80:1003::15f, in case you need those, and set up forward and reverse DNS for all of our allocated IPv6 addresses.

Our IPv6 work started as a ShipIt project by some members of our Network Engineering team, using a proof-of-concept implementation on Bitbucket in a live demo. We had to perform a number of network and infrastructure upgrades (including new IPv4 addresses) before we could start using IPv6 for real, but once those upgrades were done we moved pretty quickly through testing, preparation, and deployment.

The best part of this whole IPv6 rollout, though, is that nobody would have noticed it if we hadn’t said anything. The Happy Eyeballs algorithm has done much of the heavy lifting here, seamlessly moving millions of sessions to IPv6. Our support team has seen a couple of tickets about IPv6-specific routing difficulties, but they were able to resolve or work around the issue within minutes. (If you’re also having problems due to IPv6 routing, then please contact us at support@bitbucket.org for assistance.)

We’re very glad that this has gone so well, and that we can take the lessons we’ve learned deploying IPv6 to Bitbucket and apply them to other Atlassian products. Stay tuned for more updates on infrastructure projects!

Yes, that’s true. As you can see from that CNAME, we aren’t hosting this blog in-house; we’re also not hosting our DNS or CDN in-house, and we’ve only brought our status page in-house in the past week or so.

I’d love to have our full complement of services available on IPv6 right now, but it’s non-trivial to move some of these third-party services. Better to do what we can now, and then bring the rest up to speed somehow.

WPEngine supports IPv6, but this blog shares its account with several other Atlassian blogs. I’m already working on getting those other blogs on-board with a dual stack, but (as I said above) it isn’t trivial.