What IPv6 changes were made in Windows Vista beta 2?

What IPv6 changes were made in Windows Vista beta 2?

tags:

Junya Kato
NTT Information Sharing Platform Laboratories

Introduction

The Windows Vista beta 2 Customer Preview Program was launched on June 8, 2006; average users now can evaluate the product. I suppose there are many people who have already obtained beta 2 and have been using it. However, in this article, I will introduce the IPv6 features in the 32-bit Japanese version of Windows Vista beta 2 (Build 5384), which I obtained through the preview program.

I also reviewed the English version of Windows Vista beta 1 and reported on it in an article dated September 26, 2005 (http://www.ipv6style.jp/en/special/20050926/index.shtml). IPv6 features were already enabled by default in beta 1; I saw the IPv6 implementation making steady progress in beta 1. This time, I will report on how far the IPv6 features have progressed in beta 2.

1. Vista includes a TCP/IP (IPv6) stack out of the box

IPv6 address auto-configuration

Figure 1: Local Area Connection Properties dialog
Figure 1: Local Area Connection Properties dialog

Figure 1 is a screenshot of adapter properties. You can see that both IPv4 and IPv6 stacks are installed by default and there are check boxes for each protocol. IPv6 is enabled by default. They were completely integrated in Windows Vista beta 1 (http://www.ipv6style.jp/jp/special/20050926/images/1.gif); however, in beta 2, configuration options for IPv4 and IPv6 are once again separated.

By selecting the check box for each protocol, you can enable only the IPv4 features, or only the IPv6 features. (see endnote)

Figure 2: Internet Protocol Version 6 (TCP/IP) Properties dialog
Figure 2: Internet Protocol Version 6 (TCP/IP) Properties dialog

Figure 2 is the TCP/IPv6 properties dialog. In this dialog, you can specify an IPv6 address and the IPv6 address of the DNS server. The messages shown in the GUI are all in Japanese. For both properties, the option to obtain the address automatically is the default. Windows Vista beta 2 supports using RA (Router Advertisement) and DHCPv6 to automatically configure the IPv6 addresses.

The fact that the IPv6 address is configured by RA is the same as Windows XP SP2. Meanwhile, when an RA with an m/o (Managed/OtherConfig) flag is received, the DHCPv6 client starts running. When an RA with an m flag is received, Windows Vista beta 2 starts a stateful DHCPv6 sequence in order to request an IPv6 address (IA_NA).

On the other hand, when an RA with an o (other config) flag is received, it starts a stateless DHCPv6 sequence and requests an IPv6 address for the DNS server as well as the DNS domain name.When I run tests on my test machine, it looks like it starts running a DHCPv6 client using RA with the m/o flag as a trigger.

Now, in the DHCPv6 specifications, there is no option to transmit a default router. Whether it is Windows Vista or something else, IPv6 devices generally recognize the router that sends out the RA as the default router.

Figure 3: TCP/IPv6 Properties manual configuration dialog
Figure 3: TCP/IPv6 Properties manual configuration dialog

In Figure 3, the IPv6 address for the computer and the IPv6 address for the DNS server are entered directly in the text boxes. For the default gateway, it looks like you can enter either a link local address or a global address. In case you enter a link local address, the scope ("% interface number") is not needed; the OS automatically fills it in.

Random interface ID

The interface ID (last 64 bits) of the IPv6 address is generally created from the MAC address. However, in Windows Vista, it does not create the address using EUI-64; instead, a random value is given. This is in order to deal with the problem that EUI-64 generated addresses had, which was that a third person was able to determine the MAC address just by looking at the IPv6 address.

Two addresses are allocated by default, as shown here:

  Physical address . . . . . . :  00-09-6B-12-34-56
  IPv6 address . . . . . . . . :  2001:db8::a0ba:3f:dded:98fe (preferred)
  Temporary IPv6 address . . . :  2001:db8::24e2:fa4b:aa10:bb5 (preferred)

The address created by EUI-64 from the MAC address is 0209:6bff:fe12:3456; it is different from the IPv6 address above. Although the a0ba:3f:dded:98fe part is created randomly, it will stay the same even after rebooting the machine. The max amount of time before the address expires is 7 days, and the recommended time is 24 hours; you can extend it even after it expires. So, you can use it as a fixed address that will stay the same permanently, just like the traditional addresses created using EUI-64.

Now, the temporary IPv6 address is an anonymous address as detailed in RFC3041; support for anonymous addresses has existed since Windows XP SP2. This address will expire within a short period of time. Since it cannot be extended once it expires, you cannot use the same address for a long period of time. This is what separates it from the former address.

IPv6 transport DNS

The DNS query used to transport IPv6 was already running in beta 1. It runs reliably in beta 2 as well. You can manually configure it, as shown in Figure 2; if it is set up so that it automatically obtains addresses, they are configured using DHCPv6. Although Windows Vista was created from the beginning so that it can be used in a pure IPv6 environment (where IPv4 does not exist), it is important that the IPv6 transport DNS functions correctly.

Now, here are my results when I actually ran the transport in Windows Vista beta 2. When I specify both IPv4 and IPv6 addresses for the DNS server’s IP address, it generated a query only for IPv4; no matter what the response was, it did not look like it was querying IPv6 DNS. When I specified only an IPv6 address for the DNS server’s address, the IPv6 transport generated an IPv6 DNS query. There may be a setup option to prioritize the IPv4 and IPv6 DNS queries; however, it was not clear if the feature exists in the preview program that I obtained this time.

Link Local Multicast Name Resolution (LLMNR)

I am now going to explain how to resolve the name for an IPv6 address, which is a new feature introduced in Windows Vista. This is a feature that enables users to resolve names on the same link by using link local scope multicasting, instead of having to register the name in the server. It is called Link Local Multicast Name Resolution (LLMNR).

When Windows Vista needs to resolve a name, it sends out a UDP packet that contains the name to query the link local multicast address (ff02::1:3). The UDP port number used here is 5355. The Windows Vista PC with the name being requested will return a response (an IP address) to where the query was sent out.

A more or less similar feature is defined also in IPv4; you can find the computer that is on the same link by broadcasting the name using NetBIOS over TCPIP. It was already possible with IPv4 to resolve names of nearby computers without using a DNS or WINS server. You can say that LLMNR is the IPv6 version.

As for the easiest way to test LLMNR, please try running a ping command on other computers (it works also within the same computer) from the command prompt. You can see in List 1 that it has received the target computer’s link local address and is sending an ICMPv6 echo.

List 1: Running a ping command using LLMNR for name resolution

C:\Users\kato›ping vista-pc

Pinging vista-pc [fe80::90b6:fc89:e7a2:1e96%10] with 32 bytes of data from fe80::90b6:fc89:e7a2:1e96%10 :

Reply from fe80::90b6:fc89:e7a2:1e96%10 : time <1ms
Reply from fe80::90b6:fc89:e7a2:1e96%10 : time <1ms
Reply from fe80::90b6:fc89:e7a2:1e96%10 : time <1ms
Reply from fe80::90b6:fc89:e7a2:1e96%10 : time  <1ms

Ping statistics for fe80::90b6:fc89:e7a2:1e96%10 :
Packets: Sent = 4; Received = 4, Lost = 0 (0% loss)
Approximate round trip time in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms

2. Core applications

Internet Explorer 7+ (IE7+)

The Internet Explorer installed in Windows Vista is called Internet Explorer 7+ in order to differentiate it from IE7 for Windows XP.

Figure 4: Accessing a site in IE7+ using a literal IPv6 address
Figure 4: Accessing a site in IE7+ using a literal IPv6 address

In IE7+, you can enter a literal IPv6 address in the address bar. Figure 4 shows how it looks when we access http://www.ipv6style.jp/ by directly specifying an IPv6 address. In addition, since IE7+ is using Win32 Internet functions (WinInet), this works in other applications that use WinInet as well.

Windows Mail

Figure 5: Screenshot of Windows Mail opening screen
Figure 5: Screenshot of Windows Mail opening screen

In Figure 5, you can see the mail client installed in Windows Vista that replaces Outlook Express. Although Outlook Express in Windows XP did not support IPv6, Windows Mail installed in Windows Vista can connect to each type of mail server, such as SMTP, POP, and IMAP, via IPv6. There is no specific configuration required to support IPv6. If an IPv6 address can be obtained by resolving the names of each server, it will try connecting using IPv6. There are few differences between Windows Mail and Outlook Express in terms of users’ navigation and configuration options; though it now supports IPv6, users will not notice much difference. I think users can use it without worrying about the difference between protocols.

Sharing folders

As is well-known, files can be easily shared by right-clicking the folder icon and selecting the sharing tab. In Windows Vista beta 2, the file-sharing feature supports IPv6 by default. When accessing a UNC named "\\fileserver\foldername" from another machine, if an IPv6 address is returned after resolving the name "fileserver", it will try to establish a session using IPv6. Like with Windows Mail, users mostly do not have to worry about differences between the protocols. Even when Windows 2000 and Windows XP, which do not have IPv6 file-sharing features, coexist with Windows Vista, Vista will select the appropriate protocol (IPv6, IPv4) based on the result of the name resolution.

Console commands

ipconfig.exe command
List 2: Output of ipconfig /all

C:\›ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . .  : vista-PC
   Primary DNS Suffix ........: 
   Node Type ............: hybrid
   IP Routing Enabled ........: no
   WINS Proxy Enabled ........: no 

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix ....: nttv6.net
   Description ............: Intel(R) PRO/100 VE Network Connection
   Physical Address ..........: 00-09-6B-12-34-56
   DHCP Enabled ..........: yes
   Autoconfiguration Enabled ......: yes
   IPv6 Address ...........: 2001:db8::a0ba:3f:dded:98fe (preferred)
   Temporary IPv6 Address .......: 2001:db8::24e2:fa4b:aa10:bb5 (preferred)
   Link-local IPv6 Address .......: fe80::a0ba:3f:dded:98fe%11 (preferred)
   IPv4 Address ...........: 10.0.22.100 (preferred)
   Subnet Mask ...........: 255.255.255.0
   Lease Obtained ..........: June 22, 2006, 16:38:31
   Lease Expires ...........: June 22, 2006, 18:38:33
   Default Gateway ..........: fe80::209:56ff:fe78:9abc%11
   : 10.0.22.1
   DHCP Server ...........: 10.0.22.1
   DNS Server ............: 192.16.178.230
   NetBIOS over TCP/IP .......: enabled

This is the command to display the network configuration information for Windows Vista devices. This command existed even before Windows XP; however, in Windows Vista beta 2, in addition to all the messages now being in Japanese, if you have the /all switch on, it will now display the kind of address. Since IPv6 addresses adhere to the expiration date and time, it is important to know what they are. For example, although the adaptor has an address, there is a state that says it is not used for new communications. The addresses with "preferred" mean they are preferred and enabled. Other statuses include "deprecated", which means that it expired, "duplicated", which means that a duplicate address has been detected, etc.

"/allcompartment" is a command line switch that was first added in Windows XP SP2. According to information [3] released by Microsoft, the concept of a routing compartment, which virtualizes the protocol stack, is adopted starting with Windows Vista. For example, when connecting to the global Internet and to private networks such as VPN at the same time, although the routing table is shared within the standard protocol stack, you can separate the protocol stacks for each connection using the compartments concept.

ping / tracert
In Windows XP SP2, IPv6-specific commands ping6.exe and tracert6.exe were installed; however, in Windows Vista, these commands have been removed and are now part of the ping.exe and tracert.exe commands. Although these commands run using IPv6 by default, you can switch the protocols that you use by using the command line switches "-6" and "-4". As for features, there are not any big changes since Windows XP SP2; however, all the messages are in Japanese in Windows Vista beta 2. In addition, in the pathping.exe command, a combination of the ping and tracert commands, all the messages are in Japanese, though it goes without saying that it also supports IPv6. In List 1, I already showed how it looks when running; these are the differences between Vista beta 2 and XP SP2.

telnet / ftp
In Windows Vista beta 2, the telnet.exe command, a command used to start telnet, is not installed by default, so you will not be able to use it. When I entered a URI such as "telnet://telnethost.example.com/" in the IE address bar on Windows XP SP2, the telnet command was started; however, in IE7+ on Windows Vista beta 2, it responded differently, saying "the web page cannot be displayed". As for the ftp command, you can use it like in Windows XP SP2.

Removal of the IPv6 command and the transition to the netsh command
The ipv6.exe command, which existed up until Windows XP SP2, has been removed in Windows Vista; all configuration is now handled using the netsh command. It is also possible to configure all the above-mentioned configuration options from the command line. How to configure IPv6 is explained in an article [1] as well.

In Windows Vista beta 2, if netsh is started from the command prompt, a new window opens. If a command that displays some sort of a result such as

C:\›netsh interface ipv6 show address
is issued, since the newly opened window disappears a moment after it displays the address, you cannot verify the address. When you need to interactively configure and verify the configuration using netsh, you can start netsh using
C:\›netsh
without arguments. A root context window will open, so please configure and verify the configuration by going to the interface -> ipv6 context within the window.

About this operation, I have sent feedback to Microsoft requesting improvements. It may get resolved in builds after beta 2 but it is still unconfirmed.

Windows Live Messenger 8.0

Although this is not a component installed in Windows Vista beta 2, I will cover Messenger’s IPv6 features since I think this is one of the important applications that will be used on Windows Vista. Windows Live Messenger 8.0 was released on June 20, 2006 and it already supports IPv6. As of the time of this article, not all the features work with IPv6. IPv4 is used for signing in to the server (authentication), and for exchanging presence (status) and text messages; however, IPv6 is used for direct communications (P2P) between clients, such as file transfers. Of course, each terminal needs to be in an environment where it can direct communicate with another terminal via IPv6.

Furthermore, it looks like communication features using IPv6 have already been implemented since around MSN Messenger 7.X. Also, it works on Windows XP SP2 with IPv6 enabled.

Conclusion

I was able to confirm that there has been a definite improvement since I reviewed Windows Vista beta 1. Especially in the Japanese version, the Japanese localization in the GUI and message details have improved, and I feel that they are now moving onto fine-tuning things. Also, as you can see from the references below, Microsoft has been making more information available to the public, so I was able to actually confirm the operation of features whose details were still unknown at the time of beta 1, such as DHCPv6.

Although there were some typos in the messages and also some parts that I thought were not working properly, I feel that Windows Vista’s IPv6 features have been improving steadily towards the product’s release. The Customer Preview Program is also an opportunity to investigate these kind of problems, so I would like to actively send feedback on parts that look like they are not working properly.

There are features that were newly added or strengthened in Windows Vista, such as IPsec, PPPv6, multicast features, etc. I would like to review these features in more detail, as well as the modified WinSock architecture and API, and report on them for developers some time in the future.

Endnote
It functions as follows: for disabled protocols, no address is given to the adaptor, and whichever protocol is enabled when the communication starts is used. However, it seems that the protocol is not uninstalled from the OS even if the check box is not selected. For example, even when you uncheck IPv6, a ping to the loop back address (::1) will succeed. As for uninstalling and disabling stacks, you can find more detailed explanations in references [1] and [4].

References:

[1] The Cable Guy – May 2006
Configuring IPv6 with Windows Vista
http://www.microsoft.com/technet/community/columns/cableguy/cg0506.mspx

[2] The Cable Guy - 2005 年 10 月
Changes to IPv6 in Windows Vista and Windows Server "Longhorn"
http://www.microsoft.com/technet/community/columns/cableguy/cg1005.mspx

[3] The Cable Guy - 2005 年 9 月
Next Generation TCP/IP Stack in Windows Vista and Windows Server "Longhorn"
http://www.microsoft.com/technet/community/columns/cableguy/cg0905.mspx

[4] Strategic Platform Group, Windows Division (Japanese)
http://www.exconn.net/Blogs/windows/archive/2006/06/05/12690.aspx

この記事のトラックバックURL

http://www.ipv6style.jp/trackback/813
Ads by Google