Miredo: Teredo IPv6 tunneling for Linux and BSD

2021 news archive

04th June 2021 - teredo.remlab.net suspended indefinitely
The default Miredo configuration uses teredo.remlab.net as Teredo server. The service has been terminated permanently (without advance notice).
In practice this means that Miredo is no longer usable. The source code and documentation will be kept here for historical reasons.

2013 news archive

23rd May 2013 - Miredo 1.2.6
This fixes compilation on some systems and adds locale support for simplified Han Chinese.

2012 news archive

3rd March 2012 - Miredo 1.2.5
This fixes compilation with latest GNU automake versions, adds rudimentary support for systemd on Linux, and automatically loads the tunnel driver on FreeBSD.
3rd March 2012 - mailing list suspended
Due to technical problems, the miredo-devel mailing list is suspended until further notice. Sorry for the inconvenience.

2011 news archive

5th July 2011 - Miredo 1.2.4
This adds support for POSIX search trees as a better fallback if libJudy is absent.

2010 news archive

10th April 2010 - Miredo 1.2.3
This fixes problems with pointer aliasing that could yield incorrect code depending on the compiler.

2009 news archive

5th November 2009 - Miredo 1.2.2
This fixes signal handling.
21th October 2009 - Miredo 1.2.1
This fixes a deadlock when Miredo fails to initialize properly.
8th August 2009 - Miredo 1.2.0
This fixes some more FreeBSD problem. The 1.1-1.2 branch of Miredo is now the new stable/maintenance branch.
18th July 2009 - Miredo 1.1.7
This fixes a major crash regression in version 1.1.6, a few (theoretical) race conditions, and improves FreeBSD support.
13th April 2009 - Miredo 1.1.6
This fixes the Teredo server to interoperate with Windows Vista. It also fixes compilation on some FreeBSD systems. teredo.remlab.net is already updated, so Vista clients should now be able to use it as their Teredo server.

2008 news archive

16th February 2008 - git migration
Miredo source code tree has been migrated from Subversion to git. You can access the web interface here.

2007 news archive

8th November 2007 - Miredo 1.1.4
Fix scripting problems on Fedora.
17th October 2007 - Miredo 1.1.3
Fix for a major hole punching regression in versions 1.1.0-1.1.2, and improved debug messages.
13th September 2007 - Miredo 1.1.2
Fix miredo-server breakage in versions 1.1.0-1.1.1.
2nd September 2007 - Miredo 1.1.1
Fix padding problem on some architecture (such as old Linux ARM ABI).
19th August 2007 - Miredo 1.1.0
This is a test release with initial symmetric NAT traversal support, and various other minor enhancements and fixes. Note that it might not work too well on non-Linux systems - BSD support will be fixed later as the 1.1.x branch matures.
13th August 2007 - 2000th commit
Miredo source tree reaches 2000 changesets as development continues.
8th April 2007 - Miredo hits Debian stable
Debian Etch has been released today. Miredo 1.0.4-2 is included in the huge package lists. This is Miredo version 1.0.4 with the critical and security fixes from releases 1.0.5 and 1.0.6. The same package is also in Ubuntu Feisty (in the universe repository), so it should be available in a stable Ubuntu release pretty soon.
21th February 2007 - Miredo for MacOS X
Robert Quattlebaum released Miredo for OSX Preview 2, which is a MacOS X package including Miredo, tuntap-osx, libJudy and a MacOS X specific configuration UI. The package also provides universal binaries, so you can run it on both PPC and Intel Macs. More infos on his website.

2006 news archive

31th December 2006 - Miredo 1.0.6 security fix
Latest stable release 1.0.6 includes a security fix, plus a build fix for Mac OS X.
16th December 2006 - Miredo 1.0.5
Another mostly-bugfix release. In particular, reachability issues with some native IPv6 nodes (due to too small hop limit) have been fixed, as well as a severe timing bug depending on compiler optimizations. The ISATAP tunnel has also been improved, though it remains experimental.
11th October 2006 - Microsoft patches Windows XP Teredo
The patch is available via Windows Update and fix usage of Teredo with the standard prefix. In other news, Miredo 1.0.4 is out.
5th October 2006 - Miredo 1.0.3
This release cumulates all kind of minor fixes (particularly portability ones) ever since version 0.9.8. The most noticeable change in 1.0.3 is a work-around to use the Microsoft Teredo servers.
3rd October 2006 - Miredo enters Debian
This time, the miredo package made it past the NEW queue, and into the unstable/sid distribution. It should be included in Debian Etch whenever it is released.
13th August 2006 - official FreeBSD port
Andreas Kohn has contributed Miredo 0.9.8 to the FreeBSD ports tree. The net/miredo port supports both FreeBSD branches 5.x and 6.x.
12th August 2006 - release candidate version 0.9.8
Lots of progress has been made toward, and version 1.0.0 should be out pretty soon.
16th June 2006 - Gigabit-grade Miredo 0.9.4
Further enhancements to the Teredo tunneling library brings about 30% extra performance compared with previous releases. My 3-years old laptop can now encapsulate more than 48,000 packets/s and decapsulate as many in the same time. Alternatively, it can encapsulate more than 410 Mbits/s and also decapsulate the same amount simultaneously. That means any decent server running Miredo could likely saturate two gigabit NICs if it needed two.
Who said userland tunneling was slow?
14th June 2006 - faster Miredo 0.9.3
Public release 0.9.3 includes several performance-focused improvements, as well as a bunch of minor bug fixes. It is probably more stable than version 0.8.5, though it hasn't quite undergone as much testing.
20th May 2006 - Miredo added to RPMforge
Dries Verachtert has added RPM package of latest stable Miredo release at RPMforge.net, meaning Fedora core users can now get precompiled binaries easily.
14th May 2006 - Miredo 0.8.5 security fix
Latest stable release 0.8.5 includes a security fix, plus support for Mac OS X.
10th May 2006 - Mac OS X now supported
Thanks to the help of André-John Mas, latest miredo version 0.9.1 supports Mac OS X (Tiger and Panther). This release also includes the already announced ISATAP router, and improved multi-threading support. Because of this threading change, it is not considered as stable as branch 0.8.x (i.e. version 0.8.4 at the time of writing).
6th May 2006 - miredo-devel mailing list created
A mailing list was setup for developers, packagers and involved users. Click here for details.
1st May 2006 - Experimental multi-threaded Miredo
Today saw the introduction of a real multi-thread implementation of the Teredo tunnel (relay/client) component within the development tree. This should at least allow a little performance improvement on bi-processor systems.
24th April 2006 - Miredo project unleashes ISATAP server
An extra working proof-of-concept ISATAP server for Linux, “miredo-isatap”, based on libtun6 (Miredo’s IPv6 tunnel driver abstraction layer) and Miredo has been included in the development source tree. The main idea was to show that libtun6 was a reusable component, but this is nevertheless the only working ISATAP server for Linux 2.6 that I know (note that it cannot serve as an ISATAP client, at least not yet). It was succesfully tested with Microsoft Windows XP SP2 as a client, and radvd in UnicastOnly mode running on the tunnel interface.
15th April 2006 - New development branch
Unstable development 0.9.x was forked from the (somehow) stable branch, following the release of stable version 0.8.2 yesterday (UPDATE: bug fix version 0.8.4).
8th April 2006 - 0.8.1 security update
Insufficient checking in parsing of Router Advertisement has been fixed. A non-Teredo IPv6 node impersonation bug toward Teredo clients due to insufficient input validation (detailed advisory here), a rare segmentation fault at exit, and problems with PID file locking and deletion were fixed.
miredo-checkconf, an additional program to check the configuration file syntax, was added.
30th March 2006 - Italian ISP ITGate advertises Teredo
Marco d’Itri from ITGate set up a miredo-based global Teredo relay (at AS12779). Thanks to that, you can access the IPv6 Internet flawlessly with Miredo as a Teredo client.
On Windows, you will need to merge TeredoPrefix.reg to support the permanent Teredo prefix, and TeredoClient.reg to use a Teredo server advertising the permanent prefix with your system registry (until Microsoft somehow reacts to address this issue).
19th March 2006 - Important notice: server change
Miredo testing Teredo server now has a new DNS name: teredo.remlab.net. The old name (teredo.via.ecp.fr) will remain valid for about at least one month.
The prefix advertised by the Miredo server has also been updated. Starting today, it is IANA-blessed permanent Teredo prefix 2001:0::/32, instead of the experimental Microsoft prefix (3ffe:831f::/32).
Anyway, the experimental prefix does not work properly anymore (except for subscribers of Wanadoo France broadband ADSL Internet service, which should use teredo.ipv6.wanadoo.fr as their Teredo server).
Note that if you are using Microsoft Teredo client (from Windows XP/2003), you will need to obtain an update from your vendor. The Teredo client will otherwise not accept the permanent Teredo prefix as valid.
10th March 2006 - Thousandth commit
The thousandth Miredo source tree changeset was commited today.
28th February 2006 - Miredo enters NetBSD-current pkgsrc
Rui Paulo added Miredo 0.8.0 to NetBSD-current package list. Miredo would not previously work on NetBSD insofar as the tunnel driver of its kernel did not support IPv6.
2nd February 2006 - First stable release, 0.8.0!
Miredo 0.8.0 is available for download. It includes the official Teredo prefix as specified in RFC4380, and a minor fix for /proc on Linux.
Starting now, Miredo development will probably fork in two branches :
2nd February 2006 - RFC 4380
The Teredo protocol was finally published as a proposed standard by the IETF.
17th January 2006 - Teredo prefix is... 2001:0000::/32
It came to my attention that IANA finally assigned the permanent Teredo prefix from its reserved testing, experimental and trial usage range last week. See ipv6-unicast-address-assignments.
That probably means the Teredo RFC will be out fairly soon as well.
12th January 2006 - Miredo 0.7.1
The peers list can now use Judy dynamic arrays, so that it can typically handle about one million peers instead of one thousand. It also includes a garbage collector, and is properly emptied when the connection resets. Echo Requests and Teredo bubbles new timings obey Teredo draft 05 better. Debug-specific code is no longer forcefully compiled in.

