Blog

Enable IPv6 for Your Edge Hostnames

May 4, 2020 · by Erik Nygren ·
Categories:

Akamai delivers terabits per second of IPv6 traffic on a daily basis with peak of 21 terabits per second in February 2020. IPv6 is a network layer protocol that allows the exchange of "packeted" data from device to device. Check out our latest blog post, "An Introduction to IPv6" for more background. 

The default when you create a new Akamai property hostname is to have IPv6 enabled. However, for properties created before that was the default, we have improved your capabilities. You can now enable IPv6 for existing delivery properties on Akamai via the Akamai Control Center Edge hostname functionality.

Enable IPv6 via Akamai Control Center

  1. Log in to the Akamai Control Center.

  2. Under the CDN section of the main menu, select Edge hostnames (once you're logged in, you can use this link).

    edge hostnames

     

  3. Use host, nslookup, or dig commands to see where each hostname points to and determine which hostnames need IPv6 enabled. 
     

    edge hostname

     

  4. Within the Edge Hostname Editor interface, select an “Edit Edge Hostname.”
    Note: Select “See all related properties” to see if any other hostnames have been specified as pointing to this Edge Hostname.
     

    edge hostnames

     

  5. Change the IP Version to “IPv4 + IPv6” to enable the dual stack. 

  6. Save and your changes should take effect shortly (DNS TTLs affect how long it may take for the change to fully take effect.).

The rest of this post will go into this in much more detail, including an example of how to use Akamai’s OPEN APIs to dual-stack properties.  At the end we also provide details about how to enable IPv6 for some other Akamai products.

Enable IPv6 via Akamai APIs

Using APIs to enable IPv6 makes it easier to make changes in-bulk or using scripts. If you’ve never used Akamai APIs, you can get started using our API guide. 

  1. Create an API client with the Edge Hostnames API (HAPI) READ-WRITE access

  2. Add your credentials to the [default] section of your ~/.edgerc. For more details, you can reference the Edge Hostnames API documentation.

  3. To edit Edge hostnames, you can use the Edge Hostname PATCH functionality. Create a patch file named switch-to-dualstack.json containing:

    [
    {
      "op": "replace",
      "path": "/ipVersionBehavior",
      "value": "IPV6_IPV4_DUALSTACK"
    }
    ]

  4. To enable IPv6 to an existing Edge hostname you can again use httpie. 

    http --auth-type edgegrid -a default: :/hapi/v1/edge-hostnames

    Note: Keep in mind a few variables.
         - {dnsZone} is the Edge hostname suffix (ie. edgesuite.net, edgekey,net, or akamaized.net).
         - {recordName} is the Edge Hostname prefix (ie. www.example.com).
         - {optionalEmail} is an optional email address that can receive notifications whenever a change is complete.
    For example:

    http < switch-to-dualstack.json --auth-type edgegrid -a default: 
    PATCH ':/hapi/v1/dns-zones/edgesuite.net/edge-hostnames/www.example.com?
    statusUpdateEmail=alyssa.p.h@example.com' 
    'Content-Type: application/json-patch+json'

    More generally:

    http < switch-to-dualstack.json --auth-type edgegrid -a default:
    PATCH ':/hapi/v1/dns-zones/{dnsZone}/edge-hostnames/{recordName}?
    statusUpdateEmail={optionalEmail}'
    'Content-Type: application/json-patch+json'

Your changes should take place shortly!

A Few Tips

  • Filter out a list of IPv4-only hostnames.
    This enables you to see which ones need IPv6 enabled. You can use the  jq tool and the following command to create this filter:

    http --auth-type edgegrid -a default: :/hapi/v1/edge-hostnames \
      | jq '.["edgeHostnames"][] 
              | if .ipVersionBehavior == "IPV4" then . else empty end 
              | "dns-zones/"+.dnsZone+"/edge-hostnames/"+.recordName '
  • Change the DNS TTL at the same time as editing the IP Version.
    Note: You will likely wish to restore the DNS TTL to a higher value once your change has rolled out and has been stable for awhile.
  • List all hostnames associated with a property.
    Use the PAPI API to list the hostnames associated with a property along with the associated edge hostnames that have been specified.

We hope this is a helpful guide to getting all you can from IPv6!