Case:
Apple is rejecting apps that are NOT compatible with IPv6. If your app utilizes IPv4-specific APIs or hard-coded IP addresses, you will first need to make few changes to make it compatible for IPv6 before submitting your app to the App Store for review.
Good thing is AWS allows us to configure IPv6 to their EC2 instances. But surprisingly GCP does NOT yet automatically support this feature. Currently, Google Cloud Platform (GCP) supports IPv6 clients with HTTP(S), SSL Proxy, and TCP Proxy Load Balancing.
Solution:
Prerequisites:
You will need the correct permissions and have access to change the configuration for the following services:
- Google Cloud VPC External IP addresses
- DNS Server
- Google HTTP Load Balancer
Google Cloud HTTP Load Balancer:
Google Cloud supports IPv6 for HTTP, SSL Proxy and TCP Proxy Load Balancing. The load balancer accepts IPv6 connections from clients, then proxies these connections to your instances over IPv4.
Allocate an External IPv6 Address
Go to the Google Cloud Console -> VPC network -> External IP addresses. Click on “Reserve Static Address”. Fill in the details for your network but make sure you select IPv6 under “IP version”. Click Reserve and wait for the IPv6 address to provision.
Save the IPv6 address. We will need this later to configure the DNS servers and the HTTP load balancer.
HTTP Load Balancer – Configure IPv6
Go to the Google Cloud Console -> Network services -> Load balancing.
Select your load balancer. In my case, I click on “daycarehttp” under Name. This brings up a screen that displays details on my HTTP Load Balancer configuration.
Click on EDIT. This will bring up the “Edit HTTP(S) load balancer” screen. Since the frontend of our load balancer manages IPv6 and not the backend, select “Frontend configuration”.
Click “Add Frontend IP and Port” again. And Configure HTTP & HTTPS IPv6 shown as in screenshot.
Go back to the Google Cloud Console -> Network services -> Load balancing. Wait for the changes to provision. You will see a green checkbox shown as in following screenshot.
That’s It.
DNS Record:
Now last step is to create “AAAA” in DNS Manager(To your domain name registrar).
And finally, you can validate your IPv6 ready website at Website IPv6 accessibility validator.
Thanks.