IPv6 and Internet Connection Sharing on Windows

I move house and apply for installation of Cable Modem network recently. For network topology needed in home, I chosen to use Internet Connection Sharing (ICS) on Windows XP. When using the default settings of ICS, DHCP server and DNS cache server are enabled. The default IP setting of ICS server is and the DHCP range is within and

Install IPv6 support and 6to4 relay

For the feature of IPv6, in Windows XP (above SP2), we can install the driver with

C:\>ipv6 install


There are modules for IPv6 tunneling such as Teredo, 6to4 and isatap. If there are native IPv6 support, the modules are disabled by default. If there is no native IPv6 but the PC has a public IPv4 address, the 6to4 tunnel will be enabled by default.

My Windows XP ICS server is Teredo tunnel disabled and 6to4 tunnel enabled but the default 6to4 relay routing function is broken. I can obtain its v6 address as gateway but failed to transfer the request. According to my test, the ONLY ONE workable 6to4 relay is ipv6-lab-gw.cisco.com. We can use

C:\>netsh interface ipv6 6to4 set relay ipv6-lab-gw.cisco.com enable

to enable a new relay for 6to4 tunnel.

Make the Teredo tunnel work with ICS

To enable the Teredo service, using the netsh command with

C:\>netsh interface ipv6 set teredo client

. There will be a IPv6 address prefixed by 2001: and a gateway :: shown with the ipconfig command. The tragedy is, with ICS enabled, the Teredo will be at the position of host-specific relay and cannot obtain an IPv6 address. I have no idea if this scenario is caused by modules conflicts or pre-defined policy rules by Windows. The way to make Teredo work is to disable 6to4 relay with

C:\>netsh interface ipv6 6to4 set state disabled

. IP address obtained for a short time after this command.


Although without 6to4 tunneling, there are no IPv6 address for ICS members provided by ICS DHCP server, the network is more stable. By the way, the Facebook App malfunctioned within ICS plus broken 6to4 tunnel environment.

On the other hand, if you want to make the isatap work, try this command:

C:\>netsh interface ipv6 isatap set router isatap.sjtu.edu.cn
C:\>netsh interface ipv6 isatap set state enabled

where the tunnel router is provided by 上海交通大学.

Enjoy it. 🙂