by July 9, 2003 0 comments

The IP addresses currently used on the Internet are based on the IPv4 specification. These are represented as four sets of three digits each, separated by dots. Unfortunately, this system is rapidly running out of its range of addresses thanks to the proliferation of the Internet with PCs, laptops, wireless devices, cellular phones and even network-aware home appliances.

To overcome this limitation, a new specification for IP was announced called Ipv6. This increases the IP address size to 128-bit; in hexadecimal format and again separated by colons. These addresses are inherently amenable to configuration in both flat as well as hierarchical networks and can be placed behind routers and firewalls. The addressing is secure in that it cannot be used to trace into a non-DMZ (demilitarized zone) with the intent to unleash traditional attacks like IP Spoofing and DOS-variants.


1. To install IPv6 on Win 2000, you have to install SP 1 (no other version will do). 
2. All subnets have a mask of

So what are the pros and cons of implementing IPv6? There are lots of cons and very little pros as of now. For one, as a network administrator if you bank on automatic IP allocations, then there are no DNS servers that can do this for IPv6 yet.

On the other hand, the learning curve involved makes it better to start early and be ready for IPv6 when it truly replaces IPv4.

For now, IPv6 still needs IPv4 on a network for basic tasks. Here we’ve explored and explained how to implement the
IPv6 capabilities in Windows 2003 Server, XP, and Linux. 

IPv6 provides for 6.5 Ã— 1023 addresses per sq meter of the Earth’s surface!

The Setup 
We need five PCs, three hubs and enough cables. We will set up the systems as shown below: 

We are not installing DNS, DHCP or WINS for our purposes. On 2KP1 and 2KP2, enable IP Forwarding using the Routing and Remote Access tool. Now, ping each machine from the others and check that the network hardware and setup is working properly.


Machine IPv6
2K3 fe80::bf:c0ff:fea8:c402 3 FECO:0:0:1::/64
XPP fe80::bf:c0ff:fea8:c408 4 FECO:0:0:1::/64
XP1 fe80::bf:c0ff:fea8:c416 4 FECO:0:0:1::/64
fe80::bf:c0ff:fea8:d402 3 FECO:0:0:2::/64
XP2 fe80::bf:c0ff:fea8:d404 3 FECO:0:0:2::/64
fe80::bf:c0ff:fea8:e402 4 FECO:0:0:3::/64
Linux fe80::bf:c0ff:fea8:e404 4 FECO:0:0:3::/64

Configuring IPV6
The values shown below are from what we got on our setup. You can substitute them with whatever you get. 
Since the easiest way to install and configure IPv6 appears to be from the command prompt, fire up the command prompt. Running this simple command sequence on all our Windows systems completes the installation. On Win 2K3 server it’s:

C:\> netsh
netsh> interface ipv6
netsh interface ipv6> install

On Win XP it’s as follows:

C:\> ipv6 install & reboot

It takes a couple of minutes to get to the OK from the Install command. On Linux, add following line in the /etc/sysconfig/network file and restart networking “/etc/rc.d/init.d/ network restart” command):


On each Windows machine, retrieve the IPv6 address and the “Interface Index” by issuing the command:

netsh interface ipv6> show interface “Local Area Connection”

On XP1 and XP2, we need to issue one more SHOW to get the address for the second adapter in each.

netsh interface ipv6> show interface “Local Area Connection 2”

As the result of the above command, two types of information will be printed out. One is a short table and the other one is a rather verbose list of various property values of the protocol. From the upper table for each output, note down the value under Address and Interface Index.

Next, we enable IP forwarding on the interfaces on XP1 and XP2, and add routing tables. The advertise parameter broadcasts IPv6-ability to the other machines. These are accomplished with a series of five commands on each machine.

netsh interface ipv6> set interface interface=[Index1] forwarding=enabled advertise=enabled
netsh interface ipv6> set interface interface=[Index2] forwarding=enabled advertise=enabled
netsh interface ipv6> add route prefix=FEC0:0:0:1::/64 interface=[Index1] publish=yes
netsh interface ipv6> add route prefix=FEC0:0:0:2::/64 interface=[Index2] publish=yes
netsh interface ipv6> add route prefix=::/0 interface=[Index2] nexthop=[2K3 IPv6] publish=yes

The route prefix is a value that indicates the subnet for each machine. For example, 2K3 is on subnet 1 (, XP1 router is on subnet 1 and 2 etc. The ‘/64’ indicates that it is on a flat subnet. You can test connectivity again by running PING (use the “-6” parameter to ping using IPv6 addresses) commands from each machine. You can also run a “TRACERT —d” command on each
client using the other ’s IPv6 address.

If you want to check out how this would work in combination with a DNS server, set one up. Then open the DNS console, open Forward Lookup Zones and go to your domain name. Look at the addresses listed under the quad-A (IPv6) record there.

Sujay V Sarma

No Comments so far

Jump into a conversation

No Comments Yet!

You can be the one to start a conversation.