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. It's that simple!

Prerelease 2

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

Screen shot 2009-09-18 at 11.11.29 AM

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.

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

Operating System Compatibility

This release will work fine with MacOS X 10.4 (Tiger) and MacOS X 10.5 (Leopard). It will also work with MacOS X 10.6 (SnowLeopard) as long as you are using the 32-bit kernel (very few people are using the 64-bit kernel at the moment, chances are you are using the 32-bit kernel). You will need to reinstall miredo-osx after upgrading to SnowLeopard.

Do not try to install this package on any earlier version of MacOS X!

Source Repository

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.

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

    1. Native address - use
    2. No native, check for legal address, try 6to4.
    3. RFC1918? Activate miredo.
    

    Any hope?

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

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

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

  6. macbroadcast Says:

    http://twitpic.com/35an3

    when i type in any ip adress into my osx tiger "preference pane" , I get this "error 255" my miredo server runs on "ipsix.org"

    could someone confirm ?

    cheers

  7. Will Dean Says:

    I was able to find one bug. If you change the teredo server in the audo menu and click apply, it will cause a crash.

    Otherwise, works great. Thanks :)

  8. Nathan Ward Says:

    @darco: It would be nice if instead of disabling Teredo, the default behaviour is to bring it up, but route 2001::/32 at the Teredo interface - removing the need to send traffic via relays.

    About 98% of traffic on Teredo and 6to4 relays right now is bittorrent traffic, so OS X desktop boxes are likely to want to talk to other Teredo endpoints.

  9. Thaan Says:

    Hi,

    Are you planning on updating your Miredo package for Mac OS X 10.6? I've been using it everyday over the last year, and would love to update to Snow Leopard, but I can't without my lovely teredo connectivity.

    Yeah, you could consider this a cry for an updated version!

    Thanks,

    Thaan

  10. mtmatt Says:

    Agree with Thaan. Would really like to see an OS X 10.6 build.

  11. darco* Says:

    Sorry, I replied to Thaan in an email. Here is what I emailed him:

    I've had no problems using miredo-osx on Snow Leopard, without any changes. You may need to reinstall Miredo after installing Snow Leopard though.

    Thaan then reported to me that reinstalling miredo-osx did the trick.

  12. Michele D. Says:

    Darco, reinstalling Miredo does work with Snow Leopard indeed. Still, just to minimize the number of applications switching the System Preference to 32 bit, would it be possible to get it recompiled for SL? I also wonder if it may benefit from the 64 bits architecture as well (not likely, but still...). Thanks!

  13. darco* Says:

    The fact that the preference pane is 32 bit annoys me too, but I'm somewhat hesitant to roll another build just for that. It would provide no benefit and only increase the possibilities of things that could go wrong. If I roll an update, there is a lot more I would like to change than just the preference pane.

    At some point in the future I may take another look at miredo-osx and update it to be more modern... But for now it "works", so I have little inventive to "fix" it. The sources are freely available though. Feel free to fix it yourself.

  14. Dinesh Says:

    Hi Darco, Any possibility of incorporating the latest 1.2.1 release of Miredo into Miredo for OS X?

    Basically 1.2.1 "...fixes a deadlock when Miredo fails to initialize properly."

    Thank you...

  15. darco* Says:

    Sorry, way to busy with work to try and mess with miredo-osx right now. :(

  16. Geoff Says:

    Hi darco, looks like miredo has stopped working with the latest macosx update 10.6.2, for me anyways. Wish I knew how to build a new version, don suppose you get any buddies who can work on it lol. Thx

  17. darco* Says:

    Miredo-OSX seems to work just fine for me after the 10.6.2 update. If it is giving you problems, try re-installing.

  18. x2look4 Says:

    no go for me since 10.6, already de- and reinstalled several times. toerod tunnel button stays red

  19. darco* Says:

    That means it is having trouble with the given teredo server. Try teredo.ipv6.microsoft.com instead.

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.