Windows Server 2016 IPv6 Hell

dhcpv6domain-name-systemipv6

We have a small network consisting of a Sonicwall, Windows Server 2016 DC, and Exchange Server 2016 (hosted on a second WS2016 machine) along with a number of Windows 10 clients.

Due to compatibility with one of our vendors, we are being forced to enable IPv6 on our network (beyond just link local addressing that is the default).

Here is the problem I am experiencing: If our servers have IPv6 enabled, Windows clients prefer to use IPv6 for communication including authenticating on the domain. Everything including authentation and exchange stop working if the DNS records are not setup properly.

  1. My Domain Controller must have a static IPv6, because it is the dhcp server.
  2. Setting a static IP through the GUI does not disable DHCP client, so it must be disabled using the powershell command: Set-NetIPInterface Ethernet -AddressFamily IPv6 -DHCP Disabled
  3. If I use a static IP, the domain controller does not register in DNS.
  4. If I manually add an AAAA record for the domain controller in DNS, it gets removed on the next refresh.
  5. If I re-enable DHCP, the correct records get added to the DNS, however an additional AAAA record for the DHCP assigned IP also gets added which still breaks the system.
  6. If I create a DHCP reservation for the DC that is the SAME as its static IP, the whole thing works, temporarily, until a reboot. After the reboot, the GUI displays "Obtain an IPv6 address automatically" again which does not work as that IS the DHCP server and it cannot reach itself without an address.

There does not appear to be any documentation on properly configuring IPv6 for static IPs in Windows Server 2016. If anyone can help I would greatly appreciate it.

Best Answer

Depending on the size of the Enterprise, kill DNS scavenging, if it is a smaller environment.

If it is larger, than that solution could be a bit messy and you may want to run a script occasionally that will scavenge with exceptions. I wrote something in PS sometime ago, if this is something you may need, lemme know.