15

My business's web site uses the AWS platform. I want the site's visitors to be able to reach my content using the IPv6 protocol. How can I add an IPv6 address?

Chris S
  • 77,337
  • 11
  • 120
  • 212
Jeff Loughridge
  • 1,074
  • 2
  • 7
  • 18

7 Answers7

12

Although EC2 instances are not native IPv6-capable as of this writing, Amazon has implemented IPv6 for its US East (Northern Virginia), EU (Ireland), Asia Pacific (Tokyo), and Asia Pacific (Singapore) Elastic Load Balancers. I’ll demonstrate how to make IPv6 content available using EC2 instances and a load balancer.

Elastic Load Balancer (ELB) Set-up

I'll assume that you are already using a load balancer. (If you want to set one up, follow the directions in the Elastic Load Balancer Developer's Guide at http://awsdocs.s3.amazonaws.com/ElasticLoadBalancing/latest/elb-dg.pdf).

Place a check next the ELB entry so that detailed information appears in the bottom panel. Write down your dual stack name for your ELB. It will resemble a name like dualstack.new-balancer-751654286.us-east-1.elb.amazonaws.com.

Testing DNS

Use dig or nslookup to verify that you get A (IPv4) and AAAA (IPv6) records using the dual stack ELB DNS name. If you are not comfortable with these command-line tools, use a web-based dig such as the one at http://www.kloth.net/services/dig.php.

Create CNAMEs for your domain

I recommend testing on a throw-away domain to avoid potential production outages. The CNAME for www.example.com should point to the dual stack ELB name.

Verification

Visit www.example.com from an IPv6 connected host. Alternatively, you can use http://ipv6-test.com/validate.php to test IPv6 connectivity to your site.

Jeff Loughridge
  • 1,074
  • 2
  • 7
  • 18
8

IPv6 is not available (as of Sep 2013) for EC2; however it is available for ELB. So you can use ELB as a sort of IPv4 gateway, but you can not yet assign IPv6 addresses to EC2 instances.

There is chatter that this may change in the "near future" (whatever that means).

Matthew Buckett
  • 143
  • 1
  • 6
Chris S
  • 77,337
  • 11
  • 120
  • 212
6

You can make the site available with IPv6 (and some other benefits) by proxying your site through CloudFlare CDN.

Marcus Downing
  • 778
  • 10
  • 18
1

You can get a free IPv6 tunnel from Tunnelbroker. It works well with EC2. I've tested it.

Martijn Heemels
  • 7,438
  • 6
  • 39
  • 62
Stone
  • 6,941
  • 1
  • 19
  • 33
  • 4
    "works well" is a pretty subjective phrase. – Chris S Jan 06 '12 at 19:00
  • It works, communication goes in and out, fast, reliable. What else you expect more? – Stone Jan 06 '12 at 19:20
  • Details about operating conditions, e.g. load. A "lowendbox" style VPS might "work well" for some people, but not for others. Geo location might be relevant as well. Many, many variables that influence what might or might not work for you. (I can imagine there's also some disaggreement if "fast" implies latency or bandwidth or both.) – Cornelius Apr 22 '15 at 11:54
  • I have created the tunnel, i got an ipv6 client address for ec2 that is connect to the broker.. However, i couldn't access it from internet. I'm not sure if i'm not doing something wrong. but, i can access the application within ec2. One more thing, i see that network adapter settings ipv6 connectivity is set to **no network**, IPv4 is alone connected to the internet – Keerthivasan Sep 20 '16 at 10:58
1

IPv6 now generally available

We’ve been working to add IPv6 support to many different parts of AWS over the last couple of years, starting with Elastic Load Balancing, AWS IoT, AWS Direct Connect, Amazon Route 53, Amazon CloudFront, AWS WAF, and S3 Transfer Acceleration, all building up to last month’s announcement of IPv6 support for EC2 instances in Virtual Private Clouds (initially available for use in the US East (Ohio) Region).

Today I am happy to share the news that IPv6 support for EC2 instances in VPCs is now available in a total of fifteen regions, along with Application Load Balancer support for IPv6 in nine of those regions.

by Jeff Barr on 25 JAN 2017

Felipe Alvarez
  • 183
  • 2
  • 12
0

AWS EC2 instance still receive RFC1918 IPv4 address space but if you have the web service behind an ELB then there is the dualstack and ipv6 prefixed hostnames for the ELB instance that provide dual IPv4/IPv6 and only IPv6 access. The communication between the ELB and the EC2 instance will still remain as IPv4 but the client connecting via IPv6 will not see anything different unless the web application you're hosting specifically looks for the IPv6 address.

Jeremy Bouse
  • 11,241
  • 2
  • 27
  • 40
  • I would add that you'd likely want to configure your web server to look at the X-Forwarded-For value to see which visitors use IPv6 to reach your site. – Jeff Loughridge Jan 06 '12 at 19:11
  • 1
    Yes, there are several modules (mod_rpaf & mod_extract_forwarded)to assist with that along with the changes in the newest versions of Apache2 (mod_remoteip) that will actually make doing this a lot easier. Not just with IPv6 but with AWS ELB in general. – Jeremy Bouse Jan 07 '12 at 01:26
0

Last time our goal was to migrate Python Django application from Linode server to Amazon EC2-VPC. At first I read a lot information over Internet about EC2 instances and notice that EC2 VPC doesn't support IPv6 at this time.

Yes, we know that it maybe possible with ELB and EC2-Classic, but we don't have ability to setup EC2-Classic, because our accout newer that required by Amazon for EC2-Classic. It was big problem, because we like AWS infrustructure and RDS database style, but we need to get IPv6 in our application.

After time of thinking we decide to make Linode server, that already has IPv6 support, as proxy. In our nginx config on Linode we proxy all traffic to the EC2-VPC Django application on port 9099 also we get static from the EC2-VPC:

    location /static/ {
            proxy_pass http://--AWS_IP--/s6/;
    }

    location /media/ {
            proxy_pass http://--AWS_IP--/m6/;
    }

    location / {
            proxy_pass http://--AWS_IP--:9099/;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_read_timeout 4000;
    }

In our EC2-VPC we make our Django application on port 9099 and make it accessible external, also at the Amazon Console we allow port 9099 accessible external too, because we need that our Linode nginx be able to send traffic here. Also don't forget to send static and media from EC2-VPC to Linode, by nginx:

    location /s6/ {
            alias /home/django/static/;
    }
    location /m6/ {
            alias /home/django/media/;
    }

Finally we point AAAA DNS record to the Linode server and A DNS record to the EC2-VPC, and all works good. All traffic comes to EC2-VPC, Real IP stored in X-Real-IP header. Actually I think Linode server maybe expensive to make it just as proxy if you don't have any other applications on it. So it's possible to use any server that has proxy feature and IPv6 support of course.

My original post : Receive Ipv6 Traffic On Amazon Ec2 Vpc

David Makogon
  • 2,767
  • 1
  • 19
  • 29