Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Internet Protocol

Internet Protocol
Version 6

Microsoft Research (MSR) wrote an Internet Protocol Version 6 (IPv6) implementation to further networking research on the Windows NT/2000 platform. USC/ISI East also contributed to this project. Due to external interest, we decided to make a beta version of this implementation publicly available in both source and binary forms. Subsequently, the results of this work were successfully transferred into the Windows product line (Windows XP and .NET Server), but for experimental use in the research community, we are maintaining the availability of the original MSR stack.

Please note that this is not a product release and it is not intended for commercial use. Our release is for research, educational, and testing purposes only. The Windows networking group is working on a product quality IPv6 implementation for Windows and if you wish to perform a commercial evaluation of any sort then please use the stack available in Windows XP and .NET Server.

The software supplied in this release is not officially supported. Microsoft support personnel must be notified that you are using this software during any support calls involving a computer that has it installed. They may ask that the software be uninstalled prior to providing support.

Microsoft Research Release 1.4 is now out! Major new functionality for this release includes scoped address support in the API and the stack, Plug'n'Play and Power Management on Windows 2000, and automated 6to4 configuration.

The scoped address support allows link-local and site-local addresses to be used unambiguously for local communication. We support site-local addressing with site prefixes and multi-sited nodes. The additions to the API make it easier to write protocol independent applications.

On Windows 2000, USB and PCMCIA network interfaces can now be added to or removed from the system on the fly and the stack will reconfigure itself accordingly. Similarly, one can disconnect and reconnect network links or hibernate and resume a system and the Microsoft Research IPv6 stack will do the right thing. It is possible to dynamically unload and reload the stack without rebooting.

The new 6to4cfg program automates 6to4 configuration. The 6to4 transition technique lets IPv6 sites communicate transparently over the IPv4 internet backbone. 6to4cfg makes it very easy to setup a 6to4 gateway router and connect sites to the 6bone via 6to4. See our 6to4 documentation.

IPv6 Stack: While our implementation is still a work-in-progress, it supports all of the main features of the IPv6 protocol.

In particular, our stack has support for:

  • Basic IPv6 header processing
  • Hop-By-Hop and Destination Options headers
  • Fragmentation header
  • Routing header
  • Neighbor Discovery
  • Stateless address autoconfiguration
  • ICMPv6
  • Multicast Listener Discovery (a.k.a. IGMPv6)
  • Ethernet and FDDI media
  • Automatic and configured tunnels
  • IPv6 over IPv4 (Carpenter/Jung draft)
  • 6to4 (Carpenter/Moore draft)
  • Site-Prefixes (Nordmark draft)
  • UDP and TCP over IPv6
  • UDP Lite (Larzon draft)
  • Raw packet transmission
  • Correspondent node mobility
  • Router functionality (static routing tables)
  • IPSec authentication (AH and ESP, tunnel and transport mode)

We do not (yet) support full mobility or encryption.

We have participated in conformance and interoperability testing with the UNH InterOperability Lab and with TAHI. We have a machine on the 6bone. We especially encourage other IPv6 implementers to download our code for testing.

This release runs on NT 4 and on Windows 2000. At this time, Microsoft Research has no plans to support this experimental stack on Windows 95 or Windows 98.

We chose to implement IPv6 in NT as a separate protocol stack from the existing IPv4 stack. This allows for ease of experimentation with IPv6 without affecting existing IPv4 functionality.

We support IPSec Authentication Header (AH) and Encapsulating Security Payload (ESP) headers for authentication purposes. Security Association keys must be configured manually in advance of authenticated communication (see our IPSec configuration instructions). Due to current U.S. export laws regarding encryption technology and our desire to publish the source code for our stack, we do not support IPSec encryption at this time.

For more details on our stack, here is the Read Me file from this release. We also have additional configuration instructions for the more involved cases, including specific examples of how to configure 6bone and 6to4 connectivity.

Applications and Utilities: We have working implementations of ping6, tracert6, ttcp (over both UDP and TCP), and ftp6/ftpd6. Those for which we can freely distribute the source code are included in the release.

Included with this release is an IPv6-capable version of wininet.dll. This adds v6 functionality to Microsoft Internet Explorer. Our version of wininet.dll does not support Windows 2000.

Protocol Parser: We have an IPv6 protocol parser (both source and binary) that works with Microsoft's Network Monitor to capture and display IPv6 packets. It is included with the IPv6 stack. For more information on Network Monitor and how to install our parser add-on, see the parser's Read Me file.

IPv6 Tunnel Broker: We have developed an IPv6 tunnel broker server. A tunnel broker is a web service provided by an ISP (or virtual ISP) in order to make IPv6 Internet connectivity available using tunnels over the current IPv4 Internet. Tunnel broker functionality is described in the IETF working document draft-ietf-ngtrans-broker-06.txt. Our tunnel broker service is a web interface plug-in for Microsoft Internet Information Server (IIS). It is included as a separate download in this release.

IPv6/IPv4 Translator: We have developed an IPv6/IPv4 translator for Windows 2000, based on research at the University of Washington. It is included as a separate download in this release. For more information, here is the translator's Read Me file.

For a more technical discussion, see our USENIX Windows NT Symposium paper.

To Download: Before downloading our IPv6 implementation, you must read and agree to our license agreement. From there you will be taken to the registration and download area.