North American Network Operators Group

Date Prev | Date Next | Date Index | Thread Index | Author Index | Historical

uTorrent, IPv6

  • From: Nathan Ward
  • Date: Tue Aug 19 00:56:48 2008

Sit up and pay attention, even if you don't now run IPv6, or even if you don't ever intend to run IPv6.
Your off-net bandwidth is going to increase, unless you put some relays in.
As a friend of mine just said to me: "Welcome to your v6-enabled transit network, whether you like it or not ;-)".




uTorrent 1.8 is out, as of Aug 9.

uTorrent actively enables IPv6 on XP SP2 and Vista machines in the install process (by default, it can be turned off). IPv6 is turned on, on lots of PCs.
uTorrent does DHT, so that uTorrent users will talk to eachother to exchange peers - IPv6 does not require tracker support.
uTorrent (as far as I understand) knows how to set IPV6_PROTECTION_LEVEL appropriately on sockets, so that Teredo is actually used.


What does this mean?

It means that many uTorrent end users will have Teredo addresses, and many will have 6to4 addresses. As we roll out IPv6 globally, more and more uTorrent users will have non-tunnelled IPv6 addresses.
uTorrent users move **LOTS** of data.


This means relay load. There are very few 6to4 relays around the world. There are fewer Teredo relays.
If you run a network today and do not have 6to4 and Teredo relays, traffic between a 6to4 end user and a Teredo end user will go off-net. That costs you money.


So, if you run a network today, deploy 6to4 and Teredo relays, regardless of whether you have customer facing IPv6 or not.
If you serve IPv6 content, you are already running Teredo and 6to4 relays, so that Windows Vista users get near to IPv4-speed access to your IPv6 content, right? Right...



Azureus does IPv6 now, but does not turn on IPv6, and does not set the IPV6_PROTECTION_LEVEL (as far as I understand), so Teredo is not used.
Windows uses 6to4 if you have a non-RFC1918 address, and it uses Teredo if you do not (typically, this means you are behind NAT).
With the huge amount of end users behind NAT, this means that uTorrent will have a much wider effect than Azureus has had.




Running a relay *does not* mean that people outside your network can use it.
- Who uses your 6to4 relay is controlled by how far you advertise the well known IPv4 and IPv6 prefixes.
- Your Teredo relay is used only by Teredo clients trying to get to your non-Teredo connected users (ie your 6to4 or natively connected users).


6to4 relays can be Cisco boxes, Juniper NetScreen, FreeBSD, Linux, etc. OpenBSD does not have 6to4 support.
Teredo relays can be Windows boxes, or Linux/FreeBSD/etc. boxes running `Miredo'.




I have pre-built FreeBSD images that run both 6to4 and Teredo relays, and can talk BGP to your network. They are about 30MB, so will run on a compact flash card, and will happily run on anything from a 133Mhz 468 (ie. Soekris net4501) through to whatever top of the line server you have.

They can also optionally do this "Tui" thing, which uses 6to4 and BGP to build direct IPv6 over IPv4 tunnels to everyone else with one of these boxes, without you having to configure each tunnel manually - I have some central route-servers. Optional, experimental, YMMV, etc.

Thankfully, both Teredo and 6to4 use anycast for relay discovery, so if you have load problems you can deploy more of these for the cost of a server.

As per usual, I'm giving it away free, see the following URL, or contact me off list:
http://www.braintrust.co.nz/tui/
If you don't care about the "Tui" stuff, ignore those parts of the document, the rest will work just fine.




ps. I'm looking at packet dumps of things right now, captured from torrent clients from the last wee while. I'll be rambling about this and pointing at pretty graphs in about a week at APNIC26.

--
Nathan Ward