Windows Vista
Check your IPv6 configuration
Microsoft Windows Vista is an IPv6 native client. In order to check that IPv6 works in your PC, run in a console window:
ping6 -n 5 ::1
If the result is the following (or similar):
Pinging ::1
from ::1 with 32 bytes of data:
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Reply from ::1: time<1ms
Ping statistics for ::1:
Packets: Sent = 5, Received = 5, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
It means that IPv6 is installed correctly. Basically you need to be able to read "5 Received".
IPv6 is installed and enabled by default in Microsoft Windows Vista but you can find below some IPv6 features that you can configure in Windows Vista.
How to install IPv6
Microsoft Windows Vista includes a wide support for the Internet Protocol version 6 (IPv6). It not only supports the basic functionalities as in previous Windows versions (i.e. Windows XP and 2003) but also new advanced features as:
- Dual IP layer architecture Installed and enabled by default
- Graphical user interface (GUI)-based configuration
- Full Support for IPsec
- MLDv2
- LLMNR
- Literal IPv6 addresses in URLs
- Support for ipv6-literal.net names
- IPv6 over PPP
- DHCPv6
- Random interface IDs
Enabling IPv6
In Windows Vista the IPv6 protocol is configured and enabled by default, so you don't need to do anything. Some configurations related to IPv6 are possible though, according to following guides.
Automatic address configuration
An IPv6 host that is not a router can be automatically configured by using the following:
1. Stateless address autoconfiguration with IPv6 router discovery
The IPv6 host builds its IPv6 address based on the Router Advertisement sent by the IPv6 router attached to the same network segment where the IPv6 host is attached to. This method is enabled by default.
2. Stateful address autoconfiguration with DHCPv6
With DHCPv6, an IPv6 host can receive subnet prefixes and other configuration parameters. A common use of DHCPv6 for Windows-based IPv6 hosts is to automatically configure the IPv6 addresses of DNS servers, which are not configured through the Router Advertisement. The Router Advertisement message received by the IPv6 host during router discovery contains a field indicating whether stateful address autoconfiguration should be performed.
Manual address configuration
Typical IPv6 hosts do not need to be manually configured. IPv6 routers do need to be manually configured for IPv6 addresses and routing behavior. You can manually configure IPv6 addresses and other parameters in Windows Vista using the following:
1. The properties of Internet Protocol Version 6 (TCP/IPv6) component
To manually configure IPv6 settings through the Windows graphical user interface, do the following:
From the Network Connections folder (available from Control Panel), right-click the connection or adapter on which you want to manually configure IPv6, and then click Properties. On the Configure tab for the properties of the connection or adapter, double-click Internet Protocol Version 6 (TCP/IPv6) in the list under this connection and configure the features properly.
2. Commands in the netsh interface ipv6 context
Open a DOS window (Start->Run->cmd) and write the following
netsh interface ipv6 add address interface_name ipv6_address
For example, to configure the IPv6 unicast address 2001:db8:290c:1291::1 on the interface named "Local Area Connection" with infinite valid and preferred lifetimes and make the address persistent, you would use the following command
netsh interface ipv6 add address "Local Area Connection" 2001:db8:290c:1291::1
Address selection configuration
In IPv6, each interface can have multiple addresses assigned to network and tunneling interfaces intended for different purposes. For this reason, RFC3484 provides a standardized method to choose source and destination IPv6 addresses with which to attempt connections.
Indeed this RFC defines two algorithms:
1) A destination address selection algorithm to sort the list of possible destination addresses in order of preference.
2) A source address selection algorithm to choose the best source address to use with a destination address.
This is implemented by the Operating System so applications do not need to include their own address selection algorithms, reducing the development burden on IPv6-capable applications. However, the algorithm can be overridden by applications if either the source or destination address is used rather its full qualified domain name (FQDN).
In Windows XP, 2003 and Vista, to have administrative control over the precedence of the source and/or destination addresses, the local prefix policy table can be managed with the netsh command as follows:
netsh interface ipv6 show prefixpolicy
--> show the current local prefix policy table
netsh interface ipv6 add prefixpolicy
--> add new entries in the local prefix policy table
netsh interface ipv6 set prefixpolicy
--> set entries in the local prefix policy table
netsh interface ipv6 delete prefixpolicy
--> delete entries in the local prefix policy table
Example
C:\>netsh interface ipv6 show prefixpolicy
Precedence | Label | Prefix |
---|---|---|
5 | 5 | 2001::/32 |
10 | 4 | ::ffff:0:0/96 |
20 | 3 | ::/96 |
30 | 2 | 2002::/16 |
40 | 1 | ::/0 |
50 | 0 | ::1/128 |
The above prefix policy table shows the following:
1) If native IPv6 is available on the host, any IPv6 destination has more precedence than any IPv4 destination:
10 | 4 | ::ffff:0:0/96 | ==> any IPv4 address (IPv4-mapped address) |
40 | 1 | ::/0 | ==> any IPv6 address |
2) If 6to4 is available on the host, any IPv6 destination has more precedence than any IPv4 destination:
10 | 4 | ::ffff:0:0/96 | ==> any IPv4 address (IPv4-mapped address) |
30 | 2 | 2002::/16 | any 6to4 IPv6 address |
3) If Teredo is available on the host, any IPv4 destination has more precedence than any IPv6 destination:
5 | 5 | 2001::/32 | ==> any Teredo IPv6 address |
10 | 40 | ::ffff:0:0/96 | ==> any IPv4 address (IPv4-mapped address) |
Changing the address selection precedence
If you want to change the precedence of one prefix, for example Teredo prefix over IPv4 addresses according to the above prefix policy table you should use:
C:\>netsh interface ipv6 set prefixpolicy prefix=2001::/32 precedence=15 label=5
Disabling IPv6
Unlike Windows XP, IPv6 in Windows Vista cannot be uninstalled. To disable IPv6 on a specific connection, you can go to the Network Connections folder, obtain properties of the connection and clear the check box next to the Internet Protocol version 6 (TCP/IPv6) component in the list. This method disables IPv6 on your LAN interfaces and connections, but does not disable IPv6 on tunnel interfaces or the IPv6 loopback interface.
To selectively disable IPv6 components and configure behaviors for IPv6 in Windows Vista, create and configure the following registry value (DWORD type)
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip6\Parameters\DisabledComponents
DisabledComponents is set to 0 by default.
The DisabledComponents registry value is a bit mask that controls the following series of flags, starting with the low order bit (Bit 0):
- Bit 0 Set to 1 to disable all IPv6 tunnel interfaces, including ISATAP, 6to4, and Teredo tunnels. Default value is 0
- Bit 1 Set to 1 to disable all 6to4-based interfaces. Default value is 0
- Bit 2 Set to 1 to disable all ISATAP-based interfaces. Default value is 0
- Bit 3 Set to 1 to disable all Teredo-based interfaces. Default value is 0
- Bit 4 Set to 1 to disable IPv6 over all non-tunnel interfaces, including LAN interfaces and *Point-to-Point Protocol (PPP)-based interfaces. Default value is 0
- Bit 5 Set to 1 to modify the default prefix policy table to prefer IPv4 to IPv6 when attempting connections. Default value is 0
To determine the value of DisabledComponents for a specific set of bits, construct a binary number consisting of the bits and their values in their correct position and convert the resulting number to hexadecimal. For example, if you want to disable 6to4 interfaces, disable Teredo interfaces, and prefer IPv4 to IPv6, you would construct the following binary number: 101010. When converted to hexadecimal, the value of DisabledComponents is 0x2A.
The following table lists some common configuration combinations and the corresponding value of DisabledComponents.
Configuration combination | DisabledComponents value |
---|---|
Disable all tunnel interfaces | 0x1 |
Disable 6to4 | 0x2 |
Disable ISATAP | 0x4 |
Disable Teredo | 0x8 |
Disable Teredo and 6to4 | 0xA |
Disable all LAN and PPP interfaces | 0x10 |
Disable all LAN, PPP, and tunnel interfaces | 0x11 |
Prefer IPv4 over IPv6 | 0x20 |
Disable IPv6 over all interfaces and prefer IPv4 to IPv6 | 0xFF |
You must restart the computer for the changes to the DisabledComponents registry value to take effect.