DHCPv6 Behaviour in Windows Vista


Windows Vista introduces support for DHCPv6. The DHCPv6 client implementation in Windows Vista is compliant with RFC 3315. It supports 2 modes of operation: a stateless mode and a stateful mode of operation.

 

DHCPv6 Stateless mode is where the host uses a non-DHCPv6 method to obtain an IPv6 address, and uses DHCPv6 only to obtain other configuration parameters such as the IPv6 address of the DNS server. Typically in this mode, clients will use the IPv6 prefix from a Router Advertisement to auto-configure an IPv6 address for the network interface.

 

DHCPv6 Stateful mode is where a client uses DHCPv6 to obtain an IPv6 address from the DHCPv6 server along with other configuraiton parameters.

 

The DHCPv6 client mode of operation in Windows Vista is controlled by Router Advertisements. When the TCP/IP stack in Windows Vista receives a Media Connect event on a network interface, it sends a Router Solicitation. The Router Advertisement received in response determines the behaviour of the DHCPv6 client on that interface. If both the M & O flags in the Router Advertisement are set, the client assumes that it should DHCPv6 Stateful mode. If the O flag is set, but the M flag is not set, the DHCPv6 client uses the Stateless mode of operation.

 

Hope this helps you get started with deploying IPv6 in Windows Vista.

 

Santosh Chandwani

Windows Enterprise Networking

 

[This posting is provided “AS IS” with no warranties, and confers no rights.]

 

