The Mysterious Microsoft DHCP Option ID 81
April 16, 2020
Recently I worked on a project where I needed to create a PowerShell script to automate the creation of numerous Microsoft DHCP servers and all their scopes, scope options, reservations, all settings. The original DHCP servers were in an old Active Directory domain, and a new AD Forest was created with a different networking scheme. I used the output from the DHCP documentation script to gather all the info needed, but there was one scope option that had me stumped.
Almost every DHCP Scope had an Option ID of 81, and the Value number was different for a lot of the scopes.
Option Name 00081 Vendor Standard Value 7 Policy Name None
There is no Option ID 81 in the Predefined Options and Values, as shown in Figure 1.
Here is what I found out.
When a new DHCP Scope is created (at least on Windows Server 2016 or 2019), there is no scope Option ID 81, as shown in Figure 2.
Why? Apparently, because Name Protection is enabled by default on a new scope, as shown in Figure 3.
If Name Protection is disabled, as shown in Figure 4, Option ID 81 mysteriously appears, as shown in Figure 5.
What happens if Name Protection is enabled again, as shown in Figure 6?
Option 81 is still there, as shown in Figure 7, with a different numeric Value.
Why all the fuss? I am trying to recreate all the scopes and related settings with just changing the network data. I see an Option 81 with no way to set it or control it.
The only information I can find on Option ID 81 from Microsoft states that option is used for the client to tell DHCP what its FQDN is.
When a DHCP server registers and updates DNS pointer (PTR) and address (A) resource records on behalf of its DHCP-enabled clients, it uses the information contained within an additional DHCP option: the Client FQDN option (option 81), which permits a client to provide its FQDN and any instructions to the DHCP server that is used to process DNS dynamic updates on its behalf.
If you like to be confused, read the information at this link.
I decided just to ignore Option ID 81, just like I do Option ID 51, in the script.
BTW, I had to review why I skipped Option ID 51 and came across an interesting (to me) article.
What I also found out about Option ID 81, is that by selecting or unselecting the various options, the numeric Value changes with no discernable pattern (at least to me).
I have no clue why Option ID 81 exists. All the DNS settings for a scope are obtained by running Get-DHCPServerV4DnsSetting -ScopeId, as shown in Figure 8.
For me, for this project, I will just ignore Option ID 81 and get on with life. The DHCP documentation script is updated in Version 1.43 to ignore Option ID 81.