Monday, March 8, 2010

App Engine joins the Google over IPv6 Program

The Google over IPv6 program allows ISPs with good connectivity to request IPv6 access for most Google services. In about a week, we'll be adding Google App Engine and the domain to this program. This means that all App Engine apps will become accessible over IPv6 to anyone participating in the program!

For most people, this won't require any changes to your code at all. If your App Engine code reads os.environ["REMOTE_ADDR"] in Python, or HttpServletRequest.getRemoteAddr() in Java, be aware that this value may be an IPv4 address, like "", or an IPv6 address, like "2001:db8::1". Now is the time to verify that your code doesn't make any IPv4-specific assumptions, so that your IPv6-ready users will have a seamless transition.

Some libraries for manipulating IP addresses, should your app require one, include ipaddr and

Q: My app doesn't handle IP addresses at all. Can I ignore this announcement?
A: Yes.

Q: I have a third-party domain hosted through Google Apps and the CNAME. Will this affect me?
A: This particular change only affects domains, but you should still make sure your code is IPv6-safe, as we're always working to add IPv6 to more services.

Q: Will everyone see an IPv6 AAAA record for my app?
A: No, the AAAA record is visible to less than 1% of users, whose ISPs are participating in the Google over IPv6 program.

Q: Does this mean each app will get its own unique IPv6 address?
A: No, we try to keep our IPv4 and IPv6 services as similar as possible.

Q: My ISP isn't a Google over IPv6 participant. How can I verify that that my code doesn't choke on IPv6 addresses?
A: You should include IPv6 addresses in your unit tests. After the launch, you'll be able to use the IPv4-IPv6 Website Gateway provided by the SixXS project. It's accessed by appending to any IPv6-enabled hostname. For example, the "Shoutout" sample app will be visible at

Q: Why does the previous link report a "does not have an IPv6 address" error?
A: That means we haven't launched yet. The delay is meant to give developers time to review their address-handling code.

If you experience any problems with IPv6 serving and App Engine, please report it in the App Engine issue tracker or post about it in the App Engine discussion group.

No comments: