Teredo for MacOS X

Wednesday, February 21, 2007 by darco
Posted in , , ,

As some of you may know, I've been playing around with IPv6 quite a bit lately. One specific IPv6 technology which has gotten me quite excited is the Teredo automatic tunneling protocol. Teredo allows you to obtain a globally routable IPv6 address when you only have access to the IPv4 internet, even if you are behind a NAT router1!

Support for the Teredo protocol is actually in WindowsXP, but it is disabled by default. However, that has changed for Windows Vista—where IPv6 and Teredo are enabled by default2. This is important because this means that relatively soon, widespread deployment of IPv6 will become a reality. This is great for Windows users, but what about other platforms?

Miredo is an open-source (GPL) user-space teredo implementation for linux and BSD. Someone went thru the effort to get miredo to work on MacOS X, but setting it up is not something your average joe can accomplish. What is needed is an installer package.

Well, that's exactly what I'm putting together. I'm releasing a prerelease version of the package today for early-adopters and power-users. You just download it, install it, and you should have IPv6 connectivity.

Prerelease 2
Download Here: Miredo Installer for MacOS X (Universal), and source code

IMPORTANT: This package is a prerelease version intended for early adopters, and is NOT intended for widespread deployment. If you decide to install and use this experimental package, you should subscribe to the miredo mailing list, paying serious attention to any security advisories.

In this release, Miredo does not drop privileges! This means that if a remote code execution flaw is found in miredo 1.0.6, then your machine could be easily compromised. (Miredo usually drops privileges when running, which makes the effects of a remote code execution exploit less damaging) Just be aware of it, and don't "install and forget". Fixed in prerelease 2!

If you want to uninstall, execute the uninstall-miredo.command script, located in the /Applications/Utilities folder.

This release will work only with with MacOS X 10.4 (Tiger) and the upcoming MacOS X 10.5 (Leopard). Do not try to install this package on any other version of MacOS X!

A subversion repository is available here. The latest "stable" tag is probably what you want.

Special thanks to Mattias Nissler for his work on the MacOS X TUN/TAP Driver, which is included in this package and used by miredo.


  1. However, teredo will not work behind a symmetric type of NAT. In that case your only option is setting up some sort of manual tunnel.
  2. This is half-true. From the Microsoft Teredo page:

    In Windows Vista, the Teredo component is enabled but inactive by default. In order to become active, a user must either install an application that needs to use Teredo, or configure advanced Windows Firewall filter settings to allow edge traversal.


Trackback from your own site.

5 Comments for “Teredo for MacOS X”

  1. Andre Says:

    Between the work done by you here and 'Rémi Denis-Courmont' on Miredo, I think we almost have something that we can let loose on the general public. When you move beyond prerelease mode, I think a discussion forum would be handy, as well as listing on VersionTracker.

    It should be noted that Teredo was created because of NATs. Most 4to6 solutions are designed to work in environments where NAT does not exist, and therefore Microsoft came up with a solution knowing many people are stuck behind NATs these days.

    Keep up the good work!!

  2. Greg Harewood Says:

    I'm hoping that, by default, it only runs when a native LAN IPv6 address is not supplied. Ideally, it would go like this....

  3. Native address - use
  4. No native, check for legal address, try 6to4.
  5. RFC1918? Activate miredo.
  6. Any hope?

  7. darco* Says:

    @Greg: The default behavior is that miredo is disabled if a globally routable IPv6 address has already been assigned to at least one interface. So, yes there is hope. :)

    However... There is a bug if you put the machine to sleep with a teredo address and it wakes up on a network with native IPv6. In this case, miredo will unfortunately clobber the default IPv6 route when it tries to disable itself. >_<

  8. vincent Says:

    I've been playing with teredo (as supplied by you) for quite some time now. And I've been very happy with it. Keep up the good work.

  9. vincent Says:

    Is there a plan to release an OS X package based on a more recent version of miredo any time soon? If I understand things correctly, your package is built against 1.0.6.

Comment on this post

* required

(or just Login »)


Type these numbers into the given field. This is how to make sure you aren't a computer.