2005 news archive

30th December 2005 - Miredo 0.7.0
This release can generate ICMPv6 unreachable errors when appropriate, improves handling of timers, can retry DNS resolution when the Teredo server fails, uses HMAC for authentication instead of consuming the system’s entropy pool, improves handling of ICMPv4 errors, and includes many cleanups and optimizations.
11th December 2005 - Miredo 0.5.6
A major bug, introduced in version 0.5.1, whereby different IPv6 addresses would be considered equal was fixed.
19th November 2005 - Miredo 0.5.5
This release tentatively works on the Darwin kernel (Mac OS X).
16th November 2005 - Teredo Internet draft in progress?
There seems to be some activity around the fifth Teredo Internet draft, which was approved as an Internet Standard in May, and was seemingly stuck at IANA. Maybe, we’ll know the permanent Teredo prefix shortly.
10th November 2005 - Miredo 0.5.4
A major bug that could prevented Teredo client to Teredo client communication was fixed.
8th November 2005 - Miredo might enter Debian
Matt Brown filed an ITP against Miredo for the famous Debian distribution.
23rd October 2005 - Miredo (re)enters OpenWRT
Nicolas Thill included Miredo (0.5.3) in the official OpenWRT development trunk, an embedded unofficial firmware for Linux-based routers and access-points. Miredo should be officially included in the next release candidate.
18th October 2005 - Wanadoo France experiments Teredo
Wanadoo started an IPv6 experiment for its DSL users. It includes Teredo, Tunnel Broker and (soon) native IPv6/PPP. The good news is that Teredo works again... for Wanadoo DSL subscribers. The very bad news is that, even if someone capable wanted to set up a global Teredo relay again, it would fail because Wanadoo is doing just that, but blocking access to non-subscribers. The immediate consequence is that Teredo will not work for anyone but Wanadoo France DSL subscribers for now.
9th October 2005 - Miredo 0.5.3
This release includes some optimizations. In particuluar, the per-peer memory footprint was reduced.
23rd August 2005 - Miredo 0.5.2
Packet loss in now properly handled (plus some other connectivity fixes). The Teredo server is now multithreaded.
17th June 2005 - Miredo 0.5.1 is out
A few code optimizations were done, and minor bugs were fixed. Additionnaly, Miredo now runs well on FreeBSD and OpenBSD. Finally, the default route for Teredo clients now has a bigger metric so that other IPv6 connectivity medias will be automatically preferred if available.
6th May 2005 - Miredo 0.5.0 released
Teredo maintenance procedure is finally implemented correctly, as well as connectivity loss detection. Server authentication token is renewed every hour as a security measure. A safe work-around to reach peers that rejects ICMPv6 Echo Requests was added. Some options were added, and minor bugs fixed. Finally the Teredo server component is now separated and built in a separate program.
2nd May 2005 - Miredo 0.4.3 released
Insufficient checking in parsing of Router Advertisement has been fixed. It could be used by a malicious Teredo server to cause the Teredo client to enter an infinite loop, effectively triggering a denial of service against the Teredo client. See advisory for details.
29th April 2005 - Miredo 0.4.2 released
A bug that sometimes prevented proper Teredo connectivity when using Microsoft Teredo server was fixed in this new release. Connectivity loss detection was reworked and re-enabled. Additionnaly, it is now possible to override the Teredo server to be used from the command line.
17th March 2005 - Miredo 0.4.1 released
That new version includes fixes for a few issues discovered in 0.4.0, including proper support for Grsecurity patch for the Linux kernel, as well as a work-around for a kernel panic bug that would be triggered by Miredo on VMware (however, as the bug relies in the kernel, not in Miredo, I can’t fix it myself).
8th January 2005 - Miredo version 0.4.0 released
As of version 0.4.0, Miredo uses a configuration file for its settings. There are also some minor bug and security fixes and performance improvements.

