, , , ,

IPv6 is a version of the Internet Protocol(IP) that is supposed to succeed IPv4 which addresses are currently running out.

IPv6’s address uses 128bit whereas IPv4 uses only 32bit. This allows the IPv6 to have much more addresses(approximately 340 undecillion) as compared to IPv4’s(approximately 4 billion).

The problem now is that not all network devices are IPv6 enabled. Therefore, we need other methods for IPv4 and IPv6 to work toogether.

One of such method is to do tunelling. This will create a tunnel between two IPv6 enabled device across a IPv4 network.


To create a teredo tunnel, open up a command prompt.

Type in netsh and press enter.

netsh>interface>ipv6>teredo>show state


If the state is labeled as offline, do a set mode online. If the state is still offline, do a set state enterpriseclient. That should bring the teredo tunnelling online. Do a show state again to verify. You should see the following result.

Although the teredo tunnel is already online, we are still not able to access the external ipv6 networks, reason being that there is no internal routes to route the ipv6 traffic to the teredo tunneling interface.

To create a route, we’ll need to know the teredo’s interface ID first. Type in route print on command prompt and press enter. Look for the numeric value on the left hand side of the teredo interface, for my case, my interface id is 17.

To add the route, go to open up netsh in command prompt again.

netsh>interface>ipv6>add route ::/0 int=17


After adding the route, we should now be able to access the ipv6 network. To test it out, make sure you have internet connectivity, ping ipv6.google.com.


We will need two windows client as ISATAP only works for intranet.

To set all ISATAP tunnel, all we’ll need is to enable it. To enable it, open netsh in command prompt.

netsh>interface>ipv6>isatap>set state enable
netsh>interface>ipv6>isatap>show state

We should see that the ISATAP tunneling have been enabled.

Do the same thing for the second PC.

Now, exit netsh and do a ipconfig /all.

We should see an IPv6 Link Local address at the ISATAP interface. It should look something like this.


The number after the % is the interface ID.

To test connectivity, do a ping -6 (ipv6 address)%(YOUR own isatap interface ID).

Single stack IPV6 implementation

For the router configuration.

> conf t
 # ipv6 unicast-routing
 # int fa0/0
 # no shut
 # ipv6 address 2a02:2590:6:601::/64 eui-64
 # ipv6 nd prefix 2a02:2590:6:601::/64
 # no ipv6 nd ra suppress
 # ipv6 nd other-config-flag
 # int fa0/1
 # no shut
 # ipv6 address 2a02:2590:6:602::/64 eui-64
 # ipv6 nd prefix 2a02:2590:6:602::/64
 # no ipv6 nd ra suppress
 # ipv6 nd other-config-flag

fa0/0 will be connected to the servers while fa0/1 will be connected to the clients.

Make sure that the clients have Neighbour Discovery and Router Discovery enabled. Open netsh.

netsh>interface>ipv6>show int 11

server ip address : 2a02:2590:6:601::10/64
client ip address : 2a02:2590:6:602::10/64

To assign a static ipv6 address on a PC.

After assigning the static ip addresses, the machines should now be able to ping each other.

To distribute DNS entry, we’ll need a DHCP server.

When installing the DHCP server role on the Windows Server 2008 R2, set it to perform in stateless mode to distribute the DNS address.

Do a ipconfig /release6 and a ipconfig /renew6 and we should see the DNS’s address in the ipconfig /all.