uTorrent, IPv6
Nathan Ward
nanog at daork.net
Tue Aug 19 04:56:33 UTC 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
More information about the NANOG
mailing list