IPv6 deployment

From Wikitech

IPv6 is a new version of the Internet protocol with a greatly-enlarged address space. Deployment of IPv6 on the public Internet is ongoing.

The success of IPv6 is important for the preservation of the any-to-any internet, a technical characteristic of the Internet which is important to Wikimedia's mission and other decentralized or peer-to-peer information services.

For Wikimedia IPv6 deployment is relatively straight-forward as the majority of the software infrastructure already has solid IPv6 support, but a fairly large number of small technical details must be resolved before full IPv6 support can be realized.

Current IPv6 deployment status

IPv6 network status at Wikimedia

  • The Amsterdam cluster has rich IPv6 connectivity with over 100 IPv6 peers, and 5 IPv6 transit links.
  • The Tampa cluster now has IPv6 connectivity via 2 transit connections as well.

DNS servers

The authoritative nameservers ns(0-2).wikimedia.org all return AAAA records correctly, but due to lack of geolookup load-balancing support (bugzilla:41270) for IPv6, do not have IPv6 addresses, preventing IPv6-only clients from resolving Wikimedia domains properly (unless, as is usual, a caching DNS server with both an IPv6 and IPv4 connection first resolves and caches the DNS records and then makes them available to its IPv6-only clients).

IPv6 production testing at Wikimedia

  • Ongoing testing for clients with broken IPv6 support using client side scripting on English Wikipedia. ipv6and4.labs.wikimedia.org (Decommissioned)

Fully IPv6 enabled services at Wikimedia

Known outstanding technical issues

  • Interaction of broken dual-stack clients and AAAA records.
  • Squid 2 IPv6 client support. (Avoidable by simply using another proxy in front of squid for v6) Squid 3.1 has full IPv6 support, however.
  • MediaWiki user blocking support.

Useful IPv6 enhancements

  • Wikimedia should run local 6to4 and Teredo gateways to avoid the use of third party gateways which are occasionally unreliable, at least for the larger outbound direction. Mark has done some testing/evaluation for running a 6to4 gateway.

statistics related to deploying AAAA records

  • results.labs.wikimedia.org

How to add IPv6 to a node

In site.pp:

 interface::add_ip6_mapped { 'main': }

or

 interface::add_ip6_mapped { 'main':
     interface => 'eth0',
 }