<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Microsoft Windows DNS, DHCP and IPAM Team Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/teamdhcp/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/teamdhcp/feed.xml</link>
    <description>Microsoft&amp;#039;s DNS, DHCP and IPAM solutions! Deploy and discuss!</description>
    <lastBuildDate>Thu, 25 Feb 2016 07:15:34 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>CVE-2015-7547 and Windows DNS</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/cve-2015-7547-and-windows-dns</link>
      <pubDate>Thu, 25 Feb 2016 07:15:32 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/?p=1621</guid>
      <description><![CDATA[Microsoft is aware of the CVE-2015-7547  Remote Execute Vulnerability for Linux in GNU C Library....]]></description>
      <content:encoded><![CDATA[Microsoft is aware of the <a href="https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-7547">CVE-2015-7547</a>  Remote Execute Vulnerability for Linux in GNU C Library.  If we determine there is any impact to our devices and services, we’ll take the necessary action. Till now there is no known impact on Microsoft DNS clients.

<strong><em>Vulnerability Summary</em></strong>

The glibc DNS client side resolver is vulnerable to a stack-based buffer overflow when getaddrinfo() library function is used. Software using this function may be exploited with attacker-controlled domain names, attacker-controlled DNS servers, or through a man-in-the-middle attack. Successful exploitation could result in remote code execution.

Affected glibc versions:

<em>GNU C Library version 2.20 or earlier.</em>

&nbsp;

Author : <a href="https://twitter.com/KrAsh0x35">Kumar Ashutosh</a>]]></content:encoded>
    </item>
    <item>
      <title>How to Deploy Windows DNS Server on Nano Server</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/how-to-deploy-windows-dns-server-on-nano-server</link>
      <pubDate>Fri, 04 Dec 2015 11:49:54 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/2015/12/07/how-to-deploy-windows-dns-server-on-nano-server/</guid>
      <description><![CDATA[Windows Server 2016 Technical Preview offers a new installation option: Nano Server. Nano Server is...]]></description>
      <content:encoded><![CDATA[<p style="text-align: justify"><span style="font-size: small"><span style="font-family: georgia, palatino">Windows Server 2016 Technical Preview offers a new installation option: </span><span style="font-family: georgia, palatino;color: #0000ff">Nano Server</span><span style="font-family: georgia, palatino">. Nano Server is a remotely administered server operating system optimized for private clouds and datacenters. It is similar to Windows Server in Server Core mode, but significantly smaller, has no local logon capability, and only supports 64-bit applications, tools, and agents. It takes up far less disk space, sets up significantly faster, and requires far fewer updates and restarts than Windows Server. When it does restart, it restarts much faster.</span></span></p>
<span style="font-family: georgia, palatino;font-size: small">Nano Server is ideal for a number of scenarios:</span>
<ul>
	<li><span style="font-family: georgia, palatino;font-size: small">As a “compute” host for Hyper-V virtual machines, either in clusters or not</span></li>
	<li><span style="font-family: georgia, palatino;font-size: small">As a storage host for Scale-Out File Server, either in clusters or not</span></li>
	<li><span style="font-family: georgia, palatino;font-size: small">As a DNS server</span></li>
	<li><span style="font-family: georgia, palatino;font-size: small">As a web server running Internet Information Services (IIS)</span></li>
	<li><span style="font-size: small"><span style="font-family: georgia, palatino">As a host for applications that are developed using cloud application patterns and run in a container or virtual machine guest operating system</span><span style="font-family: georgia, palatino"> </span></span></li>
</ul>
<span style="font-family: georgia, palatino;font-size: small">Source : &lt;<a href="https://technet.microsoft.com/en-us/library/mt126167.aspx">https://technet.microsoft.com/en-us/library/mt126167.aspx</a>&gt;</span>

<span style="font-family: georgia, palatino;font-size: small"> </span>

<span style="font-size: small;color: #0000ff"><span style="font-family: georgia, palatino">Here we will see how to deploy a DNS server in a Nano Server virtual machine installation.</span><span style="font-family: georgia, palatino"> </span></span>

<strong><span style="font-family: georgia, palatino;font-size: medium;color: #0000ff">Prerequisites:</span></strong>
<ul>
	<li><span style="font-size: small"><span style="font-family: georgia, palatino">Windows Server® 2016 Technical Preview ISO : You can download the ISO </span></span><a style="font-family: georgia, palatino;font-size: x-small" href="https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview">here</a></li>
	<li><span style="font-family: georgia, palatino;font-size: small">A Windows 2012 R2 or Windows Server® 2016 Technical Preview Server running as Hyper-V host.</span></li>
</ul>
<span style="font-family: georgia, palatino;font-size: small"> </span>

<strong><span style="font-family: georgia, palatino;font-size: medium;color: #0000ff">Create the Nano Server DNS VHD</span></strong>
<ul>
	<li><span style="font-family: georgia, palatino;font-size: small">Mount the Windows Server® 2016 Technical Preview ISO (double click on the file). Note the drive in which it is mounted.</span></li>
	<li><span style="font-family: georgia, palatino;font-size: small">Copy NanoServerImageGenerator.psm1 and Convert-WindowsImage.ps1 from the \NanoServer folder in the Windows Server Technical Preview ISO to a folder on your hard drive.</span></li>
	<li><span style="font-family: georgia, palatino;font-size: small">Start Windows PowerShell as an administrator, change directory to the folder where you've placed these scripts and then import the NanoServerImageGenerator script with Import-Module NanoServerImageGenerator.psm1 -Verbose</span></li>
	<li><span style="font-family: georgia, palatino;font-size: small">Create a VHD that sets a computer name and includes the Hyper-V guest drivers by running the following command which will prompt you for an administrator password for the new VHD:</span></li>
</ul>
<p style="margin-left: 60px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">New-NanoServerImage -MediaPath &lt;path to root of media&gt; -BasePath .\Base -TargetPath .\NanoServerVM\NanoServerVM.vhd -ComputerName &lt;computer name&gt; -GuestDrivers -packages Microsoft-NanoServer-DNS-Package </span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small">where</span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small"><span style="color: #0000ff">&lt;</span><span style="font-family: 'courier new', courier;color: #0000ff">path to root of media&gt;</span> is the path to the drive where where you have mounted the ISO.</span></p>
<p style="margin-left: 60px"><span style="font-size: small"><span style="font-family: georgia, palatino"><span style="color: #0000ff;font-family: 'courier new', courier">-BasePath</span> specifies a folder that will be created to copy the Nano Server WIM and packages to.</span></span></p>
<p style="margin-left: 60px"><span style="font-size: small"><span style="font-family: georgia, palatino"><span style="font-family: 'courier new', courier;color: #0000ff">-TargetPath</span> specifies the full path, including the filename and extension, where the resulting VHD or VHDX will be created.</span></span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small"><span style="color: #0000ff;font-family: 'courier new', courier">-ComputerName</span> is the computer name you provide for the Nano Server virtual machine you are creating.</span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small"><span style="font-family: 'courier new', courier;color: #0000ff">-Packages</span> takes the value '<span style="color: #0000ff">Microsoft-NanoServer-DNS-Package</span>' which configures the nanoserver vhd with DNS server package</span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small">Example:</span></p>
<p style="margin-left: 60px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">New-NanoServerImage -MediaPath F:\ -BasePath .\Base -TargetPath .\NanoServerVMDNS.vhd -ComputerName DNSServerNano -GuestDrivers -Packages Microsoft-NanoServer-DNS-Package</span></p>
<p style="margin-left: 60px"><span style="font-size: small"><span style="font-family: georgia, palatino">This example creates a VHD from an ISO mounted as <span style="color: #0000ff">F:\</span>. </span></span></p>
<p style="margin-left: 60px"><span style="font-size: small"><span style="font-family: georgia, palatino">When creating the VHD it will use a folder called <span style="color: #0000ff">Base</span> in the same directory where you ran <span style="color: #0000ff">New-NanoServerImage</span>;</span></span><span style="font-family: georgia, palatino;font-size: small">it will place the VHD (called </span><span style="font-family: georgia, palatino;font-size: small;color: #0000ff">NanoServerVMDNS</span><span style="font-family: georgia, palatino;font-size: small">.vhd) in a folder from where the command is run. </span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small">The computer name for the machine booted with this VHD will be </span><span style="font-family: georgia, palatino;font-size: small;color: #0000ff">DNSServerNano </span><span style="font-family: georgia, palatino;font-size: small">and will have virtual machine drivers installed for running Hyper-V. If you choose .</span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small"><span style="color: #0000ff">NanoServerVMDNS</span>.vhd, the result uses the MBR layout. If you want the GPT layout, use <span style="color: #0000ff">NanoServerVMDNS</span>.vhdx, which support Generation 2 virtual machines.</span></p>

<div></div>
<p style="margin-left: 60px"><em><span style="font-size: small"><span style="font-family: georgia, palatino"><strong>Note</strong>:  </span><span style="font-family: georgia, palatino">New-NanoServerImage is supported on Windows 8.1, Windows 10, Windows Server 2012 R2, and Windows Server 2016 Threshold Preview. </span></span></em></p>

<ul>
	<li><span style="font-family: georgia, palatino;font-size: small">You can optionally provide IP Address to the VHD or rely on your DHCP server to provide you an IP which you can change later  </span></li>
</ul>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small">An example of pre-configuring the DNS server nanoserver image with networking setting is</span></p>
<p style="margin-left: 60px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">New-NanoServerImage -MediaPath F:\ -BasePath .\Base -TargetPath .\NanoServerVMDNS.vhd -ComputerName DNSServerNano -GuestDrivers -Packages Microsoft-NanoServer-DNS-Package -InterfaceNameOrIndex Ethernet -Ipv4Address 192.168.1.2 -Ipv4SubnetMask 255.255.255.0 -Ipv4Gateway 192.168.1.1</span></p>
<span style="font-family: georgia, palatino;font-size: small"> </span>
<ul>
	<li><span style="font-size: small"><span style="font-family: georgia, palatino">In Hyper-V Manager, create a new virtual machine and use the VHD created in Step 3.</span></span></li>
	<li><span style="font-family: georgia, palatino;font-size: small">Boot the virtual machine and in Hyper-V Manager connect to the virtual machine.</span></li>
	<li><span style="font-family: georgia, palatino;font-size: small">Log on to the Recovery Console (see the "Nano Server Recovery Console" section in this <a href="https://technet.microsoft.com/en-us/library/mt126167.aspx" target="_blank">guide </a>), using the administrator and password you supplied while running the script in Step 3. Here you can see the firewall and network settings.</span></li>
</ul>
<p style="margin-left: 60px"><a href="https://msdnshared.blob.core.windows.net/media/2015/12/nano1.png"><img class="  wp-image-1581 aligncenter" src="https://msdnshared.blob.core.windows.net/media/2015/12/nano1-300x225.png" alt="nano1" width="663" height="497" /></a></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small"><a href="/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/Nano2.png">
</a><img class="  wp-image-1591 aligncenter" src="https://msdnshared.blob.core.windows.net/media/2015/12/nano2-300x223.png" alt="nano2" width="662" height="492" />
</span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small">By default with the DNS image the firewall exceptions for DNS are added. If you want the Ping to be working, you need to enable appropriate firewall exceptions.</span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small">You can also change the network configurations.</span></p>
<span style="color: #0000ff"><strong><span style="font-family: georgia, palatino;font-size: small">Obtain the IP address of the Nano Server virtual machine and use Windows PowerShell remoting or other remote management tool to connect to and remotely manage the virtual machine.</span></strong></span>

<span style="font-family: georgia, palatino;font-size: small"> </span>

<strong><span style="font-family: georgia, palatino;font-size: medium;color: #0000ff">Installing the DNS Server Role</span></strong>

<span style="font-family: georgia, palatino;font-size: small">Nano Server is 100% managed remotely. There is no local logon capability at all, nor does it support Terminal Services. However, you have a wide variety of options for managing Nano Server remotely, including Windows PowerShell, Windows Management Instrumentation (WMI), Windows Remote Management, and Emergency Management Services (EMS).</span>

<span style="font-family: georgia, palatino;font-size: small">To use any remote management tool, you will probably need to know the IP address of the Nano Server. Some ways to find out the IP address include:</span>
<ul>
	<li><span style="font-family: georgia, palatino;font-size: small">Using the computer name you assigned to the Nano Server while configuring it, you can get the IP address with ping. For example, ping NanoServer-PC /4.  If you want the Ping to be working, you need to enable appropriate firewall exceptions.</span></li>
	<li><span style="font-family: georgia, palatino;font-size: small">Or, you can find it on the Nano Server Recovery Console Networking section once you have logged on.</span></li>
</ul>
<p style="margin-left: 30px"><span style="font-family: georgia, palatino;font-size: small">(Read more at : &lt;<a href="https://technet.microsoft.com/en-us/library/mt126167.aspx">https://technet.microsoft.com/en-us/library/mt126167.aspx</a>&gt; )</span></p>
<span style="font-family: georgia, palatino;font-size: small"> </span>

<strong><span style="font-family: georgia, palatino;font-size: medium;color: #0000ff">Using Windows PowerShell Remoting</span></strong>

<span style="font-family: georgia, palatino;font-size: small">To manage Nano Server with Windows PowerShell remoting, you need to add the IP address of the Nano Server to your management computer’s list of trusted hosts, add the account you are using to the Nano Server’s administrators, and enable CredSSP if you plan to use that feature.</span>

<span style="font-family: georgia, palatino;font-size: small">To add the Nano Server to the list of trusted hosts, run this command at an elevated Windows PowerShell prompt:</span>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">Set-Item WSMan:\localhost\Client\TrustedHosts "&lt;IP address of Nano Server&gt;"</span></p>
<span style="font-family: georgia, palatino;font-size: small">To start the remote Windows PowerShell session, start an elevated local Windows PowerShell session, and then run these commands:</span>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">$ip = “&lt;IP address of Nano Server&gt;”</span></p>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">$user = “$ip\Administrator”</span></p>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">Enter-PSSession -ComputerName $ip -Credential $user</span></p>
<span style="font-family: georgia, palatino;font-size: small">You can now run Windows PowerShell commands on the Nano Server as normal.</span>

<span style="font-family: georgia, palatino;font-size: small"> </span>

<strong><span style="font-family: georgia, palatino;font-size: medium;color: #0000ff">Extract the DNS Role on the Nano Server</span></strong>

<span style="font-family: georgia, palatino;font-size: small"> Once you have entered the PS session of the nano server, the first step is to unpack the DNS server full role there. </span>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">[10.150.172.205]: PS C:\Users\Administrator\&gt;Enable-WindowsOptionalFeature -Online -FeatureName DNS-Server-Full-Role</span></p>
<span style="font-family: georgia, palatino;font-size: small">This will extract the DNS server role and its cmdlets. Now you need to import the DNSserver module and get the DNS management cmdlets operational.</span>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">[10.150.172.205]: PS C:\Users\Administrator\&gt;import-module DNSServer</span></p>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">[10.150.172.205]: PS C:\Users\Administrator\&gt;get-command -Module DNSServer</span></p>
<span style="font-family: georgia, palatino;font-size: small">At this point you have installed the DNS server role and the DNS management tools on the nano server. You can now perform DNS administrative operations on this DNS server.</span>

<span style="font-family: georgia, palatino;font-size: small"> </span>

<strong><span style="font-family: georgia, palatino;font-size: medium;color: #0000ff">Perform DNS operations</span></strong>

<span style="font-family: georgia, palatino;font-size: small">We can now perform some DNS operations to validate the sanity of the setup.</span>
<ul>
	<li><span style="font-family: georgia, palatino;font-size: small">Add a zone</span></li>
</ul>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">[10.150.172.205]: PS C:\Users\Administrator\&gt;Add-DnsServerPrimaryZone -ZoneName contoso.com -ZoneFile contoso.com.dns</span></p>

<ul>
	<li><span style="font-family: georgia, palatino;font-size: small">Add a Record in that Zone </span></li>
</ul>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">[10.150.172.205]: PS C:\Users\Administrator\&gt;Add-DnsServerResourceRecordA -Name www -ZoneName contoso.com -IPv4Address 10.0.0.2</span></p>

<ul>
	<li><span style="font-family: georgia, palatino;font-size: small">Query that record from some other PowerShell window on the management server</span><span style="font-family: georgia, palatino;font-size: small"> </span></li>
</ul>
<p style="margin-left: 30px"><span style="font-family: 'courier new', courier;font-size: small;color: #0000ff">PS C:\Users\Administrator&gt; resolve-dnsName <a href="https://www.contoso.com"><span style="color: #0000ff">www.contoso.com</span></a> -Server 10.150.172.205</span><span style="font-family: georgia, palatino;font-size: small"> </span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small;color: #0000ff">Name                                           Type   TTL   Section    IPAddress</span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small;color: #0000ff">----                                           ----   ---   -------    ---------</span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small;color: #0000ff"><a href="https://www.contoso.com"><span style="color: #0000ff">www.contoso.com</span></a>                                A      3600  Answer     10.0.0.2</span></p>
<p style="margin-left: 60px"><span style="font-family: georgia, palatino;font-size: small"> </span></p>
<strong><span style="font-family: georgia, palatino;font-size: small;color: #0000ff">Kudos! You have successfully deployed DNS Server on Nano Server in Windows Server 2016. </span></strong>

<span style="font-family: georgia, palatino;font-size: small"> </span>

<strong><span style="font-family: georgia, palatino;font-size: small">Note:</span></strong>

<em><span style="font-family: georgia, palatino;font-size: small">The Nano server does not support running a domain controller in Windows Server Technical Preview 4</span></em>

<em><span style="font-family: georgia, palatino;font-size: small">The DNS server thus created cannot be a domain controller and can host only file backed zones.</span></em>

<span style="font-family: georgia, palatino;font-size: small"> </span>

<span style="font-family: georgia, palatino;font-size: small">(This article has been authored by<em> <a href="https://twitter.com/KrAsh0x35" target="_blank">Kumar Ashutosh</a> and Vithalprasad Gaitonde with inputs from the Nano Server team. For feedback and support reach out to us at <span style="color: #0000ff">windns-users@lists.cloudapp.net</span>)</em></span>]]></content:encoded>
    </item>
    <item>
      <title>Network Forensics with Windows DNS Analytical Logging</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/network-forensics-with-windows-dns-analytical-logging</link>
      <pubDate>Mon, 23 Nov 2015 22:52:32 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/2015/11/23/network-forensics-with-windows-dns-analytical-logging/</guid>
      <description><![CDATA[(Co Authored by Rob Mead (Microsoft Threat Intelligence Center), Kumar Ashutosh and Vithalprasad...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:&#39;book antiqua&#39;, palatino;"><em style="font-size:12px;">(Co Authored by Rob Mead (Microsoft Threat Intelligence Center), <a href="https://twitter.com/KrAsh0x35" target="_blank">Kumar Ashutosh</a> and Vithalprasad Gaitonde (Windows DNS Server)</em></span></p>
<h1><span style="color:#0000ff;font-family:book antiqua,palatino;font-size:large;"><b>Overview</b></span></h1>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">DNS queries and responses are a key data source used by network defenders in support of incident response as well as intrusion discovery. If these transactions are collected for processing and analytics in a big data system, they can enable a number of valuable security analytic scenarios. An exercise to this end was conducted with Microsoft internal DNS systems. This document outlines the approach, and results&nbsp; to enable Windows DNS customers to re-produce the outcome.</span><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<h1><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:large;color:#0000ff;"><b>Motivation</b></span></h1>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">The at-scale processing and analysis of DNS data in a Big Data system is a powerful capability that can be used to support analyst investigations and discovery of intrusions. Below are a selection of scenarios that are enabled &ndash;</span></p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;"></span><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:medium;color:#3366ff;"><b>IOC Detection</b></span></p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">Domain Names and IP addresses are one of the most common sources of Indicators of Compromise (IOC), often referring to Command and Control servers of attacker infrastructure. The collection, processing and storage of DNS data allows for queried domains, and resource record response data for hosts within the network to be searched for these IOCs, providing a quick and accurate detection of whether the network has been impacted by an intrusion. The on-going collection of this data also allows for a powerful retrospective search of IOCs on computer networks.</span><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:medium;color:#3366ff;"><b>Protocol Agnostic Detection</b></span></p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">Network defenders often have access to other data sources that can be searched for IP and Domain IOCs, such as Web proxy and Firewall logs. DNS collection provides a higher-fidelity detection of these, where the protocol implemented by attacker Command and Control infrastructure does not involve HTTP, or where DNS itself is being used as a covert channel.&nbsp;</span><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:medium;color:#3366ff;"><b>Covert Channel Detection</b></span></p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">DNS can be used by adversaries as a covert channel to provide remote configuration or data transfer capability to malware inside a computer network. At scale analysis of abnormal response packets can be used to identify such covert channels.</span><span style="font-family:book antiqua,palatino;font-size:small;"><b>&nbsp;</b></span></p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:medium;color:#3366ff;"><b>Adversary Tracking</b></span></p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">Historic logging of query and response data and associated analysis enables the tracking of command and control infrastructure usage used by adversaries over time, where multiple domains and IP addresses are used and infrastructure is transitioned following the discovery of activity.</span><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<p style="text-align:justify;"><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:large;color:#0000ff;"><b>Analytical Logging in Windows DNS</b></span></p>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">Windows Server DNS (2012R2 onwards) has implemented enhanced logging of various DNS server actions in Windows, including the logging of query and response data with a focus on negligible performance impact.</span></p>
<p style="text-align:justify;margin-left:30px;"><span style="color:#3366ff;font-size:medium;"><span style="font-family:&#39;book antiqua&#39;, palatino;"></span><span style="font-family:&#39;book antiqua&#39;, palatino;"><b>Negligible Performance Impact of Enabling </b></span></span></p>
<p style="text-align:justify;margin-left:30px;"><span style="font-family:book antiqua,palatino;font-size:small;"><i>A DNS server running on modern hardware that is receiving 100,000 queries per second (QPS) can experience a performance degradation of 5% when analytic logs are enabled. There is no apparent performance impact for query rates of 50,000 QPS and lower</i></span></p>
<p style="text-align:justify;margin-left:30px;"><span style="font-family:book antiqua,palatino;font-size:small;"><i></i></span><span style="font-family:book antiqua,palatino;font-size:small;">See the following technet article for detailed information regarding this feature, including how to enable it on your infrastructure &ndash;</span><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<p style="text-align:justify;margin-left:30px;"><span style="font-family:book antiqua,palatino;font-size:small;"><a href="https://technet.microsoft.com/en-us/library/dn800669.aspx"><span style="color:#0563c1;">https://technet.microsoft.com/en-us/library/dn800669.aspx</span></a></span></p>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;"></span><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:large;color:#0000ff;"><b>Details of Logged Data</b></span></p>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">The <b>Analytic</b> log type implemented through this feature contains much of the day to day operational detail of the DNS server, and although many types of data are recorded, including zone transfer requests, responses and dynamic updates, for the forensics and threat analytics we will focus on QUERY_RECEIVED and RESPONSE_SUCCESS data types in this example. These form the core of our current internal collection and pose the biggest challenge in collection due to volumes of data.</span><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">QUEY_RECEIVED and RESPONSE_SUCCESS events that are logged contain a number of the fields that make up a query and response, but crucially also contain the full packet data received enabling the processing of any aspect of one of these objects. Here is an example response event from the <b>Applications and Services Logs\Microsoft\Windows\DNS-Server </b>analytic log<b> </b>&ndash;</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/3225.Log.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/3225.Log.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/3225.Log.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/3225.Log.jpg" border="0" alt=" " style="display:block;margin-left:auto;margin-right:auto;" /></a></span></p>
<p><b style="color:#0000ff;font-family:&#39;book antiqua&#39;, palatino;font-size:large;text-align:justify;">Implementation</b></p>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">The logging of this data was implemented as an ETW (Event Tracing for Windows) provider. Many event types in Windows are enabled via this mechanism, and allow for high performance logging of data, and the subscription to these providers via their unique GUIDs. In the case of the Microsoft-Windows-DNSServer provider, GUID {<span style="color:#0000ff;"><strong>EB79061A-A566-4698-9119-3ED2807060E7</strong></span>} is used as its identity. Windows comes with many tools to record samples of this data, such as <em><a href="https://msdn.microsoft.com/en-us/library/windows/hardware/ff552994(v=vs.85).aspx">tracelog</a></em>, which will record events offered by the ETW channel and write them to a file. The Windows event viewer essentially replicates this subscription model when presenting the administrator with a view of these events, writing the collection sample to a temporary file location. As an example, here is the location of the data underlying the enhanced DNS logging feature &ndash;</span><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;"><b>%SystemRoot%\System32\Winevt\Logs\Microsoft-Windows-DNSServer%4Analytical.etl</b></span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/8080.Log2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/8080.Log2.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/8080.Log2.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/8080.Log2.png" border="0" alt=" " style="display:block;margin-left:auto;margin-right:auto;" /></a></p>
<p><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;">The event viewer acts as a browser for this file.</span></p>
<p><strong><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:large;color:#0000ff;">Collection of Data</span></strong></p>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;">One method of collecting events from Windows servers is Windows Event Collection (WEC). WEC is a mechanism built into Windows that will forward an XML representation of an event to a configured collection server, based upon a filter specifying an event identifier and selection criteria. WEC, however can only be configured for log types of &lsquo;<b>Operational&rsquo;</b>. Operational events are stored in a rolled permanent location inside an .evtx file on the host. When these events are created they are also written via the Windows Event Collector service, which performs forwarding off host. For more information on Windows Event Collection, see the following article on msdn &ndash;</span><span style="font-family:book antiqua,palatino;font-size:small;">&nbsp;</span></p>
<p style="text-align:justify;"><span style="font-family:book antiqua,palatino;font-size:small;"><a href="https://msdn.microsoft.com/en-us/library/windows/desktop/bb427443(v=vs.85).aspx"><span style="color:#0563c1;">https://msdn.microsoft.com/en-us/library/windows/desktop/bb427443(v=vs.85).aspx</span></a></span></p>
<p style="text-align:justify;"><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;">There is an inherent overhead in logging an event in this way, and is the reason DNS query and response logging was implemented as an &lsquo;Analytic&rsquo;</span><b style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;"> </b><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;">type. Analytic log types do not write events via the WEC service and as such have a lower performance impact. This helps to give us the negligible performance win we mention earlier at a high QPS in the order of 100 thousand queries per second.</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;"></span><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;">For servers that do not have such high QPS needs, using WEC from an operational channel becomes a more viable option. Internal DNS servers which serve a dedicated enterprise network may have significantly lower QPS requirements (around 10,000 QPS.) At these levels, collection over WEC becomes a more realistic scenario. Further, from a security analytics stand point the majority of queries and responses for reputed domains such as *.microsoft.com, are less valuable to us and can be dropped, further reducing the effective QPS logged for WEC.</span><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;">&nbsp;</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;">For the internal Microsoft project, a high performance event collector was implemented that consumes the QUERY_RECEIVED and RESPONSE_SUCCESS events from the ETW channel on DNS servers. This consumer filters out high repute domains that are less valuable to us for security analytics and writes these to an operational log equivalent ready for collection over normal WEC channels. The following diagram gives a high level overview of the functionality of this tool &ndash;</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/6763.Log3.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/6763.Log3.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/6763.Log3.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/6763.Log3.jpg" border="0" alt=" " style="display:block;margin-left:auto;margin-right:auto;" /></a></p>
<p><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:large;color:#0000ff;"><b>Query Volume Modelling</b></span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;">Selecting domain names for filtering can be a balancing act that requires modelling using sample data. Front loading too many domain filters in the tool can cause un-necessary processing, whilst letting high volume domains through to the event writer can result in un-necessary volume and associated storage costs.</span><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;">&nbsp;</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;">Customers can collect a sample of query and response data from the analytic logging in a .etl file from a DNS server on their network. This ETL file can be analyzed for the top volume queried domains in terms of Second Level Domain (SLD). Taking the top SLDs, excluding county TLDs such as .co.uk customers can model query volume reduction by the application of various SLD filters, and extrapolate these to enterprise network coverage. These figures can then be used to calculate approximate storage costs of implementing such a solution. Alternatively, data such as the Alexa Top 100 SLDs can be taken as a starting point and refined as required to fit the needs of the enterprise.</span><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;">&nbsp;</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;">In our prototype, a value of 100 SLDs was chosen for implementation based upon sample data logged on the network. This resulted in a reduction of volume from 3,286 QPS from our sample data set, to 136 QPS, 4.13% of the total volume. The extrapolated effective QPS rate for the whole of the network drops significantly in this scenario, easily manageable by big data and WEC infrastructure.</span><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;">&nbsp;</span></p>
<p><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:large;color:#0000ff;"><b>The Pilot Deployment and Results</b></span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;">We worked with Microsoft IT to pilot the analytic logging, and the ETW consumer/filtering tool to the Microsoft corporate DNS infrastructure. The pilot project was rolled out to 29 DNS caching servers. A little snapshot of the query volume that this project was dealing with is:</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/1411.log4.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/1411.log4.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/1411.log4.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/1411.log4.jpg" border="0" alt=" " style="display:block;margin-left:auto;margin-right:auto;" /></a><br /></span></p>
<p><span style="font-family:&#39;book antiqua&#39;, palatino;font-size:small;">The total size of raw data storage post filtering for all 29 Microsoft corporate DNS servers peaks at approx. 100GB&nbsp; / day at the busiest times, and drops down to around 15gb / day during less busy periods such as weekends. &nbsp;</span></p>
<p><span style="font-family:book antiqua,palatino;font-size:small;"></span><strong><span style="font-size:small;font-family:&#39;book antiqua&#39;, palatino;color:#3366ff;">This enables a whole new way of using information related to compromised domains, the identification of malicious transactions, infected machines and thus enabling us to monitor and fortify our network.</span></strong></p>
<p><strong><span style="font-size:small;font-family:&#39;book antiqua&#39;, palatino;color:#3366ff;">&nbsp;</span></strong></p>
<p><strong><span style="font-size:small;font-family:&#39;book antiqua&#39;, palatino;color:#3366ff;">Note: You can try out this scenario on a fully patched 2012R2 DNS server as well as the <a href="https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview">Windows DNS server 2016 Technical Preview</a></span></strong></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>DDI survey</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/ddi-survey</link>
      <pubDate>Fri, 16 Oct 2015 04:22:04 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/2015/10/16/ddi-survey/</guid>
      <description><![CDATA[Folks,We, the networking team at Microsoft, want to engage with you to make our products serve you...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">Folks,</span><p><span lang="EN"><span style="font-size:medium;">We, the networking team at Microsoft, want to engage with you to make our products serve you better.</span></span><span lang="EN"> </span><span lang="EN"><span style="font-size:medium;">For this we are conducting a survey to know more about the DNS, DHCP and IP address analytics scenarios that you have in your organization.</span></span></p><p><span lang="EN"><span style="font-size:medium;">It will be great if you can&nbsp;complete the following survey: </span></span></p><p><span><a href="https://microsoft.qualtrics.com/SE/?SID=SV_bf7xtW8v1O3aJlX" target="_blank"><span style="color:#0563c1;">https://microsoft.qualtrics.com/SE/?SID=SV_bf7xtW8v1O3aJlX</span></a></span></p><p></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>Load balancing DNS servers using DHCP Server Policies</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/load-balancing-dns-servers-using-dhcp-server-policies</link>
      <pubDate>Wed, 30 Sep 2015 23:03:03 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/2015/10/01/load-balancing-dns-servers-using-dhcp-server-policies/</guid>
      <description><![CDATA[This blog is authored by Ken Johnson, Senior Premier Field Engineer, Microsoft.
DNS is one of the...]]></description>
      <content:encoded><![CDATA[<p><em>This blog is authored by Ken Johnson, Senior Premier Field Engineer, Microsoft.</em></p>
<p>DNS is one of the critical services needed for accessing network resources.&nbsp; Response time of the DNS server is critical to the speed and performance of relying services.&nbsp; These two blogs have the timeout information and DNS client behavior explained in detail (<a href="/b/stdqry/archive/2011/12/02/dns-clients-and-timeouts-part-1.aspx">DNS Clients and Timeouts (Part 1) </a>&nbsp;and <a href="/b/stdqry/archive/2011/12/15/dns-clients-and-timeouts-part-2.aspx">DNS Clients and Timeouts (part 2)</a>).&nbsp; The important aspect of this to note is that the DNS server has a full second to respond to queries.&nbsp; As long as all clients receive a response within this timeframe everything operates from a single DNS server.&nbsp; The functionality to query additional DNS servers in the event that it does not respond in time is described in the above blogs.&nbsp; During high usage times I&rsquo;ve seen varied response times, but under load the primary DNS server will respond slower than other DNS servers available to a site. &nbsp;Normally, the DNS configuration is done through DHCP and options to load balance the preferred DNS servers are limited.&nbsp; &nbsp;One option could be to split your scopes and individually assign a random DNS server order for each half of the scope.&nbsp; This is inefficient and will lead to an increase in management overhead to keep up.&nbsp; This may be fine if you are only maintaining a few scopes.&nbsp; But, maintaining this across multiple scopes would require unique settings on each scope and any changes to the DNS infrastructure would need to be changed individually as well.</p>
<p>Now with Windows Server 2012 R2 we have the availability of <a href="/b/teamdhcp/archive/2012/08/22/granular-dhcp-server-administration-using-dhcp-policies-in-windows-server-2012.aspx">Policy Based Assignment to configure options for the server or the scope</a>.&nbsp; One possibility to load balance these DNS server settings is to use the MAC address of the requesting client.&nbsp; The Policy Based Assignment gives us the option to use the MAC address as a condition to specify DHCP options to use for our clients.&nbsp; The MAC address is made up of two parts. The first half is the Organizationally Unique Identifier (OUI) and the second half is the Network Interface Controller (NIC) specific section.&nbsp; Because in many acquisitions of new hardware we end up with the same manufacturer focusing on the second half of the MAC address would result in a much higher probability of getting an equal distribution of requests to the corresponding DNS servers.&nbsp; If we were to focus on the first half of the MAC address we would end up assigning large blocks of clients to the same DNS server, this would not be the intended outcome.&nbsp; If we used the entire MAC address we would end up having to distribute 281,474,976,710,656 possibilities into each of our policies, too many to put in.&nbsp; That being said in this case we chose to simply use the last two digits with only 256 possibilities to distribute between the policies.&nbsp;</p>
<p>Using PowerShell we can easily randomize the DNS servers utilized by focusing in on the last two digits of the MAC address and prefixing the rest with a wildcard(*).&nbsp; In the script below, we create all 256 possibilities from 00 to FF in an array of conditions for each policy to meet.&nbsp; Then assign the MAC address to each policy in a sequenced order to ensure a pseudo random assignment throughout the policies.&nbsp; The following function will configure one policy per DNS server specified.&nbsp; Each policy will specify a different DNS server as the preferred primary DNS server.&nbsp; Additionally, each policy will get a distribution of the MAC addresses to match to facilitate the &lsquo;load balancing&rsquo;.</p>
<p><em>function Add-CustomDHCPServerv4LoadBalancedDNSPolicy</em></p>
<p><em>{</em></p>
<p><em>&nbsp;&nbsp;&nbsp; param (</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [string]</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $PolicyPrefix,</em></p>
<p><em>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;[ipaddress[]]</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $DNSServers,</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [string[]]</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ComputerName</em></p>
<p><em>&nbsp;&nbsp;&nbsp; )</em></p>
<p><em>&nbsp;</em></p>
<p><em>&nbsp;&nbsp;&nbsp; for($i=0;$i-lt$DNSServers.Count;$i++)</em></p>
<p><em>&nbsp;&nbsp;&nbsp; {</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set-Variable -Name $i -Value @(&#39;EQ&#39;)</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;}</em></p>
<p><em>&nbsp;&nbsp;&nbsp; for([int]$i=0;$i-lt256;$i++)</em></p>
<p><em>&nbsp;&nbsp;&nbsp; {</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $cv = Get-Variable -Name ($i%$DNSServers.Count) -ValueOnly</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $v = $i | % { $_.ToString(&quot;X&quot;) } | % { if($_.length -lt 2){ &quot;0&quot;+$_ }else{ $_ } }</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set-Variable -Name ($i%$DNSServers.Count) -Value ($cv + (&quot;*$v&quot;))</em></p>
<p><em>&nbsp;&nbsp;&nbsp; }</em></p>
<p><em>&nbsp;&nbsp;&nbsp; for($i=0;$i-lt$DNSServers.Count;$i++)</em></p>
<p><em>&nbsp;&nbsp;&nbsp; {</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ips = @()</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;$policyPrefix-$($i+1) - $((Get-Variable -Name $i -ValueOnly).Count - 1)&quot;</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for($f=0;$f-lt$DNSServers.Count;$f++)</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $ips += $DNSServers[$(($i+$f)%($DNSServers.Count))]</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach($computer in $ComputerName)</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Add-DhcpServerv4Policy -Name &quot;$PolicyPrefix-$($i+1)&quot; -Condition OR -MacAddress (Get-Variable -Name $i -ValueOnly) -ComputerName $computer</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set-DhcpServerv4OptionValue -PolicyName &quot;$PolicyPrefix-$($i+1)&quot;&nbsp; -OptionId 006 -Value $ips -ComputerName $computer</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</em></p>
<p><em>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;</em></p>
<p><em>}</em></p>
<p>Let&rsquo;s look at an example where we have 3 DNS servers to specify:</p>
<p>Server1 = 10.0.0.253</p>
<p>Server2 = 10.0.0.252</p>
<p>Server3 = 10.0.0.249&nbsp;</p>
<p>To run the command we would need to specify three parameters.&nbsp; <br /> $PolicyPrefix = The name of the policy</p>
<p>$DNSServers = An array of possible DNS servers in your environment</p>
<p>$ComputerName = An array of DHCP servers that you want to configure these policies on</p>
<p>Add-CustomDHCPServerv4LoadBalancedDNSPolicy DNS &#39;10.0.0.254&#39;,&#39;10.0.0.253&#39;,&#39;10.0.0.249&#39; &#39;DC-01&#39;,&#39;DC-02&#39;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/DNSPoliciesPowerShell.jpg.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/DNSPoliciesPowerShell.jpg.png"><img width="833" alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/DNSPoliciesPowerShell.jpg.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/DNSPoliciesPowerShell.jpg.png" /></a><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/DNSLoadBalancePolicy0.jpg.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/DNSLoadBalancePolicy0.jpg.png"></a></p>
<p>There are two DHCP servers in a failover partnership in this example DC-01 and DC-02.&nbsp; This command will run on both and configure three policies.&nbsp; The output of the command lets you know how the distribution of MAC addresses were placed into your policies. &nbsp;In this case, DNS-1 policy has 1 more criteria (86 in total) to match than policies DNS-2 and DNS-3 (85 in total).</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/DNSLoadBalancePolicy1.jpg.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/DNSLoadBalancePolicy1.jpg.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/DNSLoadBalancePolicy1.jpg.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/DNSLoadBalancePolicy1.jpg.png" border="0" /></a></p>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/DNSLoadBalancePolicy2.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/DNSLoadBalancePolicy2.jpg"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/DNSLoadBalancePolicy2.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/DNSLoadBalancePolicy2.jpg" border="0" /></a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/DNSLoadBalancePolicy.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/DNSLoadBalancePolicy.jpg"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/DNSLoadBalancePolicy.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/DNSLoadBalancePolicy.jpg" border="0" /></a>&nbsp;</p>
<p>Hope this helps the DHCP Administrators out there to administer the DNS server options in their environment!</p>]]></content:encoded>
    </item>
    <item>
      <title>A Description of the DNS Dynamic Update Message Format</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/a-description-of-the-dns-dynamic-update-message-format</link>
      <pubDate>Thu, 10 Sep 2015 05:41:00 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/2015/09/10/a-description-of-the-dns-dynamic-update-message-format/</guid>
      <description><![CDATA[Dynamic update enables DNS client computer to register and dynamically update their resource records...]]></description>
      <content:encoded><![CDATA[<p style="text-align:justify;">Dynamic update enables DNS client computer to register and dynamically update their resource records with a DNS server whenever changes occur. This reduces the need for manual administration of zone records, especially for clients that frequently move or change locations and use DHCP to obtain an IP address.<p style="text-align:justify;">The DNS Client and Server services support the use of dynamic updates, as described in Request for Comments (RFC) 2136, "Dynamic Updates in the Domain Name System." The DNS Server service allows dynamic update to be enabled or disabled on a per-zone basis at each authoritative server configured to load either a standard primary or AD-integrated zone.<br> <br> The dynamic update can happen on RRs (Resource Records) or sets of RRs (RRSets) in a DNS forward and/or reverse lookup zone.<br> The overall format of an UPDATE message sent by a DNS client machine is shown below:</p><table border="1" cellspacing="0" cellpadding="2" style="width:50%;margin-left:auto;margin-right:auto;">
<tbody>
<tr>
<td>
<p>Header</p>
</td>
</tr>
<tr>
<td>
<p>Zone &nbsp;&nbsp;&nbsp;(specifies the zone to be updated)</p>
</td>
</tr>
<tr>
<td>
<p>Prerequisite &nbsp;&nbsp;&nbsp;(RRs or RRsets which must (not) preexist)</p>
</td>
</tr>
<tr>
<td>
<p>Update&nbsp;&nbsp; &nbsp;(RRs or RRsets to be added or deleted)</p>
</td>
</tr>
<tr>
<td>
<p>Additional Data&nbsp;&nbsp; &nbsp;(additional data)</p>
</td>
</tr>
</tbody>
</table><p></p><p><span style="color:#0000ff;">Ethernet II, Src: Microsof_01:03:1e (00:15:5d:01:03:1e), Dst: Microsof_01:03:12 (00:15:5d:01:03:12)</span></p><p style="text-align:left;"><span style="color:#0000ff;"> Internet Protocol, Src: 192.168.1.134 (192.168.1.134), Dst: 192.168.1.2 (192.168.1.2)</span><br><span style="color:#0000ff;"> User Datagram Protocol, Src Port: 61777 (61777), Dst Port: domain (53)</span><br><span style="color:#0000ff;"> Domain Name System (query)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp; Transaction ID: 0x4fce</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp; Flags: 0x2800 (Dynamic update)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0... .... .... .... = Response: Message is a query</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .010 1... .... .... = Opcode: Dynamic update (5)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .... ..0. .... .... = Truncated: Message is not truncated</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .... ...0 .... .... = Recursion desired: Don't do query recursively</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .... .... .0.. .... = Z: reserved (0)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .... .... ...0 .... = Non-authenticated data: Unacceptable</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp; Zones: 1</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp; Prerequisites: 1</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp; Updates: 2</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp; Additional RRs: 0</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp; Zone</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; r2.com: type SOA, class IN</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp; Prerequisites</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; win7.r2.com: type CNAME, class NONE</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name: win7.r2.com</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: CNAME (Canonical name for an alias)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class: NONE (0x00fe)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Time to live: 0 time</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data length: 0</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp; Updates</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; win7.r2.com: type A, class ANY</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name: win7.r2.com</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: A (Host address)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class: ANY (0x00ff)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Time to live: 0 time</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data length: 0</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; win7.r2.com: type A, class IN, addr 192.168.1.134</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name: win7.r2.com</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: A (Host address)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class: IN (0x0001)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Time to live: 20 minutes</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data length: 4</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Addr: 192.168.1.134 (192.168.1.134)</span><br> <br> A DNS client update message instructs the DNS server to check and do certain things in the specified zone, on specific resource records based on the settings in the prerequisites and updates section.&nbsp;Such updates are said to be atomic, that is, all prerequisites must be satisfied for the update operation to be carried out.&nbsp;</p><p style="text-align:left;">Prerequisite resource records contain a set of resource record prerequisites that must be satisfied at the time the update message is received by the authoritative DNS server. There are five possible sets of values that can be expressed (as in RFC 2136):</p><ul>
<li style="text-align:left;">Resource record set exists (value independent). At least one resource record with a specified name and type (in the zone and class specified by the&nbsp;Zone Section) must exist.</li>
<li style="text-align:left;">Resource record set exists (value dependent). A set of resource records with a specified name and type exists and has the same members with the&nbsp;same data as the resource record set specified in this section.</li>
<li style="text-align:left;">Resource record set does not exist. No resource records with a specified name and type (in the zone and class denoted by the Zone section) exist.&nbsp;Name is in use. At least one resource record with a specified name (in the zone and class specified by the Zone section) exists. This prerequisite is not&nbsp;satisfied by empty nonterminals.</li>
<li style="text-align:left;">Name is not in use. No resource record of any type is owned by a specified name. This prerequisite is satisfied by empty nonterminals.</li>
</ul><p style="text-align:left;">The authoritative DNS server determines whether the prerequisites have been fulfilled. If they have, the authoritative DNS server performs the requested updates. If the prerequisites have not been fulfilled, the update fails. In either case, the authoritative DNS server replies to the client, indicating whether or not the update was successful.&nbsp;<br> <br> A sample prerequisites section might look like:<br> <br> Prerequisites<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000ff;">&nbsp; win7.r2.com: type CNAME, class NONE</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name: win7.r2.com</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: CNAME (Canonical name for an alias)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class: NONE (0x00fe)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Time to live: 0 time</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data length: 0</span></p><table border="1" cellspacing="0" cellpadding="2" style="width:100%;" align="center">
<tbody>
<tr>
<td style="text-align:center;"></td>
<td style="text-align:center;">
<p align="center"><span style="color:#0000ff;">RRset Exists</span><br><span style="color:#0000ff;"> (Value Independent)</span></p>
</td>
<td style="text-align:center;">
<p align="center"><span style="color:#0000ff;">RRset Exists</span><br><span style="color:#0000ff;"> (Value Dependent)</span></p>
</td>
<td style="text-align:center;">
<p align="center"><span style="color:#0000ff;">RRset Does</span><br><span style="color:#0000ff;"> NOT Exist</span></p>
</td>
<td style="text-align:center;">
<p align="center"><span style="color:#0000ff;">Name Is</span><br><span style="color:#0000ff;"> In Use</span></p>
</td>
<td style="text-align:center;">
<p align="center"><span style="color:#0000ff;">Name Is</span><br><span style="color:#0000ff;"> NOT In Use</span></p>
</td>
</tr>
<tr>
<td style="text-align:center;">
<p><span style="color:#0000ff;">Name</span></p>
</td>
<td style="text-align:center;">
<p align="center">&lt;RR Name&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;RR Name&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;RR Name&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;RR Name&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;RR Name&gt;</p>
</td>
</tr>
<tr>
<td style="text-align:center;">
<p><span style="color:#0000ff;">Type</span></p>
</td>
<td style="text-align:center;">
<p align="center">&lt;RR Type&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;RR Type&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;RR Type&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">ANY</p>
</td>
<td style="text-align:center;">
<p align="center">ANY</p>
</td>
</tr>
<tr>
<td style="text-align:center;">
<p><span style="color:#0000ff;">Class</span></p>
</td>
<td style="text-align:center;">
<p align="center">ANY</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;Zone Class&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">NONE</p>
</td>
<td style="text-align:center;">
<p align="center">ANY</p>
</td>
<td style="text-align:center;">
<p align="center">NONE</p>
</td>
</tr>
<tr>
<td style="text-align:center;">
<p><span style="color:#0000ff;">TTL</span></p>
</td>
<td style="text-align:center;">
<p align="center">0</p>
</td>
<td style="text-align:center;">
<p align="center">0</p>
</td>
<td style="text-align:center;">
<p align="center">0</p>
</td>
<td style="text-align:center;">
<p align="center">0</p>
</td>
<td style="text-align:center;">
<p align="center">0</p>
</td>
</tr>
<tr>
<td style="text-align:center;">
<p><span style="color:#0000ff;">RDLENGTH</span></p>
</td>
<td style="text-align:center;">
<p align="center">0</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;RDATA Length&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">0</p>
</td>
<td style="text-align:center;">
<p align="center">0</p>
</td>
<td style="text-align:center;">
<p align="center">0</p>
</td>
</tr>
<tr>
<td style="text-align:center;">
<p><span style="color:#0000ff;">RDATA</span></p>
</td>
<td style="text-align:center;">
<p align="center">&lt;Empty&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;IP/Name(PTR)&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;Empty&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;Empty&gt;</p>
</td>
<td style="text-align:center;">
<p align="center">&lt;Empty&gt;</p>
</td>
</tr>
</tbody>
</table><p><br> With the help of the table above the requiremets of the prerequisites section can be determent easily.&nbsp; <br> The update portion of the update message is just processed in case a cname resource record with the name win7 doesn't exist in the zone r2.com.&nbsp; <br> <br> The updates section contains the resource records that are to be added and/or deleted from the zone.&nbsp;Four operations are available to be&nbsp;performed during the update:</p><p style="margin-left:30px;">Add resource records to a resource records set.<br>Delete a resource records set.<br>Delete all resource records sets from a name.<br>Delete a resource record from a resource records set.</p><p>Updates</p><p><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; win7.r2.com: type A, class ANY</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name: win7.r2.com</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: A (Host address)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class: ANY (0x00ff)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Time to live: 0 time</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data length: 0</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; win7.r2.com: type A, class IN, addr 192.168.1.134</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Name: win7.r2.com</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Type: A (Host address)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class: IN (0x0001)</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Time to live: 20 minutes</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Data length: 4</span><br><span style="color:#0000ff;"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Addr: 192.168.1.134 (192.168.1.134)</span></p><table border="1" cellspacing="0" cellpadding="2" style="width:100%;" align="center">
<tbody>
<tr>
<td></td>
<td>
<p align="center"><span style="color:#0000ff;">Add to an RRset</span></p>
</td>
<td>
<p align="center"><span style="color:#0000ff;">Delete an RRset</span></p>
</td>
<td>
<p align="center"><span style="color:#0000ff;">Delete All RRsets for a name</span></p>
</td>
<td>
<p align="center"><span style="color:#0000ff;">Delete an RR from an RRset</span></p>
</td>
</tr>
<tr>
<td>
<p><span style="color:#0000ff;">Name</span></p>
</td>
<td>
<p align="center">&lt;RR Name&gt;</p>
</td>
<td>
<p align="center">&lt;RR Name&gt;</p>
</td>
<td>
<p align="center">&lt;RR Name&gt;</p>
</td>
<td>
<p align="center">&lt;RR Name&gt;</p>
</td>
</tr>
<tr>
<td>
<p><span style="color:#0000ff;">Type</span></p>
</td>
<td>
<p align="center">&lt;RR Type&gt;</p>
</td>
<td>
<p align="center">&lt;RR Type&gt;</p>
</td>
<td>
<p align="center">ANY</p>
</td>
<td>
<p align="center">&lt;RR Type&gt;</p>
</td>
</tr>
<tr>
<td>
<p><span style="color:#0000ff;">Class</span></p>
</td>
<td>
<p align="center">&lt;Zone Class&gt;</p>
</td>
<td>
<p align="center">ANY</p>
</td>
<td>
<p align="center">ANY</p>
</td>
<td>
<p align="center">NONE</p>
</td>
</tr>
<tr>
<td>
<p><span style="color:#0000ff;">TTL</span></p>
</td>
<td>
<p align="center">&lt;RR TTL&gt;</p>
</td>
<td>
<p align="center">0</p>
</td>
<td>
<p align="center">0</p>
</td>
<td>
<p align="center">0</p>
</td>
</tr>
<tr>
<td>
<p><span style="color:#0000ff;">RDLENGTH</span></p>
</td>
<td>
<p align="center">&lt;RDATA Length&gt;</p>
</td>
<td>
<p align="center">0</p>
</td>
<td>
<p align="center">0</p>
</td>
<td>
<p align="center">&lt;RDATA Length&gt;</p>
</td>
</tr>
<tr>
<td>
<p><span style="color:#0000ff;">RDATA</span></p>
</td>
<td>
<p align="center">&lt;IP/Name(PTR)&gt;</p>
</td>
<td>
<p align="center">&lt;Empty&gt;</p>
</td>
<td>
<p align="center">&lt;Empty&gt;</p>
</td>
<td>
<p align="center">&lt;IP/Name(PTR)&gt;</p>
</td>
</tr>
</tbody>
</table><p><br> In the example above the&nbsp;DNS server is requested to remove the host A resource record for the name win7 from the zone r2.com. This is done by setting the TTL and RDLENGTH value to 0. In the next step the same name is registered&nbsp;with the specified IP address as a host A resource record in the zone r2.com again.<br> <br> Deleting the host A record for the name win7 in front of registering it again prevents that multiple IP addresses are bound to a single host A record, in case the client machine gets assigned a different IP address.</p><p>The windows DNS Servers support both secure and non-secure dynamic updates. The secure dynamic updates leverage the Active Directory infrastructure to ensure security.</p><p>Read more at :&nbsp;<a href="https://technet.microsoft.com/en-us/library/cc771255.aspx">https://technet.microsoft.com/en-us/library/cc771255.aspx&nbsp;</a></p><p></p><p><em>[This post has been authored by&nbsp;Markus R&ouml;sner from Windows Germany Team.]</em></p></p>
]]></content:encoded>
    </item>
    <item>
      <title>Selective Recursion Control Using DNS Server Policies</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/selective-recursion-control-using-dns-server-policies</link>
      <pubDate>Wed, 09 Sep 2015 09:26:00 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/2015/09/09/selective-recursion-control-using-dns-server-policies/</guid>
      <description><![CDATA[Certain deployments may require the same DNS server to perform recursive name resolution for the...]]></description>
      <content:encoded><![CDATA[<p style="text-align: justify">Certain deployments may require the same DNS server to perform recursive name resolution for the internal clients apart from acting as authoritative nameserver for contoso.com. For this, the recursion has to be enabled on the DNS server. But as the DNS server is also listening to the external queries, the recursion is also enabled for external clients and the DNS server becomes what is known as an <a href="https://openresolverproject.org/" target="_blank">open resolver</a>. This makes the server vulnerable to resource exhaustion and can be abused by malicious clients to orchestrate <a href="https://www.us-cert.gov/ncas/alerts/TA13-088A">amplification attacks</a>. There is no reason why contoso.com’s DNS server should perform recursive name resolution for external clients. Essentially there is a need of recursion control such that the recursion is allowed for internal clients while blocked for external clients.</p>
<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/08/SplitBrain2.jpg"><img class=" aligncenter" style="margin-left: auto;margin-right: auto" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/08/SplitBrain2.jpg" alt=" " width="746" height="413" border="0" /></a>

This can be achieved in following steps
<p style="text-align: justify"><span style="font-size: 1.17em;color: #0000ff">Create Recursion Scopes</span></p>
<p style="text-align: justify">Recursion scopes are unique instances of a group of settings that control recursion on a DNS server. A recursion scope contains a list of forwarders and specifies whether recursion is enabled. A DNS server can have many recursion scopes.</p>
<p style="text-align: justify">The legacy recursion setting and list of forwarders are now referred as the default recursion scope. You cannot add or remove the default recursion scope, identified by the name “.” (Dot).</p>
<p style="text-align: justify">In this example, the default recursion setting is being disabled, while a new recursion scope for internal clients is being created where recursion is being enabled.</p>
<p style="text-align: justify;margin-left: 30px"><span style="color: #0000ff">Set-DnsServerRecursionScope -Name . -EnableRecursion $False</span></p>
<p style="text-align: justify;margin-left: 30px"><span style="color: #0000ff">Add-DnsServerRecursionScope -Name "InternalClients" -EnableRecursion $True </span></p>
<img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/08/5417.bulb.png" alt=" " width="59" height="58" border="0" />Explore <a href="https://technet.microsoft.com/en-us/library/mt126268.aspx">Add-DnsServerRecursionScope </a>

<span style="font-size: 1.17em;color: #0000ff">Create Recursion Policies</span>
<p style="text-align: justify">DNS server recursion policies can be created to choose a recursion scope for a set of queries matching certain criteria. If the DNS server is not authoritative for those queries, these policies allow admin to control how to resolve those queries.  Here the internal recursion scope which has recursion enabled is being associated with private network interface</p>
<p style="text-align: justify;margin-left: 30px"><span style="color: #0000ff">Add-DnsServerQueryResolutionPolicy -Name "RecursionControlPolicy" -Action ALLOW -ApplyOnRecursion -RecursionScope "InternalClients" -ServerInterfaceIP  "EQ,10.0.0.39"</span></p>
<p style="text-align: justify"> Explore <a href="https://technet.microsoft.com/en-us/library/mt126273.aspx">Add-DnsServerQueryResolutionPolicy</a></p>
<i><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/55/08/5417.bulb.png" alt=" " width="59" height="58" border="0" />In both the examples <b>ServerInterface</b> has been taken as a criteria. Sometimes the recursion-control may be required to be deployed on the basis of source client subnet. That can also be achieved using the client subnet criteria. (See </i><a href="/b/networking/archive/2015/05/11/geo-location-based-traffic-management-using-dns-policies.aspx"><i>how to use client subnet for traffic management</i></a><i>). In fact administrators can use any combination of policy criteria to create their own recursion control rules. For example, administrators can prohibit recursion for "ANY" QTYPE or certain malicious FQDNs.</i>

<span style="font-size: 1.17em;color: #0000ff">How it all works</span>
<p style="text-align: justify">If a query for which the DNS server is non-authoritative is received, i.e. say for <a href="https://www.microsoft.com/">www.microsoft.com</a>, then the name resolution request is evaluated against the policies on the DNS server. As these queries do not fall under any zone, the zone level policies are not evaluated. The recursion level policies are evaluated and those queries which are received on private interface match the <em>RecursionControlPolicy</em> which points to a recursion scope where recursion has been enabled. The DNS server then performs recursion to get the answer for <a href="https://www.microsoft.com/">www.microsoft.com</a> from internet and caches it locally. On the other hand if the query is received on the external interface, no policies match and default recursion setting (in this case disabled) is applied, preventing the server from acting as open resolver for external clients while it is acting as a caching resolver for internal clients.</p>
<p style="text-align: justify"><span style="font-size: 1.17em;color: #0000ff">Call to Action</span></p>
Now that you have learnt about deploying recursion control using DNS policies in Windows DNS 2016, we request you to try the feature and let us know your feedback!

Also See

<a href="/b/networking/archive/tags/policies/">DNS policy blogs</a>

<a href="/b/networking/archive/2015/08/19/name-resolution-performance-of-a-recursive-windows-dns-server-2012-r2.aspx">Name Resolution Performance of a Recursive Windows DNS Server 2012 R2</a>

<a href="/b/networking/archive/2015/08/13/name-resolution-performance-of-authoritative-windows-dns-server-2012-r2.aspx">Name Resolution Performance of Authoritative Windows DNS Server 2012 R2</a>

<a href="https://technet.microsoft.com/en-US/library/dn765484.aspx">What's New in DNS Server in Windows Server Technical Preview</a>

Tweet to me @ <a href="https://twitter.com/KrAsh0x35">Kumar Ashutosh </a>

&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Upward Referral Responses from Authoritative DNS Servers</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/upward-referral-responses-from-authoritative-dns-servers</link>
      <pubDate>Thu, 03 Sep 2015 01:32:23 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/2015/09/03/upward-referral-responses-from-authoritative-dns-servers/</guid>
      <description><![CDATA[One of the widely debated behaviour of an authoritative name servers is the nature of the response...]]></description>
      <content:encoded><![CDATA[<p style="text-align: justify"></p>
<p style="text-align: justify">One of the widely debated behaviour of an authoritative name servers is the nature of the response it sends back when asked for a FQDN for which it is non-authoritative. Till 2012R2 Windows DNS servers, which have recursion disabled on them have responded back with a <a href="https://www.dns-oarc.net/oarc/articles/upward-referrals-considered-harmful">upward referral response</a> with a list of root name servers in the additional section. This behaviour can be exploited by attackers who can send random queries to the DNS server and get an amplified response in return. This amplification could have been even more pronounced with the added support for <a href="https://technet.microsoft.com/en-us/library/dn765484.aspx">IPv6 root hints</a> in the Windows DNS server 2016. This made the servers more vulnerable to be exploited by attackers to orchestrate a <a href="https://www.us-cert.gov/ncas/alerts/TA13-088A">DNS amplification attack</a> on victim networks. Also such referrals were found to be having negligible use as the resolvers are already aware of the root servers and most of the modern resolvers ignore these responses as they are <a href="https://datatracker.ietf.org/doc/draft-ietf-dnsop-dns-terminology/?include_text=1">out of bailiwick.</a></p>
<p style="text-align: justify">In Windows Server 2016, the authoritative DNS servers, which have recursion disabled, will by default not respond back with such upward referrals. The DNS server will instead respond back with SERV_FAIL.</p>
<p style="text-align: justify"><em>In the earlier versions of Windows DNS server (2012R2 and before), the admins can prevent this amplification on the purely authoritative servers by removing the root hints file. This can be done by stopping the Windows DNS service, deleting the cache.dns file at ~\system32\DNS and restarting the service. </em></p>
<p style="text-align: justify">Apart from this, in Windows Server 2016, Windows DNS server provides <a href="https://blogs.technet.com/b/teamdhcp/archive/2015/08/28/response-rate-limiting-in-windows-dns-server.aspx">Response Rate Limiting</a> capability that helps prevent the DNS amplification attack. It also provides <a href="https://blogs.technet.com/b/networking/archive/2015/05/12/split-brain-dns-deployment-using-windows-dns-server-policies.aspx">selective recursion contro</a>l for clients and <a href="https://blogs.technet.com/b/networking/archive/2015/05/18/applying-filters-on-dns-queries-using-windows-dns-server-policies.aspx">ability to filter resolution of malicious domains</a> which help fortify the DNS systems.</p>
<p style="text-align: justify"><span style="font-size: 1.17em;color: #0000ff">See More</span></p>
<p style="text-align: justify"><a href="https://blogs.technet.com/b/networking/archive/tags/policies/">DNS policy blogs</a></p>
<p style="text-align: justify"><a href="https://technet.microsoft.com/en-US/library/dn765484.aspx">What's New in DNS Server in Windows Server Technical Preview</a></p>
<p style="text-align: justify"><a href="https://blogs.technet.com/b/networking/archive/2015/08/19/name-resolution-performance-of-a-recursive-windows-dns-server-2012-r2.aspx">Name Resolution Performance of a Recursive Windows DNS Server 2012 R2</a></p>
<p style="text-align: justify"><a href="https://blogs.technet.com/b/networking/archive/2015/08/13/name-resolution-performance-of-authoritative-windows-dns-server-2012-r2.aspx">Name Resolution Performance of Authoritative Windows DNS Server 2012 R2</a></p>
<p style="text-align: justify"></p>]]></content:encoded>
    </item>
    <item>
      <title>DNS Management in IPAM</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/dns-management-in-ipam</link>
      <pubDate>Tue, 01 Sep 2015 23:17:25 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/2015/09/01/dns-management-in-ipam/</guid>
      <description><![CDATA[In Windows Server 2016, management of DNS properties have been significantly enhanced in IPAM. In...]]></description>
      <content:encoded><![CDATA[<p><span style="font-family:Calibri;font-size:medium;">In Windows Server 2016, management of DNS properties have been significantly enhanced in IPAM. In 2012 R2, IPAM used to discover DNS zone information and monitored </span><a href="https://technet.microsoft.com/en-us/library/jj878329.aspx#zone-monitoring"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">availability of DNS zones</span></a><span style="font-family:Calibri;font-size:medium;">. In the new version, administrators can now manage DNS zones, conditional forwarders and resource records across multiple DNS servers using IPAM.</span></p>
<h4 style="text-align:justify;"><span style="color:#2e74b5;font-family:Calibri Light;font-size:large;">DNS Data Collection</span></h4>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">IPAM runs a periodic task to collect DNS data every 6 hours from the domain joined Microsoft DNS servers that IPAM is managing. It fetches the properties of DNS zone and DNS conditional forwarders from these servers. It also fetches the resource records belonging to the zones. Since same zone is hosted on multiple DNS servers, it chooses one of the authoritative servers as the &lsquo;preferred DNS server&rsquo; for that zone and collects resource records from that DNS server. Both the collection frequency and &lsquo;preferred DNS server&rsquo; for the zones are configurable.</span></p>
<h4 style="text-align:justify;"><span style="color:#2e74b5;font-family:Calibri Light;font-size:large;">DNS Zone Management</span></h4>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">IPAM now allows administrators to perform CRUD operations on DNS zones hosted on the DNS servers being managed by IPAM. It supports both file based and Active Directory integrated DNS zones. Administrators can manage both forward and reverse lookup zones. Users can create primary, secondary and stub zones.</span></p>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">IPAM provides hierarchal view of DNS zones. Users can view the resource records and the DNS servers it is hosted on. </span></p>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/Zone%20Server.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/Zone-Server.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/Zone%20Server.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/Zone-Server.png" border="0" /></a></span></p>
<p style="text-align:justify;"></p>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">User can set DNS zone properties like dynamic update settings, scavenging properties, zone transfer properties and notify settings.</span></p>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">More details about DNS zone management can be found </span><a href="https://technet.microsoft.com/en-us/library/mt210429.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">here</span></a><span style="font-family:Calibri;font-size:medium;">.</span></p>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">IPAM also allows other DNS zone operations like:</span></p>
<ul style="text-align:justify;">
<li>
<p>Zone reload</p>
</li>
<li>
<p>Pause/Resume DNS zones</p>
</li>
<li>
<p>Zone transfer</p>
</li>
</ul>
<h4 style="text-align:justify;"><span style="color:#2e74b5;font-family:Calibri Light;font-size:large;">DNS Resource Record Management</span></h4>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">Another new feature in IPAM 2016 is DNS resource record management. IPAM now allows CRUD operations on the DNS resource records. It supports the following types of resource records:</span></p>
<ul style="text-align:justify;">
<li>
<p>AFS database</p>
</li>
<li>
<p>ATM Address</p>
</li>
<li>
<p>CNAME</p>
</li>
<li>
<p>DHCID</p>
</li>
<li>
<p>DNAME</p>
</li>
<li>
<p>Host A or AAAA</p>
</li>
<li>
<p>Host Information</p>
</li>
<li>
<p>ISDN</p>
</li>
<li>
<p>MX</p>
</li>
<li>
<p>Name Servers</p>
</li>
<li>
<p>Pointer (PTR)</p>
</li>
<li>
<p>Responsible person</p>
</li>
<li>
<p>Route Through</p>
</li>
<li>
<p>Service Location</p>
</li>
<li>
<p>SOA</p>
</li>
<li>
<p>SRV</p>
</li>
<li>
<p>Text</p>
</li>
<li>
<p>Well Known Services</p>
</li>
<li>
<p>WINS</p>
</li>
<li>
<p>WINS-R</p>
</li>
<li>
<p>X.25</p>
</li>
</ul>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">IPAM provides a consolidated view of resource records of all the types for a particular DNS zone. User can filter these resource records based on name, type, IP address etc.</span></p>
<p style="text-align:justify;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/Zone%20Resource%20Record.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/Zone-Resource-Record.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/Zone%20Resource%20Record.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/Zone-Resource-Record.png" border="0" /></a></p>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">More details about DNS resource record management can be found </span><a href="https://technet.microsoft.com/en-us/library/mt210423.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">here</span></a><span style="font-family:Calibri;font-size:medium;">.</span></p>
<h4 style="text-align:justify;"><span style="color:#2e74b5;font-family:Calibri Light;font-size:large;">DNS Conditional Forwarder Management</span></h4>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">IPAM now supports management of DNS conditional forwarders. Both file based and AD integrated conditional forwarders are supported.</span></p>
<p style="text-align:justify;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/Create%20conditional%20forwarder.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/Create-conditional-forwarder.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/Create%20conditional%20forwarder.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/Create-conditional-forwarder.png" border="0" /></a></p>
<h4 style="text-align:justify;"><span style="color:#2e74b5;font-family:Calibri Light;font-size:large;">Role based access control enhancements</span></h4>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">IPAM&rsquo;s role based access control feature enables administrators to delegate specific operations on specific objects to other users. The new IPAM DNS operations added in Windows Server 2016 are also backed by this feature. Administrators can choose to delegate operations like, creating/editing of a DNS zone, creating resource records of a particular type etc. </span></p>
<p style="text-align:justify;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/RBAC.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/RBAC.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/RBAC.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/RBAC.png" border="0" /></a></p>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">Administrators can also set access scopes at DNS zone and resource record level. It means that they can now delegate permissions to users on specific DNS zones and resource records. They can achieve delegation scenarios like:</span></p>
<ul style="text-align:justify;">
<li>
<p>Users can edit only specific DNS resource records</p>
</li>
<li>
<p>Users can edit DNS resource records of a specific type, such as PTR or MX. For example, IPAM administrator can delegate a mail server administrator permissions to change only MX resource records.</p>
</li>
<li>
<p>Users can edit DNS resource records for specific zones</p>
</li>
</ul>
<p style="text-align:justify;"><span style="font-family:Calibri;font-size:medium;">More details can be found </span><a href="https://technet.microsoft.com/en-us/library/mt210434.aspx"><span style="color:#0563c1;font-family:Calibri;font-size:medium;">here</span></a><span style="font-family:Calibri;font-size:medium;">.</span></p>
<h4 style="text-align:justify;"><span style="color:#2e74b5;font-family:Calibri Light;font-size:medium;">Call to action</span></h4>
<p style="text-align:justify;"><span style="font-size:medium;">The new IPAM DNS management enhancements are present in <a href="https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview"><span style="color:#0563c1;">Windows Server 2016 Technical Preview 3</span></a>. We request you to try the new version of IPAM in your environment and let us know your feedback in the comments below.</span></p>
<p></p>
<p></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Split-Brain DNS in Active Directory Environment Using DNS Policies</title>
      <link>https://docs.microsoft.com/archive/blogs/teamdhcp/split-brain-dns-in-active-directory-environment-using-dns-policies</link>
      <pubDate>Mon, 31 Aug 2015 23:52:08 GMT</pubDate>
      <dc:creator><![CDATA[teamdhcp]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/teamdhcp/2015/08/31/split-brain-dns-in-active-directory-environment-using-dns-policies/</guid>
      <description><![CDATA[In Windows Server 2016 Technical Preview 3, the DNS policies support has been extended to...]]></description>
      <content:encoded><![CDATA[<p style="text-align:justify;"></p>
<p style="text-align:justify;"></p>
<p style="text-align:justify;"></p>
<p style="text-align:justify;">In <a href="https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview" target="_blank">Windows Server 2016 Technical Preview 3</a>, the DNS policies support has been extended to Active Directory backed zones. Active Directory integration inherently provides multi-master high availability capabilities to the DNS server. In <a href="/b/networking/archive/tags/policies/" target="_blank">earlier blogs</a>, we had seen how to configure DNS server policies for different scenarios on file backed DNS zones. But as many of our customers use Active Directory environment, it was needed that the traffic management capabilities of DNS policies were extended to the Active Directory integrated zones. In <a href="/b/networking/archive/2015/05/12/split-brain-dns-deployment-using-windows-dns-server-policies.aspx" target="_blank">a previous blog</a>, we discussed how DNS policies and zone scopes could be used to setup a split brain DNS system on a single Windows DNS server.&nbsp; Split brain DNS deployment has been a long standing conundrum for DNS administrators. A DNS deployment is said to be split-brain (or split-horizon) when there are two versions of a single zone, one for the internal users and one for the external users &ndash; typically users on the public internet.&nbsp;</p>
<p style="text-align:justify;"><span style="font-size:1.17em;color:#0000ff;">Two versions of the same zone</span></p>
<p style="text-align:justify;"><span>Suppose the career website of contoso.com is hosted at&nbsp;</span><a href="https://www.career.contoso.com/">www.career.contoso.com</a><span>&nbsp;. The site has two versions, one for the internal users where internal job postings are available and hosted on a local IP&nbsp;</span><span>10.0.0.39</span><span>. The public version of the same site is available on public IP&nbsp;</span><span>65.55.39.10</span><span>. In absence of DNS policies, the administrator had to host these two zones on separate Windows DNS servers and manage them separately. Using DNS policies, these zones can now be hosted on the same DNS server.</span></p>
<p style="text-align:justify;"><span>If the nameserver for contoso.com is Active Directory integrated, and is listening on two network interfaces; one with a public IP of&nbsp;</span><span>208.84.0.53</span><span>&nbsp;for external queries and another with a private IP&nbsp;</span><span>10.0.0.56&nbsp;</span><span>for internal queries, then the administrator can follow these steps to achieve this split brain deployment</span></p>
<p><span><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/0334.SplitBrain.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/0334.SplitBrain.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/0334.SplitBrain.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/0334.SplitBrain.jpg" border="0" alt=" " style="display:block;margin-left:auto;margin-right:auto;" /></a><br /></span></p>
<p style="text-align:justify;"><span style="font-size:x-small;">* All IPs and names are purely representational&nbsp;</span></p>
<p style="text-align:justify;"><span style="font-size:1.17em;color:#0000ff;">Add the contoso.com AD integrated zone</span></p>
<p style="text-align:justify;">Add the Active directory integrated contoso.com zone to the DNS server.</p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:&#39;courier new&#39;, courier;color:#0000ff;">Add-DnsServerPrimaryZone -Name &quot;contoso.com&quot; -ReplicationScope &quot;Domain&quot; -PassThru </span></p>
<p style="text-align:justify;"><span style="color:#0000ff;">&nbsp;<span style="font-size:1.17em;">Create the Scopes of the Zone</span></span></p>
<p style="text-align:justify;">Partition the zone contoso.com to create an&nbsp;<span>external </span>zone scope. A&nbsp;<span>zone scope</span>&nbsp;is a unique instance of the zone. A DNS zone can have multiple zone scopes, with each zone scope containing its own set of DNS records. The same record can be present in multiple scopes, with different IP addresses.<strong> As this zone scope is being added in an AD integrated zone, the zone scope and the records inside it will replicate via active directory to other replica servers in the domain.</strong></p>
<p style="text-align:justify;"><span>The internal zone scope will be used to keep the internal version of&nbsp;</span><a href="https://www.career.contoso.com/">www.career.contoso.com</a></p>
<p style="margin-left:30px;text-align:justify;"><span style="font-family:&#39;courier new&#39;, courier;color:#0000ff;">Add-DnsServerZoneScope -ZoneName &quot;contoso.com&quot; -Name &quot;external&quot;</span></p>
<p style="text-align:justify;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/5417.bulb.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/5417.bulb.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/5417.bulb.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/30x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/5417.bulb.png" border="0" alt=" " /></a>Explore&nbsp;<a href="https://technet.microsoft.com/en-us/library/mt126267.aspx">Add-DnsServerZoneScope</a></p>
<p style="text-align:justify;"><span>By default a zone scope exists in every DNS zone. This zone scope has the same name as the zone and legacy DNS operations work on this scope. This default zone scope will host the internal version of </span><a href="https://www.career.contoso.com/">www.career.contoso.com</a></p>
<p style="text-align:justify;"><span style="font-size:1.17em;color:#0000ff;">Add Records to the Zone Scopes</span></p>
<p style="text-align:justify;"><span>The next step is to add the records representing the web server host into the two zone scopes-&nbsp;</span><span>external </span><span>and </span><span>default (for internal clients)</span><span>. In&nbsp;</span><span>default,</span><span>&nbsp;the record&nbsp;</span><a href="https://www.career.contoso.com/">www.career.contoso.com</a><span>&nbsp;is added with IP address 10.0.0.39, which is a private IP; and in&nbsp;</span><span>external zone scope</span><span>&nbsp;the same record (</span><a href="https://www.career.contoso.com/">www.career.contoso.com</a><span>) is added with IP address 65.55.39.10.</span><strong> The records (both in the default scope and external zone scope)&nbsp; will automatically get replicated across the domain with their respective zone scopes.</strong></p>
<p style="text-align:justify;margin-left:30px;">&nbsp;<span style="color:#0000ff;font-family:&#39;courier new&#39;, courier;">Add-DnsServerResourceRecord -ZoneName &quot;contoso.com&quot; -A -Name &quot;</span><a href="https://www.career" style="font-family:&#39;courier new&#39;, courier;"><span style="color:#0000ff;">www.career</span></a><span style="color:#0000ff;font-family:&#39;courier new&#39;, courier;">&quot; -IPv4Address &quot;65.55.39.10&quot;&nbsp;-ZoneScope &quot;external&quot;</span></p>
<p style="text-align:justify;margin-left:30px;"><span style="color:#0000ff;font-family:&#39;courier new&#39;, courier;">Add-DnsServerResourceRecord -ZoneName &quot;contoso.com&quot; -A -Name &quot;<a href="https://www.career"><span style="color:#0000ff;">www.career</span></a>&quot; -IPv4Address &quot;10.0.0.39&rdquo;</span></p>
<p style="text-align:justify;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/5417.bulb.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/5417.bulb.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/5417.bulb.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/30x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/5417.bulb.png" border="0" alt=" " /></a>Explore&nbsp;<a href="https://technet.microsoft.com/en-us/library/jj649925.aspx">Add-DnsServerResourceRecord</a></p>
<p style="text-align:justify;">Note that no &ndash;ZoneScope parameter has been provided when record is being added in default zone scope. This is same as adding records to a normal zone.</p>
<p style="text-align:justify;"><span style="font-size:1.17em;color:#0000ff;">Create the Policies</span></p>
<p style="text-align:justify;">Once the server interfaces for external network and internal network have been identified; and the partitions (zone scopes) have been created, the next step is to create policies that connect these two, in a way that when the query is received on the public interface, the answer is returned from the&nbsp;<span>external </span>scope of the zone. No policies are required for mapping default zone scope.&nbsp;</p>
<p style="text-align:justify;margin-left:30px;"><span style="color:#0000ff;font-family:&#39;courier new&#39;, courier;">Add-DnsServerQueryResolutionPolicy -Name &quot;SplitBrainZonePolicy&quot; -Action ALLOW -ServerInterface &quot;eq,208.84.0.53&quot; -ZoneScope &quot;external,1&quot; -ZoneName contoso.com</span></p>
<p style="text-align:justify;"><span style="font-size:x-small;">* 208.84.0.53 is the IP on the public network interface.</span></p>
<p style="text-align:justify;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/5417.bulb.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/5417.bulb.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/5417.bulb.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/30x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/5417.bulb.png" border="0" alt=" " /></a>Explore&nbsp;<a href="https://technet.microsoft.com/en-us/library/mt126273.aspx">Add-DnsServerQueryResolutionPolicy</a></p>
<p style="text-align:justify;"><span style="font-size:1.17em;color:#0000ff;">How it all works</span></p>
<p style="text-align:justify;"><span>Now the DNS server has been configured with the required policies. When a name resolution query is incident on the DNS server so configured, each name resolution request is evaluated against the policies on the DNS server. If the server interface on which the query has been received matches any of the policies, the associated zone scope is used to respond to the query. So, in our example, the DNS queries for&nbsp;</span><a href="https://www.career.contoso.com/">www.career.contoso.com</a><span>&nbsp;&nbsp;that are received on public IP (</span><span>208.84.0.53</span><span>) are responded with an external IP address; and the DNS queries that are received on the private network interface are responded with the private IP address in the default zone scope (this is same as normal query resolution).&nbsp;&nbsp;</span></p>
<p style="text-align:justify;"><strong>The support for Dynamic DNS (DDNS) updates and scavenging happens only on the default zone scope. As the internal clients are being serviced by the default zone scope, the DNS admins can continue the existing mechanisms (dynamic DNS or static) to update the records in contoso.com.</strong> Note that for non-default zone scopes (i.e. &#39;external&#39; scope in the above example) DDNS or scavenging support is not available.</p>
<p style="text-align:justify;"><span style="font-size:1.17em;color:#0000ff;">High Availability of policies</span></p>
<p style="text-align:justify;">Note that policies are not Active Directory integrated and hence, not replicated to the other DNS servers hosting the same AD integrated zone. They are stored and persisted on the local DNS server. But these policies can be easily exported from one server to another via simple Powershell commands:</p>
<p style="text-align:justify;margin-left:30px;"><span style="font-family:&#39;courier new&#39;, courier;color:#0000ff;">$policies = Get-DnsServerQueryResolutionPolicy -ZoneName &quot;contoso.com&quot; -ComputerName Server01</span></p>
<p style="text-align:justify;margin-left:30px;"><span style="font-family:&#39;courier new&#39;, courier;color:#0000ff;">$policies |&nbsp; Add-DnsServerQueryResolutionPolicy -ZoneName &quot;contoso.com&quot; -ComputerName Server02</span></p>
<p style="text-align:justify;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/5417.bulb.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/5417.bulb.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/43/33/5417.bulb.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/30x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-43-33/5417.bulb.png" border="0" alt=" " /></a>In this example&nbsp;ServerInterface&nbsp;has been taken as a criteria. Sometimes the split-brain may be required to be deployed on the basis of source client subnet. That can also be achieved using the client subnet criteria. (See&nbsp;<a href="/b/networking/archive/2015/05/11/geo-location-based-traffic-management-using-dns-policies.aspx">how to use client subnet for traffic management</a>)</p>
<p style="text-align:justify;"><span style="color:#0000ff;"><span style="font-size:1.17em;">Call to Action</span></span></p>
<p style="text-align:justify;"><span>Now that you have learnt about deploying split brain DNS server in an active directory environment in Windows DNS Server 2016, we request you to try the feature and let us know your feedback. Use the comment box below or mail us at&nbsp;</span><span>windns-users@lists.cloudapp.net&nbsp;</span></p>
<p style="text-align:justify;"><span style="font-size:1.17em;color:#0000ff;">Also See</span></p>
<p style="text-align:justify;"><a href="/b/networking/archive/tags/policies/"><span>DNS policy blogs</span></a></p>
<p style="text-align:justify;"><a href="/b/networking/archive/2015/08/19/name-resolution-performance-of-a-recursive-windows-dns-server-2012-r2.aspx"><span>Name Resolution Performance of a Recursive Windows DNS Server 2012 R2</span></a></p>
<p style="text-align:justify;"><a href="/b/networking/archive/2015/08/13/name-resolution-performance-of-authoritative-windows-dns-server-2012-r2.aspx"><span>Name Resolution Performance of Authoritative Windows DNS Server 2012 R2</span></a></p>
<p style="text-align:justify;"><a href="https://technet.microsoft.com/en-US/library/dn765484.aspx"><span>What&#39;s New in DNS Server in Windows Server Technical Preview</span></a></p>
<p style="text-align:justify;"><span>Authored by:&nbsp;</span><a href="https://twitter.com/KrAsh0x35"><span>Kumar Ashutosh&nbsp;</span></a></p>
<p style="text-align:justify;">&nbsp;</p>
<p></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
  </channel>
</rss>