wiki:org/roadmaps/Tor/IPv6

"Turns out, 4 billion addresses wasn't enough." -- nickm

The work with adding IPv6 support to Tor follows these phases, roughly the same as outlined in xxx-ipv6-roadmap.txt. This page is meant to function as a status page for each of the phases and of the project as a whole.

There's also information about how to help out with testing.

At the bottom of the page can be found a section with pointers to related resources.

The phases and their status

Clients to private bridges (0.2.3.9-alpha)

Private bridges are bridge relays that don't register with the bridge authority (PublishServerDescriptor 0). Support for running a private bridge with an IPv6 OR port and clients connecting to it was added to tor in 0.2.3.9-alpha (2011-12-08).

This work was tracked in #3563.

Note that clients on 0.2.4.{1,2,3} need both ClientUseIPv6 and ClientPreferIPv6ORPort to be set in order to use IPv6 for its first hop due to #6757.

Clients to ordinary bridges (0.2.3.21-rc, 0.2.4.1-alpha)

Ordinary bridges publish their descriptor to the bridge authority. Support for bridge authorities to handle announced IPv6 OR is included in tor 0.2.4.x.

This work was tracked in #4563.

Note that clients on 0.2.4.{1,2,3} need both ClientUseIPv6 and ClientPreferIPv6ORPort to be set in order to use IPv6 for its first hop due to #6757.

Clients to relays (0.2.4.1-alpha)

Relays that are not bridges publish their descriptor to the directory authoritites. Directory authorities vote on relays and publish a consensus document. Support for relays with an IPv6 OR port and for directory authorities to handle their descriptors, voting on them and publishing a consensus containing IPv6 OR ports is included in tor 0.2.4.x.

This work was tracked in #4564.

Exit relays to IPv6 destinations (0.2.4.8-alpha)

Exit relays connect to hosts on internet. Support for exits connecting to IPv6 addresses on internet was included in the 0.2.4.8-alpha release.

This work was tracked in #5547.

Directory authorities on IPv6 (0.2.8.0-alpha-dev)

Clients and relays talk to directory authorities. The work with making directory authorities reachable over IPv6 was merged into 0.2.8-alpha-dev.

This work was tracked in #6027 and #17327.

Fallback directory mirrors on IPv6 (0.2.8.0-alpha-dev)

Clients and relays can also talk to fallback directory mirrors over IPv6. We're currently running an opt-in trial for fallback directory mirrors (#17158).

This work was tracked in #8374 and #17327.

Client bootstrap via IPv6 (0.2.8.0-alpha-dev)

Clients can bootstrap using directory authorities or fallback directory mirrors over IPv6. These fixes also ensure that clients choose IPv6 ORPorts more consistently. We also maintain bridge clients' preference for IPv6, while fixing some of their address selection code.

This work was tracked in #17840 and #17281.

Automatic Client OR connection via IPv6 (0.2.9???)

Configuring Tor clients for IPv6 requires Tor users to know whether IPv4 or IPv6 works better for them. Tor could use a "happy eyeballs"-like algorithm to try both IPv4 and IPv6, and switch between them depending on which one works better.

This work is being tracked in #17217 and #17835.

Relays to relays

Relays talk to other relays. The work with relays talking to other relays over IPv6 has not been started.

This work will be tracked in #4565.

Help testing

If you have the opportunity, please help out testing this.

Please file a bug report in Trac if you find something that doesn't work or seem to be doing the wrong thing.

Testing clients running via IPv6

In order to test a client over IPv6 (without bridges), run tor 0.2.8.0-alpha-dev or later.

Configure it to use IPv6 using the one following sets of options:

For IPv6-only clients:

ClientUseIPv4 0

Or for IPv4/IPv6 (dual-stack) clients that prefer IPv6:

ClientUseIPv6 1
ClientPreferIPv6ORPort 1
ClientPreferIPv6DirPort 1

Testing clients running with bridges

In order to test a client to connect to a bridge over IPv6, run tor 0.2.3.9-alpha or later. Configure it to use the IPv6 bridge using the Bridge configuration option, like this:

    Bridge [2001:DB8::1]:9050

Testing private bridges

In order to test a private bridge running an OR port on IPv6, run tor 0.2.3.9-alpha or later. Configure it to bind to and announce an IPv6 OR port by using the ORPort configuration option, like this:

    ORPort [2001:DB8::1]:9050

Note that you'll have to have an IPv4 OR port configured as well, or your bridge will bootstrap but leave its clients hanging at 50% (see #4847).

Note also that even with that bug fixed, a bridge will need IPv4 connectivity for talking to other relays. That won't change any time soon.

Since mid September 2012 the bridge authority handles IPv6 OR ports.

Testing public bridges

In order to test public bridges, run tor 0.2.3.21-rc / 0.2.4.3-alpha or later. Configure it with an IPv6 ORPort just like a private bridge.

Your bridge will show in https://bridges.torproject.org/?ipv6=True, eventually.

Related resources

Last modified 2 months ago Last modified on May 17, 2016 11:19:50 PM