Problem found: when config a IPv6 property to enable automatically get IPv6 address, IP address is returned, but it could never use to ping.
After searching, I fould the following discussion on how to retrieve the IPv6 address through DHCP server. actually, the router is not configured properly and the stateful property is not enabled. Hence the IPv6 address could be retrieved but could not ping.
By default, a Windows Vista client will configure its local IPv6 address based on what a local IPv6 router instructs it to do. If you don't have a properly configured router in your environment, a Windows Vista client will not contact a DHCP server for an address even if the settings on the network interface are configured to "Obtain an IPv6 address automatically", but will instead automatically configure an address.
If you want your client to obtain an address from a DHCP server, you must configure the client to do so using the netsh.exe tool. Using this tool, two things must be done:
1. Disable Router Discovery.
2. Enable Managed Address Configuration OR enable Other Stateful Configuration.
For both of the above steps, you need to do the following:
1. Open an elevated command prompt
2. netsh int ipv6 show int
The output from this command will list your interfaces and their respective index numbers. You will use this index value in the next command.
To disable Router Discovery:
- netsh int ipv6 set int [index] routerdiscovery=disabled
You next need to enable either Managed Address or Other Stateful. Managed Address instructs the client to obtain an address and all options from the DHCP server (the normal behavior for an IPv4 address). Other Stateful instructs the client to configure its own IPv6 address (or use the statically configured address), but to get all other configuration options from a DHCP server.
To enable Managed Address:
- netsh int ipv6 set int [index] managedaddress=enabled
To enable Other Stateful:
- netsh int ipv6 set int [index] otherstateful=enabled
You can confirm your changes by using the following command to view the existing settings:
- netsh int ipv6 show int [index]
In the following example, the network adapter in use has been renamed to CorpNet to make it easy to identify.
C:\Windows\System32>netsh int ipv6 show int
Idx Met MTU State Name
--- --- ----- ----------- -------------------
1 50 4294967295 connected Loopback Pseudo-Interface 1
13 10 1280 connected