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:
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.