2004 news archive

17th December 2004 - Miredo version 0.3.2 released
This minor update includes safer default security settings and a compile fix for the *BSD operating systems.
4th December 2004 - Scheduled servers downtime
My download server (people.via.ecp.fr) and testing Teredo server (teredo.via.ecp.fr) will be down this week-end, because of a major power supply maintenance. Sorry for any inconvenience.
2nd December 2004 - Miredo version 0.3.1 released
This release is easier to install, provides POSIX.1e capabilities support, internationalization through Gettext and can maintains a PID file.
30th October 2004 - Miredo version 0.3.0 released
This release provides proper queueing of IPv6 packets, which fixes various connectivity issues. A default route through the tunnel for Teredo clients is automatically added. Darwin (Mac OS X), OpenBSD, and NetBSD may be partially supported. Some bugs were fixed.
27th October 2004 - Miredo test server back online
teredo.via.ecp.fr (now 138.195.157.222) is back online, running Miredo and provides a Teredo server for testing purposes.
20th October 2004 - Ethereal 0.10.7 - updated Teredo dissection
That new release of the most famous network protocol analyser includes an updated Teredo dissector. Ethereal can now dissect authenticated Teredo packets properly. Besides, an optional heuristic detection for Teredo packets has been implemented, so that Teredo packets can be dissected even when they are not on UDP port 3544. That is often the case for client-to-client communication.
19th October 2004 - World-wide Teredo relay back online
It looks like the South-Korean National Computerization Agency is advertising the Teredo prefix again. Though it is fairly slow from Europe and America, Teredo can now be used to connect to the entire IPv6 Internet thanks to that relay.
15th October 2004 - Miredo version 0.2.2 released
This release includes some compatibility fixes. Upgrade if you had trouble with the previous release.
25th September 2004 - Miredo version 0.2.1 released
A new release of Miredo has been published. It includes several important bug fixes against version 0.2.0 when using Miredo as a Teredo server, and some compatibility fixes with Microsoft and ng_teredo servers when using Miredo as a Teredo client.
11th September 2004 - Subversion repository back online
Miredo source code can now be checked out with Subversion at svn://miredo.via.ecp.fr/miredo/trunk
30th August 2004 - Miredo version 0.2.0 released
A new release of Miredo has just been published. The most important feature is the support for Teredo client. It also includes many fixes and support for Teredo relay behind a restricted NAT.
30th August 2004 - New website
The website got updated and improved quite a lot, though it is still far from perfect. I am clearly no Web page design expert.
30th August 2004 - Stopping SourceForge CVS
I will no longer be using SourceForge CVS service for this project. It is too slow, anonymous access is often down... and, it is CVS. Miredo will now be using Subversion. The repository should be made publicly available within one or two weeks.
29th August 2004 - Initial Teredo client support
Miredo can now run as a Teredo client! Look for the upcoming release...
19th August 2004 - New hardware
I’ve finally got new hardware. I may be able to restore the testing Teredo server (probably mid-September).