uTorrent, IPv6

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.

We looked into this, and IPv6 is not mentioned in the install process, and it's not selected by default as far as we can see. There is a button in Preferences->general that says "install IPv6/Teredo", so yes, it supports it but it's not on by default, at least not here.

Oh? I looked in to this in a beta, and it was on by default.
I'll have another look.

Yep, you're right, as I say, that's changed from a previous beta I think.

Anyway, it'll still use Teredo/6to4/native IPv6 if it's already enabled - Vista has these enabled by default.

My guess would be that a large percentage of uTorrent users are Vista users.

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...

You can find info on how to set up relays at ARIN's IPv6 wiki
<ARIN IPv6 Wiki - ARIN's Vault;

--Michael Dillon

My recollection is that there were complaints about them reconfiguring people's TCP stacks and uTorrent stopped enabling IPv6.

- Laird Popkin, CTO, Pando Networks
   http://www.pandonetworks.com
   520 Broadway, 10th Floor, NY, NY, 10012
   laird@pando.com, 646/465-0570.

So you're saying Slashdot *lies*?

  http://tech.slashdot.org/article.pl?sid=08/08/18/226228&from=rss
:slight_smile:

Cheers,
-- jra

Well, IPv6 usage is actually increasing fairly rapidly, anyway:

<http://www.ams-ix.net/technical/stats/sflow/?type=ipv6>

So, still, usage is not very impressive (and some of that might be NNTP traffic), but slant of the yearly graph actually is.

We have seen the same growth curve on the Freenet6.net tunnelling service.
There hasn't been a peak in number of users so it seems people are just
using it more. Our link has actually been maxed out the last two months but
hopefully we will add more capacity soon and then we will see if the trend
continues.

If anyone wants to help drive more IPv6 traffic and wants host a tunnel
gateway for Freenet6 please contact me off list.

Mikael Lind

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 ;-)".

So you're saying Slashdot *lies*?

  Level of IPv6 Usage Is Vanishingly Small - Slashdot

They don't intentionally lie, but the study they are reporting on is uninformed.

For example:
"Our research looked at all IPv6 traffic—both native and tunneled, including Teredo, which encapsulates IPv4 traffic in UDP
datagrams using UDP port 3544. We found a peak of only 12 Mbps of Teredo traffic, representing around 10 percent of the
I P protocol 41 traffic."

Teredo uses 3544/UDP to for Client<->Server communication. That is for relay discovery when needed, and the qualification procedure - not much traffic. Client<->Relay communication MAY use 3544/UDP, Client<- >Client communication MAY use 3544/UDP.

In my experience (packets I have been analysing in the last 24 hours for example) suggests that not many actual data packets are on UDP/3544.
I'll get some exact numbers on that in a few hours if you like.

Also that report only includes data up until July 2008. uTorrent with Teredo and IPv6 stuff was released 9 August - which is the intention for my original message.

Yep, and you're only seeing native data there.

Do you have any bead on how much of the IPv4 data is protocol 41 (I.e. IPv6 tunnelled over IPv4)?

I'm not going to ask you to find out how much of it is Teredo - that requires stateful DPI - but I expect it to be a non-insignificant number.

Those numbers can't be added together, because depending on a couple of factors (ie public relays and things), tunnelled traffic could be counted twice - once when encapsulated, once when native.

Over a 16 hour period, I captured Teredo encapsulated packets. I run my own Teredo server and so on, so I can statically set what my Teredo IPv6 address is.
I'm running Azureus on this, and also on a 6to4 address on the same host. Running DHT so I talk to as many peers as possible.
Azureus DHT uses lots of very small UDP over IPv6 packets (100b or so), so those are my "data" packets. The rest is just Teredo maintenance stuff.
My numbers here are actually low, because of various 6to4 routing things that I don't really care to go in to in too much detail. I estimate that I'm missing 40-50% of the traffic that I'd normally see if I had IPv6 over only Teredo. I'll re-run this test properly when I get a chance, but it'll only make the numbers bigger.

I exchanged packets with a total of 4177 IPv6 hosts.
- 767 hosts were on Teredo.
- 2657 hosts were on 6to4.
- 753 hosts were on neither Teredo or 6to4.
(I have a whole other rant around these vs. IPv4 as well.)

The stats in the document produced by Arbor that was posted on Slashdot suggest 12Mbit/s of Teredo traffic. Their method for determining "Teredo" was to look for 3544/UDP and 3545/UDP.

Of my total 96,148 packets, 27,676 were UDP over IPv6 data packets (ie not teredo maintenance). They are all very small.
- 24,175 (87%) of those 27,676 UDP over IPv6 data packets were on non-well known Teredo ports.
     o 18,436 (76%) of those 24,175 are going through a relay somewhere.

57,624 (59.9%) of the total 96,148 packets were on non-well known Teredo ports. (including Teredo maintenance stuff).
   - 34,766 (60%) of those 57,624 are going through a relay somewhere.

So, somewhere in the region of 60%-87% of Teredo packets were missed by the report.
60%-76% of those packets missed are going through relays.[1]

So, assuming that all Teredo users do small packets, and talk to a large number of hosts like I do (100b or so packets, lots and lots of Teredo maintenance packets), the report misses about 17.9Mbit of data.

If we go to the other end of the scale, and assume that most users do more data than I do (say, they load web pages, do file transfers and things), and talk to fewer hosts, we trend towards the 87% mark, in which case the report misses 80Mbit of data.

So:
1) The report misses 18-80Mbit of total Teredo traffic.
2) The report misses 11-61Mbit of Teredo traffic going through relays. (a sub-set of the total Teredo traffic).

The report observes approx 150Mbit/s peak IPv6 traffic.
18-80Mbit of data is not an insignificant error: 12% - 53%.

So, we know that Teredo is currently under-estimated.
This is when I'm talking IPv6 to other end hosts running an application that doesn't know how to talk to the Teredo stack on Windows hosts[2] (the majority of the remote ends).
So, now that uTorrent 1.8 is out, with it's ability to use the Teredo stack, are we likely to see an increase in that 60-87% percentage, because of Teredo<->Teredo direct communication? Yes, Teredo<->Teredo communication always goes on non-well-known ports. This Arbor report is going to even more out of date, fast.

If you're deploying non-Teredo IPv6 service (native, 6to4, whatever), you're going to have your end users talking to Teredo users, and 6to4 users. This number is going to grow. Get some relays, because the publicly available ones are going to start hurting soon, and any traffic you push through them is going to go slow. Whether you are pushing bittorrent or not, other people will be, and your non-bittorrent traffic will suffer.

ps. maths might be broken, it's late in my part of the world.