Comments (47)

  1. Anonymous says:

    In one of my previous posts, I had discussed details about the DHCPv6 client behaviour in Windows Vista

  2. Anonymous says:

    Beta Tester’s do LH Server BETA 2 já estão fazendo uso do DHCPv6 Stateless que foi projetado para se

  3. Anonymous says:

    Hey radha,

    Try the following on your vista machine.

    In NetShell go to the interface ipv6 prompt,

    netsh interface ipv6 > set interface <interface number>  advertise=enabled  manageAddress=enabled .

    Here <interface number> is the name or id of the interface where you want to acquire IP address.

    Please let me know if you still fave any problem.

  4. Anonymous says:

    DUID is generated only once for a machine. It is global across all adapters. In Vista, Duid is generated on the first adapter connect. It is persistent after that.

  5. Anonymous says:

    In Windows Server codenamed "Longhorn", Microsoft has introduced DHCPv6 functionality to the DHCP server.

  6. Anonymous says:

    Hi,

    My vista dhcpv6 client is able to get ipv6 address. Is there a command with which I can release or renew ipv6 address?

    Thanks,

    Chander

  7. Anonymous says:

    hi Yong,

    The DUID generated will be unique anyways. Why do you want to predetrmine it and then assign IP address?

    It is not possible to do DUID-LL in Windows DHCPv6 client.

  8. Anonymous says:

    I am running server 2008 DHCP and have been able to issue IPV6 addresses to Vista Clients. When I run IPconfig on the Vista Client the issued IPV6 appears and the address also appears in server 2008 in the DHCPV6 address leases. However I am unable to connect from the Vista client with the DHCPV6 ip address. What is strange is when I configure a static IPV6 address on that same Vista Client I can now use the DHCPV6 IP address. Any ideas?

    Aaron

  9. Anonymous says:

    Hi Mukeshkb

    The issue seems to be Linux router configuration rather than with Windows Dhcp clients, as the same problem is seen with Windows XP and Vista clients.

    Are the firewall exceptions added for Dhcpv6 in Linux Server ? If not please add them.

    Also, Is the packet sniff taken on Client or Server? Please check if Dhcpv6 packets are being sent by client, when packets are being captured on client machine.

    Ravi

  10. Anonymous says:

    Vista DHCPv6 client as well as Windows server 2008 does not support Reconfigure option.

    Thanks

    teamdhcp

  11. Anonymous says:

    So the DHCPv6 Server in WS08 does not identify Remote-Identifier(37) option, and hence it is dropping the packet. The issue is resolved in WS08 R2. Please try to disable the Cisco Relay from sending the remote-id option.

  12. Anonymous says:

    Hello Team,

    Could you confirm the issue reported as MS Connect ID 45620 violates RFC 3646, thus this is a bug of Windows Server 2008?

    http://connect.microsoft.com/WindowsServerFeedback/feedback/ViewFeedback.aspx?FeedbackID=345620

    Regards,

    Junichiro Hamaguchi

  13. Anonymous says:

    Thanks for your comments.

    This time i configured the IPV6 Scope and address in the same range.

    Server address 1000:1000::99/64

    Scope:1000:1000::/64

    Now i see that Server is replying with an ADVERTISE message for the SOLICIT message from VISTA,but there is no REQUEST message coming from VISTA client.

    If i replace VISTA with IXIA as DHCPv6 Clients,there is no response from DHCPv6(Windows 2008 Server) server.

    Is there any other thing that i need to enable on SERVER.

    Also is there any interoperability issue with IXIA.

    Please help.Thanks

    G.Raghu

  14. Anonymous says:

    The Duid is present in following registry key:

    HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6ParametersDhcpv6DUID.

    By the way in which captures are you seeing for "DUID". All Dhcpv6 packets transmitted by client would have Duid in "ClientID" option.

    Thanks

    teamdhcp

  15. Anonymous says:

    DUID is determined the first time any interface is connected or enabled on the machine. This DUID is persistent throughtout then.

    There is no way to to predetermin ethe DUID. One will either have to read registry key for that purpose or know it through "ipconfig /all".

  16. Anonymous says:

    ipconfig /release6 [<interface>]

    ipconfig /renew6 [<interface>]

  17. Anonymous says:

    Iam working for Cisco Banglore as a Tester.Presently working on DHCPv6 Relay.As part of that Iam trying Windows  2008 server build 6001 with SP1.

    Iam using DHCPv6 client as Vista PC & also tried with IXIA.

    Iam able to see the SOLICIT messages received on the Windows 2008 Server but i do not see any response from the DHCPv6 Server.

    I tried with other DHCPv6 Server like dibbler.Everything is working fine.& vista is able to get the ipv6 address.

    iam using only one scope with 1000::/64 prefix in Stateful mode.

    Can anybody help.

    G.Raghu

  18. Anonymous says:

    I have a Router (a Linux PC say R-1) which has radvd configured with bit M and O set. (AdvManagedFlag on and AdvOtherConfigFlag on)

    and dhcp6s is also running here.

      I have installed ipv6 on my PC (say PC-2) (Windows XP professional 5.1.2600). I see successful stateless configuration of IPv6 on PC-2(by router adv.) But I don’t see successful it sending any DHCPv6 messages on wireshark. even after excuting any of following command

    – ipv6 renew ifIndex

         or

    – netsh interface ipv6 set interface ifIndex managedaddress=enabled advertise=enabled

  19. Anonymous says:

    Hey Rasika,

    You need to run command prompt as an administrator. First he logged on user must have administrator priviledges. Then right click on the command prompt icon and select run as administrator.

    Thanks

    Raunak Pandya

    DHCP Server Team

  20. Anonymous says:

    The Windows DHCP server does NOT listen to the Link Local address of the link.

    The DHCP server only listens to the bound global unicast address and the DHCP Server related multicast addresses in the links.

    Can you verify if the DHCP server IP address configured in the relay agent is the Global address which the DHCP server is bound to?

    If yes, Can you send the packet(s) capture from the relay agent to the server?

  21. Anonymous says:

    Since DHCP client uses Windows LLT-DUID, In order to change the DUID, deleting it will help. New DUID will be generated when any media is connected or enabled after that on the machine.

  22. Anonymous says:

    This is a bug in Windows 2008 Dhcpv6 Server. The QFE for this issue is in progress and would be released soon.

    Ravi

  23. Anonymous says:

    I have a Router (a Linux PC say R-1) which has radvd configured with bit M and O set. (AdvManagedFlag on and AdvOtherConfigFlag on)

    and dhcp6s is also running here.

      I have installed ipv6 on my PC (say PC-2) (Windows XP professional 5.1.2600). I see successful stateless configuration of IPv6 on PC-2(by router adv.) But I don’t see successful stateful configuration (by dhcpv6)also it is not sending any DHCPv6 messages (no dhcpv6 appears on wireshark). even after excuting any of following command

    – ipv6 renew ifIndex

         or

    – netsh interface ipv6 set interface ifIndex managedaddress=enabled advertise=enabled

  24. Anonymous says:

    There is no configuration required on the DHCP Server in environments where we have DHCP relays.

    What are the DHCP options being added by the Cisco Relays ?  

  25. Anonymous says:

    Hey Geof,

    You can check in the UI whether the server is bound to any static IPv6 address or not by right clicking on the server node and Add/Remove Bindings.

  26. Anonymous says:

    What scopes have you configured at the server side?

    Do you see the Solicit packet on the server side?

  27. Anonymous says:

    Hi Raghu,

    After replacing with Vista client with IXIA, Could you collect the packet capture at client end as well as at the server end.

    This will help us to nail down the issue.

    Thanks,

    Manu

  28. Anonymous says:

    On the server, check

    1. you have set the bindings for the interface on which you want to serve v6 addresses and whether this matches the configured scope.

    2. If the packet is coming via Relay then check if the link-address field and the scope address match.

    You can check scope and bindings using netsh/mmc.

    netsh dhcp server v6 show scope

    netsh dhcp server v6 show bindings

  29. Anonymous says:

    Appreciate your response. Not sure what is happenening but I am unable to configure that command. I have a interface named ‘ipv6’. So at the prompt I tried giving

    set interface "ipv6" advertise=enabled managedAddress=enabled

    I get a error  ‘element not found’

    I tried all the combinations I could think of (with double quotes, no quotes, =) Nothing seems to help.

    Is there some place I can look up the configs and the steps needed to setup a Vista dhcpv6 client

    Just for some background. I am trying to do some interoperability testing between a Vista dhcpv6 client and a Cisco dhcpv6 server.  Connected the 2 machines directly. The connection works fine as I was able to get a v4 address for the vista from the router. But v6 vista client doesn’t seem to send a SOLICIT

  30. Steve Decker says:

    All,

    We are currently testing with Longhorn Beta 3 and Vista Business. We are attempting to setup DCHPv6 only with Longhorn. I have set the following M & O  Flags on the Vista Client using the netsh commands, but still have yet to get my Vista client to get a IPv6 address.

    Is there  something I am missing either on the Server or client side that I have not setup. What would be the basic steps for this configuration to work?

  31. Filipino Ako says:

    I hope this is the right site to post this question.

    Is it a normal behavior of Windows Vista not to release the IPv6 address when it is Restarted or during Shutdown?

  32. Chetan says:

    Hi Steve

    We are also facing the same issues as your, like to know if you have over come the same. if yes can you please let us know the steps  to resolve.

  33. Jim Thompson says:

    In what context of netsh do you set the M and O flags for the DHCPv6 Client (Vista)? Also how does one calculate the IPv6 DGW address of the subnet? Are there any How-to’s on setting up DHCPv6 on Longhorn? I just got my test lab DC back up on the new RC0 drop this week and would like to see my Vista WS grab an IPv6 address off the DC.

  34. Jim Thompson says:

    In what context of netsh do you set the M and O flags for the DHCPv6 Client (Vista)? Also how does one calculate the IPv6 DGW address of the subnet? Are there any How-to’s on setting up DHCPv6 on Longhorn? I just got my test lab DC back up on the new RC0 drop this week and would like to see my Vista WS grab an IPv6 address off the DC.

  35. How do I configure my Windows Vista machine to acquire a ipv6 address from a DHCPv6 server? Ay special configuration needed ?

  36. Geof Cooper says:

    I have managed to get Vista to do DHCP requests (Set M/O bits on in the RADV).  I have a Windows Server 2008 eval, build 6001.  

    I see DHCPv6 solicit messages from the vista machine to ff02::1:2, but I don’t see any responses.  The ws2k8 DHCP server shows that it is running.

    Any debugging tips?

    – g

  37. Geof Cooper says:

    I see DHCPv6 solicit messages from vista.linklocal(8e16) to ff02::1:2, AND from server2k8.ll(8ced) to ff02::1:2.

    I don’t see any unicast traffic, and only solicit messages.

    I have one scope in IPv4 (which works) and one scope in IPv6.  The IPv6 scope covers the full 64 bits, based on the subnet prefix.

    -g

  38. Geof Cooper says:

    I got it working.  Turns out that I had a dynamically assigned IPv6 address.

    I had tried to make it static.  I’m guessing that if you take the dynamically assigned address and set it as a static address, that somehow the system doesn’t register this as a static address.  At least this is what seemed to happen to me.  Perhaps you can’t configure a globally significant host number as a static IPv6 address?

    When I set the static address to be prefix::200, it took and DHCPv6 started to work.

    It would be nice if DHCPv6 had some kind of signal in the UI or logs that indicated this.

    Thanks for your help.

    -g

  39. Rasika says:

    I configured my Windows Vista machine to acquire a ipv6 address from a DHCPv6 server.

    Tried the following on my vista machine.

    In NetShell went to the interface ipv6 prompt,

    netsh interface ipv6 > set interface "Local area connection"  advertise=enabled  manageAddress=enabled .

    but i got an message as bellow.

    "the requested operation requires elevation"

    Please reply me sooner possible.

  40. Yong Ni says:

    Hi,

    I am trying to do stateful DHCPv6 with Windows 2008 server being a DHCP client.  I need to pre-configure the Windows Server’s fixed IP address on the DHCP server before bringing up windows.  In case of v4, I can assign IP address based on MAC address.  For DHCPv6, I would use DUID.  However, it seems that windows 2008 use DUID-LLT which cannot be predetermined.  Any suggestion how to make IPv6 address assignment work in such case?  Is it possible to do DUID-LL instead?

    The use case is that I do one windows 2008 installation and create a disk image.  The image will then be replicated to other server all running the same software but using different IP.

    Thanks,

    Yong

  41. Yong Ni says:

    Thanks for replying.

    We need to predetermine the DUID for IP address assignment because we need to create multiple clones of windows 2008 server, all from the same disk image, ship them to customers, let network admin configure IP address on DHCPv6 server, and plug-in the 2008 server.

    At customer’s site, with DUID on hand, admin will configure the IPv6 address for windows 2008 on their DHCPv6 server, and then plug-in the cloned windows 2008 server.  They may not have technical people on-site to bring up the server and do "ipconfig /all" to find DUID.  In some case, there may not even have a console attached to the server.  Hence, we need to make the depolyment plug-and-play and maintain a "black box" approach for IP address assignment.

    Do this make sense?  BTW, when DUID determined? First boot up, first enablment of an IPv6 interface (if disabled by default), or upon receiving of the first IPv6 Router Advertisement with M bit set?

    thanks,

  42. linus says:

    Hello Team,

    Does Vista DHCPv6 client support the "Reconfigure" option?

    And how about Windows server 2008?

    Thanks.

  43. Tamás says:

    Hello Team,

    is there any way to know the actual DUID of Vista? (I can’t find with ipconfig /all command…)

    I see it in the router debug, but I can’t see in the wireshark capture.

    Thanks

    Tamás

  44. mii says:

    Hello team,

    Is there any specific configuration for Windows 2008 DHCPv6 server to respond to relayed requests ?

    I have 2 networks connected with cisco sw. There are Windows 2008 DHCPv6 server and Vista PC on the each side. Cisco relays DHCPv6 messages to/from the server.

    Windows 2008 server is configured as stateless dhcpv6 server to provide dns servers and domain information. It does not have any ipv6 scopes.

    When the vista is connected to the network, the server receives relayed "information-request" message (at least captures on the server). However, the server does not respond.

    If the vista and server is on the same segment, vista can be configured perfectly.

    Thank you,

  45. mii says:

    Thanks for replying,

    The original message from vista pc, contains Elapsed-Time(8)/Client-Identifier(1)/Vendor-Class(16)/Option-Request(6) options, are encapsulated in Relay-Message(9) option.

    Plus, Interface-Identifier(18) and Remote-Identifier(37) options are added by cisco relay.

  46. JohnG says:

    We have discovered a number of Vista machines with Identical DUIDs.  Presumably they are the result of some sort of cloning/imaging.

    How can we change the DUID on these machines?  Can we simply delete the HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpip6ParametersDhcpv6DUID value?

  47. norman says:

    Hi all

    I try to use dhcpv6 server (stateless)in windows 2008 r2 with windows vista.

    But I find something differences

    1.when I use vista without any service pack ,then I can ping to server ,check routing table ,vista will add a routing for dhcpv6 prefix.

    2.when I use vista with sp2 or windows 7

    ping to server will fail, because client will not add a routing for me

    is this a bug for client ?