IPv6 on MacOS X

Currently I am playing around with IPv6 and trying to understand how to use it. Follows are notes that I have put together to help others avoid repeating the same mistakes I have made. Note that IPv6 protocol support, and deployment, is currently in its infancy, even though it is a mature protocol. Because of this you are likely to hit a number of rough edges and may have to get your hands dirty. From my experience MacOS X actually makes things a lot less painful than other operating systems.

If you have come here looking for IPv6 support for other systems, then at the end of the page there are links for both MS Windows XP and Linux. Generally any recent operating system should support IPv6, so if you you are running MS Windows ME and lower (not sure about Windows 2000) or MacOS 9 and lower you are out of luck. Beyond this anything other than MacOS X is outside the scope of the this document.

Setting up IPv6

MacOS X 10.3 currently comes with an IPv6 stack installed, and active, so there is nothing you need to do here, unless you want to deactivate it. I have no operational experience with IPv6 on previous versions of MacOS X.

Setting up 6to4

Since at the present time most of us are likely to be surrounded by an IPv4 network, in order to connect to IPv6 network you will need to used 6to4. This is a transitional technology allowing IPv6 messages to pass through IPv4 networks. The best place to find out how to set this up is Keith Moore's " How to configure 6to4 in MacOS X" page. One thing that I should note is that if you are behind a DSL/Router then you will probably have difficulty getting this to work. The reason is because currently most DSL/Routers do not know how to let this solution through - for example, I have a router from Belkin and there is nothing on their website about IPv6. Because of this if you want to play with IPv6 beyond your own network you will have to connect straight to the internet.

2004-09-28 - There has been some suggestion that installing the firmware from Sveasoft might provide a solution. At the moment I have not yet tried this and given that it is not an official firmware update from my router's manufacturer, I would rather not rush into it.

2004-10-03 - Having asked a few people in turns out Microsoft's Teredo technology might be another solution. The only catch is that only non-MS Windows solution I have found, known as Miredo, currently only works on Linux and FreeBSD.

Checking the connection

Assuming that the previous step is working okay you will want to check that it is working. The best way is to open up a terminal window and type 'ping6 www.kame.net'. If everything works fine then you should get back a response, such as follows:

localhost:/ ajmas# ping6 www.kame.net
PING6(56=40+8+8 bytes) 2002:4344:d102:1::1 --> 2001:200::8002:203:47ff:fea5:3085
16 bytes from 2001:200::8002:203:47ff:fea5:3085, icmp_seq=0 hlim=60 time=301.983 ms
16 bytes from 2001:200::8002:203:47ff:fea5:3085, icmp_seq=1 hlim=60 time=293.131 ms
otherwise if you are behind a DSL/Router, then you will probably get the following response:
localhost:/ ajmas# ping6 www.kame.net
ping6: UDP connect: No route to host

Opening a browser

Now the next step is to try to visit www.kame.net with your web browser. I have experimented with both Safari and Firefox. Before typing in your web address you need to tweak both browsers.

For Safari, you will first need to activate the debug menu (see this hint at 'MacOS X Hints'). Then in the debug menu uncheck 'suppported protocols -> http: (simple loader)'.

For Firefox, type 'about:config' as the URL and hit enter. Then in the filter field type 'ipv6'. Now double-click on the 'network.dns.disableIPv6', so that the value becomes false.

At this point you are ready to type in a URL. Type http://www.kame.net/ as the URL and hit enter. If you see a dancing turtle then you have managed to connect via an IPv6 network. If you don't see a dancing turtle, but managed to get a ping response in the previous section, then it is probably because your web browser is using the IPv4 address. Taking the IPv6 address returned for www.kame.net in your tests (it was '2001:200::8002:203:47ff:fea5:3085' for me) type the following as the address:

  http://[2001:200::8002:203:47ff:fea5:3085]/
Note the square brackets around the IPv6 address.

This is as much as I have at the moment. Apple currently provides no help on IPv6 on their support web site. For this reason you will have to scavange the internet for answers to your questions. Sometimes they are there in clear, sometimes they are cryptic and other times you will have to ask. I find most of my answers by searching with Google, having a few fits and then just breathing. Some of my questions still need answers.

Glossary

Links

Books

If you want to find out more on the details of IPv6, then there are a few books on the subject. Try searching at your favourite book store.
Hosted by www.Geocities.ws

1