BitTorrent, Transmission and IPv6

Discussion of Transmission that doesn't fit in the other categories
Post Reply
jch
Posts: 175
Joined: Wed May 13, 2009 12:08 am

BitTorrent, Transmission and IPv6

Post by jch »

Some of you may have been hearing about this new-fangled IPv6 thing. Here's a little background information.

Please note that I am not a Transmission developer, just a contributor, and hence none of what I say is an official position of the Transmission team.

The problem with IPv4

IPv4, the protocol currently in use on the Internet, has served us well for 30 years now. Developed in the late 70s, IPv4 was not designed to scale beyond a hundred million nodes or so.

There are probably around one billion nodes on the Internet now. People have managed to get IPv4 to scale by using a trick known as NAT, which consists in hiding multiple nodes behind a single IP address.

While NAT is fine for client-server access, such as the web, it complicates peer-to-peer applications quite a bit. Because of NAT, we're losing our time developing hacks such as port forwarding, uPNP, and various other NAT traversal techniques.

What is more, ISPs have been speaking of putting an additional layer of NAT in the network. When they do that, you'll be unable to do port forwarding yourself.

The solution is to transition to a new protocol that is designed to scale to hundreds of billions of nodes. Such a new protocol, known as IPv6, has been finalised in 1996, and we've been busy implementing IPv6 support in software and hardware since then.

IPv6 and Transmission

Like most BitTorrent implementations, Transmission is able to speak both IPv4 and IPv6 at the same time: if you have IPv6 connectivity, Transmission will speak IPv4 to some peers, and IPv6 to others. The following are implemented over IPv6:
  • peer-to-peer communication;
  • PEX (improved in 1.80);
  • DHT (new in 1.80);
The following do not work yet over IPv6:
  • communication with trackers.
If you're interested in other BitTorrent clients, µTorrent, Azureus, libtorrent-rasterbar and BitFlu have splendid support for IPv6. I have not reviewed any other implementations. (Just to be clear: it doesn't mean that other implementations have poor support, just that I do not know how good they are.)

What's in it for you

If you currently have proper port forwarding set up, there's little or no advantage in using IPv6. If you're behind a NAT that you don't control, however, adding IPv6 connectivity to the machines running Transmission will make you reachable for other IPv6 peers.

How to set up IPv6
  • If you're a customer of free.fr, just toggling the right switch in your FreeBox's configuration will enable IPv6 on your LAN;
  • if you're using a recent Apple router, just togging "6to4" in your router's configuration will enable IPv6 on your LAN;
  • if you're using a recent Unix system (Linux, FreeBSD, Mac OS X, etc.), installing Miredo will connect you to the IPv6 Internet (on Debian/Ubuntu systems, just apt-get install miredo);
  • if you're using Windows XPSP2 or later, you get IPv6 as soon as an application requests it (but Transmission will not enable it automatically yet).
Enabling IPv6 should be safe, but it might cause various networking problems. Please test it for a few days, with an eye to anything that breaks; if that happens, it's easy enough to disable IPv6 again.

After enabling IPv6, you'll want to restart Transmission so that the IPv6 DHT can bootstrap.

--Juliusz
(Not a Transmission developer, just a contributor, and speaking for himself only)
tarr
Posts: 5
Joined: Wed Dec 02, 2009 9:44 am

Re: BitTorrent, Transmission and IPv6

Post by tarr »

It would be nice though if IPv6 could be disabled in the config file, not auto-detected based on the existance of IPv6 interfaces. Including (not) getting IPv6 peers from trackers / dht / ltep.
jch
Posts: 175
Joined: Wed May 13, 2009 12:08 am

Re: BitTorrent, Transmission and IPv6

Post by jch »

tarr wrote:It would be nice though if IPv6 could be disabled in the config file, not auto-detected based on the existance of IPv6 interfaces.
Why do you need this feature? It seems a little exotic to me.

--Juliusz
dkowis
Posts: 1
Joined: Thu Apr 15, 2010 3:39 pm

Re: BitTorrent, Transmission and IPv6

Post by dkowis »

jch wrote:
tarr wrote:It would be nice though if IPv6 could be disabled in the config file, not auto-detected based on the existance of IPv6 interfaces.
Why do you need this feature? It seems a little exotic to me.
Because some times a host runs ipv6 for other things, but you're using an ipv6 tunnel from a tunnel broker, and so you want to be nice to their bandwidth?

I don't think it's all that exotic, especially since I'm trying to fix this problem right now, as most of my bittorrent traffic seems to be going out the ipv6 interface, when I'd rather it went out the ipv4 side.
jch
Posts: 175
Joined: Wed May 13, 2009 12:08 am

Re: BitTorrent, Transmission and IPv6

Post by jch »

> Because some times a host runs ipv6 for other things, but you're using an ipv6 tunnel from a tunnel broker, and so you want to be nice to their bandwidth?

Yes, that makes sense, especially since there's no easy way to work around it at the firewall level (Transmission doesn't use a well-defined port for outgoing connections, ticket #776).

--Juliusz
jch
Posts: 175
Joined: Wed May 13, 2009 12:08 am

Re: BitTorrent, Transmission and IPv6

Post by jch »

> So, if I have an ipv6 address configured in my network settings (OS X), I should be good to go?

Yep, as long as it's a global IPv6 address (starts with a 2 or a 3).

> Please feel free to enlighten us on such issues as blocklists and VPN/Proxies as well.

Sorry, I don't use either, so there's not much I can say.

--Juliusz
Post Reply