13

You cannot set the Windows DHCP/DHCPv6 server to listen on dynamic addresses or all addresses, only static addresses. Is there a technical reason for this limitation? Is there any workaround?

My specific situation:

I am using Router Advertisements to configure IPv6 hosts in this network. The address prefix is acquired from upstream routers and MAY change without notice. The Windows DHCPv6 server in question is only configured to distribute domain search lists and other non-address related configuration (it configured for stateless mode and does NOT configure addresses).

The DHCPv6 server could configure it's own address using the same Router Advertisements but then will not respond to requests. I cannot configure it to use a static address because it will break once the prefix changes.

I do realize I can set up a ULA in this subnet but that is a last resort (not an answer).

UPDATE: There has been some question is whether dynamic IPv6 routing is a good idea. I consider it a necessity even if your ISP provides static prefixes. It must be used in order to be able to quickly re-route from fail-overs and to imitate other functionality provided by pseudo-routing in IPv4 NAT.

Nick Whaley
  • 228
  • 2
  • 10
  • Did you configure the DHCPv6 server to operate in stateless mode? – Michael Hampton Mar 31 '13 at 22:51
  • @MichaelHampton Yes, it is configured for stateless mode. – Nick Whaley Mar 31 '13 at 23:28
  • 1
    I can't think of any technical reason why this wouldn't work. Have an upvote. Though, if your ISP will change your prefix without notice, they **really suck** at network management, and you probably need a new ISP. – Michael Hampton Mar 31 '13 at 23:40
  • 1
    @MichaelHampton All ISPs that are offering dynamic addresses will give you dynamic prefixes also. – Nick Whaley Apr 01 '13 at 01:07
  • @MichaelHampton Yes, even business class service does not always include static addressing. But that is irrelevant to the question. – Nick Whaley Apr 02 '13 at 02:01
  • 2
    This is IPv6. There should not be _any_ dynamic prefixes being assigned by _any_ ISP, not even for residential customers. Your ISP is seriously doing it wrong. Renumbering without notice? That's the stuff of nightmares there. All that said, your question still needs an answer. – Michael Hampton Apr 02 '13 at 05:44
  • Would the router, DHCP server and hosts be on the same LAN? If so then wouldn't the hosts pick up the Router Advertisements and not look for a DHCPv6 server? – Epaphus Apr 03 '13 at 16:16
  • @Epaphus The Router Advertisements have the 'Other Configuration Flag' set in order to indicate to hosts to retrieve stateless configuration from a DHCPv6 server on the LAN. – Nick Whaley Apr 04 '13 at 02:48

3 Answers3

2

Now I know I said setting up a ULA was not an option but it is actually far easier than I thought. You do not need to publish the prefix. And no other address in the ULA subnet even needs to exist anywhere.

Yes, it is a garbage address that clutters up the routing table but at least it doesn't get into other machines.

Hopefully Microsoft will take note at some point and allows their DHCPv6 server to respond on other available addresses besides static. It makes sense to require a static address during stateful address assignment in order to reliably map scopes to interfaces. But it does not apply to stateless DHCPv6.

Unfortunately, there is no other answer to this question.

Nick Whaley
  • 228
  • 2
  • 10
0

I don't know the technical reasons why Microsoft forces Windows' DHCP service to only listen on statically-configured network adapters (although I can think of a few ones), but I know for sure this is a requirement, and there are no workarounds.

From http://technet.microsoft.com/en-us/library/cc755277.aspx:

For certain types of servers, you must assign a static IP address and subnet mask during or after Setup. These servers include DHCP servers, DNS servers, WINS servers [...]

From http://technet.microsoft.com/en-us/library/cc770650.aspx:

the DHCP Server service performs default service bindings as follows:

• If the first network connection uses a manually specified IP address, the connection is enabled in server bindings. [...]

• If the first network connection uses an IP address configured dynamically, the connection is disabled in server bindings.

Massimo
  • 68,714
  • 56
  • 196
  • 319
  • Microsoft has always had this limitation in their DHCP server implementation and I'm also not aware of any way of working around this. Only option is , as far as I know, to drop MS DHCP alltogether and use a different DHCP server. Which might not be an option at all if you need to operate in a MS centric environment. – Tonny Apr 05 '13 at 14:16
  • The Windows DNS server does not have this limitation and is working fine in this network. I do not believe WINS does either but I am not running one to check. – Nick Whaley Apr 08 '13 at 18:15
0

A possible workaround would be to use multiple interfaces either physical or virtual switch types. I would assign a 'private' unique local address block such as FC00::/8 for the DHCPv6 server interface binding. Since your client computers can have multiple IPv6 addresses, they should still be able to get a public autoconfigured /64 address.

  • Although reservered for ULAs, the `FC00::/8` block is not defined yet (Possibly will be managed ULAs by assignment authorities). `FD00::/8` should be used for self-assigned ULAs. And there is no reason you need a separate interface. I can put as many addresses on a single interface as I wish. See my post above in regards to using a static ULA. – Nick Whaley Apr 11 '13 at 14:09