pyvideo.org: Videos of Bob Van Zanthttp://www.pyvideo.org/speaker/401/bob-van-zant/rssen-usSun, 11 Mar 2012 00:00:00 -060050043. What is IPv6 and why does my website I need ithttp://www.pyvideo.org/video/726/43-what-is-ipv6-and-why-does-my-website-i-need-i<p>Abstract</p>
On February 3rd, 2011 the world ran out of the IPv4 addresses that we know and
love. Clearly the Internet has survived even though hardly anyone has deployed
IPv4's successor, IPv6. Drop by to learn about what IPv6 is, why you should
deploy it and some of the hurdles to deployment.
<p>Description</p>
**Background**
On February 3rd, 2011 the world ran out of the IPv4 addresses that we know and
love. The Internet continues to work thanks to technologies like NAT that
enable private IP addresses like 192.168.1.1 and 10.0.0.1 to be reused across
organizations. However, even these large blocks of private IP addresses are
not large enough for large ISPs like Comcast in the United States that give
several IP addresses to each customer (ex. cable set top box, voip, cable
modem).
To continue adding new customers large ISPs have begun deploying two
technologies: IPv6 and large scale NAT.
Large scale NAT is a way for large ISPs to put several of their customers
behind a single public IP address. This means that the one public IPv4 address
you used to have to yourself is now shared by you and several of your
neighbors. It means that as a website owner it is now more difficult to
discern anything useful from the IP addresses visiting your website.
IPv6 solves the address exhaustion problem by moving from approximately 4
billion IP addresses to 3.4×10^38 IP addresses; more than the number of atoms
on Earth. With plenty of IP addresses ISPs can now return to giving out
unique, public IP addresses to each customer.
Many mobile operators are already beginning to deploy IPv6. In 2009 Verizon
issued a mandate that any LTE devices on its network support IPv6 with IPv4
support being listed as optional [1]. An IPv6-only device will still need
access to the IPv4 Internet, however, IPv6 and IPv4 are not compatible.
Providers like Verizon are putting in place protocol translation devices that
inspect Internet traffic going through them and proxy IPv4-only websites to
their IPv6 customers. While this may sound wonderful it means that mobile
providers are inspecting and rewriting your packets. Making things more
interesting is that this won't work securely over SSL. The solution is to
enable IPv6 on your website so that IPv6-only hosts can directly access your
content.
**Joining the IPv6 bandwagon**
Amazon's Elastic Load Balancer supports IPv6 and is already enabled in all
east coast availability zones [2]. If you're already using ELB enabling IPv6
on your website is as easy as making a single DNS change. Or so we'd hope,
there are still some impediments to a world where your site runs seamlessly on
IPv6.
**The user with broken IPv6**
There are people in the world with broken or inferior IPv6 connectivity and a
web browser or operating system that attempt to use IPv6 anyway. What this
means is that if you turn on IPv6 on your website you have the potential to
cut off those users from your site. In this talk I'll discuss methods for
measuring and analyzing this loss before your broadly enable IPv6 so that you
can make an informed decision about when and how to flip the switch.
**Geo IP**
Geo IP libraries today are still coming to terms with IPv6. One vendor in
particular is working on IPv6 but only provides limited support in their free
libraries and not yet in their python driver. In their commercial library, the
one generally considered better, they do not support IPv6 yet due to lack of
data [3].
**IPv6 without Amazon**
At Eventbrite we do development inside of Virtual Box virtual machines. In
this talk I'll discuss how we configure IPv6 on both the host and guest
operating systems so that we can test IPv6 before we push to Amazon.
**IP Address Validation**
If you accept IP addresses from end users check your IP address validation
routines (Django has support, see GenericIPAddressField).
**References**
* [1] [http://www.circleid.com/posts/20090609_verizon_mandates_ipv6_support_for_next_gen_cell_phones/](http://www.circleid.com/posts/20090609_verizon_mandates_ipv6_support_for_next_gen_cell_phones/)
* [2] [http://www.allthingsdistributed.com/2011/05/aws_ipv6.html](http://www.allthingsdistributed.com/2011/05/aws_ipv6.html)
* [3] [http://www.maxmind.com/app/ipv6](http://www.maxmind.com/app/ipv6)
Bob Van ZantSun, 11 Mar 2012 00:00:00 -0600http://www.pyvideo.org/video/726/43-what-is-ipv6-and-why-does-my-website-i-need-i