<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>StdQry</title><link>http://blogs.technet.com/b/stdqry/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>DNS auto-configuration during DCPROMO</title><link>http://blogs.technet.com/b/stdqry/archive/2012/04/11/dns-auto-configuration-during-dcpromo.aspx</link><pubDate>Wed, 11 Apr 2012 19:10:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3491600</guid><dc:creator>karammasri</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/stdqry/rsscomments.aspx?WeblogPostID=3491600</wfw:commentRss><comments>http://blogs.technet.com/b/stdqry/archive/2012/04/11/dns-auto-configuration-during-dcpromo.aspx#comments</comments><description>&lt;p&gt;Have you ever installed the DNS Server service as part of the promotion of a new DC, to end up wondering how this new DNS Server got automatically configured to use forwarders and root-hints? Have you noticed that this process also adds the loopback adapter of the server to the DNS search list in the resolver? &lt;/p&gt;  &lt;p&gt;When DCPROMO installs the DNS Server service it also activates, by default, the auto-configuration of the DNS Server service. This auto-configuration process configures the forwarders list, the root-hints and the resolver, among other things, like creating the zones if required.&lt;/p&gt;  &lt;p&gt;NOTE: this auto-configuration can be skipped by passing the SkipAutoConfigDns promotion parameter to dcpromo.&lt;/p&gt;  &lt;p&gt;I wanted to give the information on how this auto-configuration is done regarding the forwarders list, root-hints and resolver. Remember that you can always edit these parameters after they are configured to match your DNS design. &lt;/p&gt;  &lt;h2&gt;Auto-configuration of Forwarders&lt;/h2&gt;  &lt;p&gt;The first step is to configure the forwarders list for the new DNS server. Two possible methods are used to build this list. The second method is skipped if the first one is successful.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Try to copy the forwarders list from a peer DNS server. A peer DNS server is any DNS server that has a copy of this DC domain’s zone. To get the peer server list the process queries for the NS list of the domain’s zone and then contacts each server returned on the list until it finds one from which it can copy the forwarders list. Once the process finds a peer from which it can copy the forwarders list it skips the next step. If no peer is found (because the NS query returned empty), none of them could be contacted, or none of them has forwarders configured, then move to step #2.&lt;/li&gt;    &lt;li&gt;If the previous step was not able to provide a forwarders list, then use as forwarders all the DNS Servers that are currently listed in the resolver for all the adapters, without any specific order.&lt;/li&gt;    &lt;li&gt;If none of the previous two steps can provide a forwarders list, then the new DNS server will not have forwarders configured.&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;NOTE: remember that having a DNS server without forwarders is a valid configuration for the service. In this case the server will use its root-hints to resolve names in namespaces that it does not host.&lt;/p&gt;  &lt;h3&gt;Examples:&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;Suppose you are promoting a new server in a &lt;em&gt;new&lt;/em&gt; domain named contoso.local. The server is pointing to two DNS servers: 10.0.0.1 and 10.0.0.2. None of these servers have the zone contoso.local:&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;The first method is to get the forwarders list from a peer. The server will issue a query to its DNS servers for the Name Servers list (NS record type) of the zone contoso.local. Because this zone does not exist yet then this query will return empty. As we cannot find a peer to copy the forwarders from we go to method #2.&lt;/li&gt;      &lt;li&gt;The forwarders list is built as 10.0.0.1 and 10.0.02 in the second method. This is because we are just copying the DNS servers listed in the resolver.&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Suppose you are promoting a new server in an &lt;em&gt;existing&lt;/em&gt; domain named contoso.local. The server is pointing to three DNS servers: 10.0.0.1, 10.0.0.2&amp;#160; and 10.0.0.3 which are DCs with DNS for the same domain and have a copy of contoso.local. 10.0.0.1 does not have forwarders configured, 10.0.0.2 is forwarding to 10.1.1.1 and 10.1.1.2 and 10.0.0.3 is forwarding to 10.2.2.1 and 10.2.2.2 (this is a very weird, and probably unstable, DNS configuration but I just wanted to use it as an example):&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;The query for the NS list of contoso.local will return 10.0.0.1, 10.0.0.2 and 10.0.0.3 (suppose that in this order). We first contact 10.0.0.1 to get its forwarders list, and we find that it is empty, then we contact 10.0.0.2 and query for its forwarders list, and we get 10.1.1.1 and 10.1.1.2. At this point we already got a list, then we skip querying any other server returned by the query (like 10.0.0.3), and also skip method #2.&lt;/li&gt;   &lt;/ol&gt;    &lt;li&gt;Suppose you are promoting a new server in a &lt;em&gt;new&lt;/em&gt; domain named contoso.local. The server is not pointing to any DNS servers (probably because you are creating a new forest in an environment that does not have DNS yet):&lt;/li&gt;    &lt;ol&gt;     &lt;li&gt;The query for the NS list of contoso.local will return empty, then we cannot use this method to get the forwarders list from a peer.&lt;/li&gt;      &lt;li&gt;We cannot create the forwarders list by copying the configuration in the resolver, because there are no DNS servers listed there.&lt;/li&gt;      &lt;li&gt;In this case the new DNS server will end-up with no forwarders configured.&lt;/li&gt;   &lt;/ol&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Auto-configuration of Root-Hints&lt;/h2&gt;  &lt;p&gt;The second step is to configure the root-hints for the new DNS server. This is done by querying the root-hints list for all the servers that we have configured in the resolver, and use the list that has the largest number of servers on it; if more than one has the largest number of elements, then we choose the first one that we found with that number. Note that we are not merging the lists that we got from each server, we are just comparing the sizes of the lists and using the one with the largest number of elements on it.&lt;/p&gt;  &lt;p&gt;One condition that should be met to accept the root-hints lists is that all the lists should “intersect” in at least one element, i.e., at least one DNS server should be present in all the lists to consider that the lists are valid. If no intersection occurs, then we do not copy any of the lists. This would be a very unusual, and probably wrong, configuration.&lt;/p&gt;  &lt;p&gt;Remember that the DNS Server service comes pre-configured with a root-hints list (the Internet root-hints), then even if we cannot copy the list from another server our new DNS will still have a root-hints list to use.&lt;/p&gt;  &lt;p&gt;This step is important in environments that have deployed an internal root zone (“.”) because the new DNS server will be auto-configured to use the servers hosting that zone as its root-hints. In the case that this server also hosts the root zone, then the root-hints list will be disabled once the service starts (a server hosting a root zone cannot have root hints).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Auto-configuration of the Resolver&lt;/h2&gt;  &lt;p&gt;The third step is to configure the resolver (DNS Client) to use the new DNS Server. This is done by adding the loopback address to the DNS search list. The position where the loopback is added is determined by whether we are creating a new forest, new domain, new tree, new replica RWDC or new RODC. The logic is like this:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The new DC is the first DC of the forest: &lt;em&gt;replace&lt;/em&gt; the resolver list and set it to point only to the loopback.&lt;/li&gt;    &lt;li&gt;The new DC is the first DC of a new tree in an existing forest: &lt;em&gt;add&lt;/em&gt; the loopback as the &lt;em&gt;first&lt;/em&gt; one on the resolver list. Existing entries in the list are maintained.&lt;/li&gt;    &lt;li&gt;The new DC is the first DC of a new child domain in an existing forest: &lt;em&gt;add&lt;/em&gt; the loopback as the &lt;em&gt;first&lt;/em&gt; one on the resolver list. Existing entries in the list are maintained.&lt;/li&gt;    &lt;li&gt;The new DC is an additional RWDC in an existing domain: &lt;em&gt;add&lt;/em&gt; the loopback as the &lt;em&gt;last &lt;/em&gt;one on the resolver list. Existing entries in the list are maintained.&lt;/li&gt;    &lt;li&gt;The new DC is an RODC: &lt;em&gt;add&lt;/em&gt; the loopback as the &lt;em&gt;first&lt;/em&gt; one on the resolver list. Existing entries in the list are maintained.&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Examples:&lt;/h3&gt;  &lt;p&gt;Suppose you are promoting a new server. The server is pointing to two DNS servers: 10.0.0.1 and 10.0.0.2. After the auto-configuration of the resolver the list will look like:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;If the server being promoted is the first DC in a new forest: 127.0.0.1 (the existing list is replaced with the loopback)&lt;/li&gt;    &lt;li&gt;If the server being promoted is the first DC in a new tree in an existing forest: 127.0.0.1, 10.0.0.1, 10.0.0.2 (the loopback is added to the beginning of the list)&lt;/li&gt;    &lt;li&gt;If the server being promoted is the first DC in a new child domain in an existing forest: 127.0.0.1, 10.0.0.1, 10.0.0.2 (the loopback is added to the beginning of the list)&lt;/li&gt;    &lt;li&gt;If the server being promoted is an additional RWDC in an existing domain: 10.0.0.1, 10.0.0.2, 127.0.0.1 (the loopback is appended to the end of the list)&lt;/li&gt;    &lt;li&gt;If the server being promoted is an RODC: 127.0.0.1, 10.0.0.1, 10.0.0.2 (the loopback is added to the beginning of the list)&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Other auto-configuration Tasks&lt;/h2&gt;  &lt;p&gt;There are other tasks that are done by the auto-configuration process, like creating the zones when needed. This process is straight forward and well understood, so I will leave it out of this post for now. Let me know in the comments if you would like to read a post about the auto-creation of the zones during dcpromo.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As always, I hope that you find this information helpful.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3491600" width="1" height="1"&gt;</description></item><item><title>DHCP Server in DCs and DNS Registrations</title><link>http://blogs.technet.com/b/stdqry/archive/2012/04/03/dhcp-server-in-dcs-and-dns-registrations.aspx</link><pubDate>Tue, 03 Apr 2012 16:35:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3490076</guid><dc:creator>karammasri</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/stdqry/rsscomments.aspx?WeblogPostID=3490076</wfw:commentRss><comments>http://blogs.technet.com/b/stdqry/archive/2012/04/03/dhcp-server-in-dcs-and-dns-registrations.aspx#comments</comments><description>&lt;p&gt;One common deployment scenario for the DHCP Server service is to have it installed in domain controllers. When this scenario is used it is necessary to define the alternate credentials to be used by DHCP when doing DNS registrations on behalf of the DHCP clients. I wanted to blog about the effects on the registration of the A and PTR records if the DHCP Server is running in a&amp;nbsp;DCs without alternate credentials.&lt;/p&gt;
&lt;p&gt;The default DHCP configuration is that clients register their A records and the DHCP Server registers the PTR records. The idea is that the client is the owner of its name, so it is responsible of registering it the DNS namespace, but the owner of the IP is the DHCP server, then it should control its registration in DNS.&lt;/p&gt;
&lt;p&gt;This default configuration of this option can be seen in the following screenshot:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/3323.image_5F00_248E6611.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/7455.image_5F00_thumb_5F00_41B40E1B.png" width="350" height="388" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The configuration can be done at the server, scope and reservation level. The precedence order is: reservation then scope then server (configuration at the reservation level takes precedence over what is defined at the scope level, which takes precedence over what is configured at the server level). For Windows Server 2003 this dialog can be opened by right-clicking over the server name and choosing properties. For Windows Server 2008 and Windows Server 2008 R2 the dialog can be opened by right-clicking over IPv4 and the selecting properties. For all the versions of the OS, the scope and reservation properties can be opened by right-clicking over them and choosing Properties and changing to the DNS tab.&lt;/p&gt;
&lt;p&gt;The alternate credentials to be used by the DHCP Server for the DNS registrations are configured under the Advanced tab of the server properties:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/5488.image_5F00_7690ED8B.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/0027.image_5F00_thumb_5F00_53ECAF10.png" width="311" height="345" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/6283.image_5F00_657C99DB.png"&gt;&lt;img style="background-image: none; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; margin-right: auto; padding-top: 0px; border-width: 0px;" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/8358.image_5F00_thumb_5F00_43448E55.png" width="244" height="168" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h1&gt;What happens when the DHCP Server service is installed in a DC and no alternate credentials are configured?&lt;/h1&gt;
&lt;p&gt;A common error is to think that the DHCP Server service running in a DC will use its service account security context to register records in DNS if no alternate credentials are configured, and then there is security risk. In fact, this is &lt;strong&gt;not &lt;/strong&gt;the behavior of the DHCP Server in a DC.&lt;/p&gt;
&lt;p&gt;If the DHCP Server service detects that it is running in a domain controller, and no alternate credentials for DNS registrations have been configured, then it decides to &lt;span style="background-color: #ffff00;"&gt;not do any registrations for DHCP clients&lt;/span&gt; and logs event DHCP/1056.&lt;/p&gt;
&lt;p&gt;NOTE: this does not affect other registrations being done by the computer where the DHCP Server service is running, it only affects the registration of DNS records by the DHCP Server on behalf of the DHCP clients.&lt;/p&gt;
&lt;h2&gt;What is the side-effect of this?&lt;/h2&gt;
&lt;p&gt;When the DHCP Server decides that it is not going to do registrations for DHCP clients, it stops setting option 81 in the responses to clients (option 81 is used to negotiate who registers what between the DHCP Server and the DHCP Client). If the client does not&amp;nbsp;get this option in the response from the server then it goes and does its own registrations.&lt;/p&gt;
&lt;h1&gt;Recommendations&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;If the DHCP Server is configured to run in a DC, make sure that the alternate credentials for DNS registrations are correctly configured.&lt;/li&gt;
&lt;li&gt;Use a &amp;ldquo;normal&amp;rdquo; user account, not an administrative or privileged account, for the alternate credentials. Just make sure to use the Password Never Expires option. There is not need to add this account to any special group. The steps to configure these credentials are documented in &lt;a href="http://support.microsoft.com/kb/282001."&gt;http://support.microsoft.com/kb/282001.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;If there are more than one DHCP Server in the environment, try to use the same account for the alternate credentials in all of them.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3490076" width="1" height="1"&gt;</description></item><item><title>DNS Clients and Timeouts (part 2)</title><link>http://blogs.technet.com/b/stdqry/archive/2011/12/15/dns-clients-and-timeouts-part-2.aspx</link><pubDate>Thu, 15 Dec 2011 01:09:54 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3470960</guid><dc:creator>karammasri</dc:creator><slash:comments>10</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/stdqry/rsscomments.aspx?WeblogPostID=3470960</wfw:commentRss><comments>http://blogs.technet.com/b/stdqry/archive/2011/12/15/dns-clients-and-timeouts-part-2.aspx#comments</comments><description>&lt;p&gt;In the &lt;a href="http://blogs.technet.com/b/stdqry/archive/2011/12/02/dns-clients-and-timeouts-part-1.aspx" target="_blank"&gt;first part&lt;/a&gt; of this blog post I described the behavior of the DNS client when there are multiple entries in the DNS servers list. In this second part I will try to explain how the Windows DNS Client works when dealing with timeouts and retries.&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;Note: From now on when I refer to DNS Client I am referring to the Windows implementation of this service. I will also highlight the variances in different versions of Windows when applicable.&lt;/font&gt;&lt;/p&gt;  &lt;h1&gt;How much time is the timeout and how many times do we retry a query? &lt;/h1&gt;  &lt;p&gt;The DNS client uses an array that defines the timeout to use in each attempt to resolve a query instead of a single fixed value as the same timeout for all the attempts. What this means is that the timeout used during each attempt is not necessarily always the same. Each element of the array defines the timeout to use during each attempt. The query is retried as many times as there are elements in the array, and the process stops when there are no more elements in the array.&lt;/p&gt;  &lt;p&gt;For example, suppose that the Timeout array has these values: [1, 1, 2, 4, 4]. The first attempt to resolve a query will timeout after 1 second (first element of the array), the second attempt will timeout after 1 second (second element of the array), the third after 2 seconds, the fourth after 4 seconds, and so on. As there are 5 elements in the array, we will stop retrying after 5 attempts.&lt;/p&gt;  &lt;p&gt;The pre-defined timeout array for each of the currently supported versions of Windows are (values shown are in seconds):&lt;/p&gt;  &lt;br /&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="452" align="center"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="middle" width="250"&gt;&lt;/td&gt;        &lt;td valign="middle" width="200" colspan="5"&gt;         &lt;p align="center"&gt;&lt;strong&gt;Timeout&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="middle" width="250"&gt;         &lt;p align="center"&gt;&lt;strong&gt;OS&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle" width="40"&gt;         &lt;p align="center"&gt;&lt;strong&gt;[0]&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle" width="40"&gt;         &lt;p align="center"&gt;&lt;strong&gt;[1]&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle" width="40"&gt;         &lt;p align="center"&gt;&lt;strong&gt;[2]&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle" width="40"&gt;         &lt;p align="center"&gt;&lt;strong&gt;[3]&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle" width="40"&gt;         &lt;p align="center"&gt;&lt;strong&gt;[4]&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="middle"&gt;         &lt;p align="center"&gt;Windows XP&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;1&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;1&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;2&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;4&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;7&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="middle"&gt;         &lt;p align="center"&gt;Windows Server 2003&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;1&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;1&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;2&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;4&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;4&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="middle"&gt;         &lt;p align="center"&gt;Windows Vista &amp;amp; Windows Server 2008&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;1&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;1&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;2&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;4&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;4&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="middle"&gt;         &lt;p align="center"&gt;Windows 7 &amp;amp; Windows Server 2008 R2&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;1&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;1&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;2&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;4&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="middle"&gt;         &lt;p align="center"&gt;4&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;These timeouts can be customized using the registry value HKLM\System\CurrentControlSet\Services\dnscache\Parameters\DNSQueryTimeouts. This value does not exist by default and then the pre-defined default array just mentioned is used. If the value is defined then it should have a type of REG_MULTI_SZ (multi-line string) with each line containing one value of the array with the last line having a 0 to indicate the end of the list.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/5466.image_5F00_191E5A8F.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/6837.image_5F00_thumb_5F00_49652F45.png" width="396" height="358" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If any of the values in a line is higher than 30 then a value of 30 is used for that line instead. If the total sum of the values is higher than 120 (2 minutes) then the list is shortened from bottom-up to remove values until the total timeout is less than 120.&lt;/p&gt;  &lt;h1&gt;Which DNS Servers do we query in each attempt?&lt;/h1&gt;  &lt;p&gt;The DNS Client queries the following DNS servers in each attempt:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;In the first attempt we query the preferred DNS server of the preferred network adapter only. The preferred DNS server is the first server listed for that adapter. The adapters are sorted based on their binding order and the preferred adapter is the one at the top of the list. You can change this binding order by opening ncpa.cpl and going to the menu Advanced/Advanced Settings…      &lt;br clear="all" /&gt;      &lt;br clear="all" /&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/7848.image_5F00_5E7393A9.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/8831.image_5F00_thumb_5F00_27D5C298.png" width="378" height="421" /&gt;&lt;/a&gt;       &lt;br clear="all" /&gt;      &lt;br /&gt;Adapters that are disabled, disconnected, do not have TCP/IP enabled or have no DNS servers listed are ignored.       &lt;br /&gt;&lt;strong&gt;In this attempt we query one DNS server only&lt;/strong&gt;.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;If the previous attempt times-out, retry the query with the &lt;u&gt;next best&lt;/u&gt; DNS server for &lt;u&gt;all&lt;/u&gt; the adapters. The next best DNS server for an adapter is the next on its list that has not already been queried and timed-out.       &lt;br /&gt;Note that the lists are managed as circular-lists, once we reach the end of the list for an adapter, the next best server for that adapter will be the first on its list.       &lt;br /&gt;&lt;strong&gt;In this attempt we query one DNS server per adapter&lt;/strong&gt;.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;If the previous attempt times-out (because &lt;u&gt;none&lt;/u&gt; of the DNS servers queried in the previous step answered in the expected time), retry the query with the &lt;u&gt;next best&lt;/u&gt; DNS server for &lt;u&gt;all&lt;/u&gt; the adapters.       &lt;br /&gt;&lt;strong&gt;In this attempt we query one DNS server per adapter&lt;/strong&gt;.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;If the previous attempt times-out, retry the query with &lt;u&gt;all the possible DNS servers in all the adapters&lt;/u&gt;. This includes even servers that have already timed-out in the previous steps.       &lt;br /&gt;&lt;strong&gt;In this attempt we query all the DNS servers in all the adapters&lt;/strong&gt;.       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Repeat step (4) until we have run out of attempts. If there are no more attempts then return an error to the caller.      &lt;br /&gt;&lt;strong&gt;In this attempt we query all the DNS servers in all the adapters&lt;/strong&gt;.       &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;It is important to clarify something for steps 2 to 5 as multiple servers are queried in those steps: as long as one of the servers queried in that attempt responds, with either a positive or negative answer, then the query is considered resolved. It is OK if the other servers queried do not respond as we already have an answer which is what we wanted.&lt;/p&gt;  &lt;p&gt;Using the information about the default Timeout array and the retry logic that was just described we can see that each attempt will timeout, by default, after:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;First attempt (step 1): Preferred DNS Server on the preferred adapter: times-out after 1 second &lt;/li&gt;    &lt;li&gt;Second attempt (step 2): Next best server for all the adapters: times-out after 1 second &lt;/li&gt;    &lt;li&gt;Third attempt (step 3): Next best server for all the adapters: times-out after 2 seconds &lt;/li&gt;    &lt;li&gt;Fourth attempt (step 4): All DNS servers in all the adapters: times-out after 4 seconds &lt;/li&gt;    &lt;li&gt;Fifth attempt (step 5): Repeat of step (4): times-out after 4 seconds (7 seconds in Windows XP)&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;After the fifth attempt times-out there are no more elements in the array to use, then we stop the query and return an error to the caller. As our default Timeout array has 5 elements, we try to resolve the query in 5 attempts. The total waiting time before we give up the query is 12 seconds (15 seconds in XP) which is the sum of all the values in the array.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;Important note&lt;/strong&gt;: the DNS servers list is kept in memory by the dnscache service. The next best server is determined based on a priority. All the servers start with the same priority and they are sorted for each adapter based on the precedence in which they were configured. Each time a server times-out its priority is reduced and when a server answers its priority is boosted (error conditions also modify the priority of a server). The next best server for an adapter is the one with the higher priority that is higher in the precedence list (if more than one server have the same priority then the next best is the one that is higher in the precedence list).     &lt;br /&gt;It is important to note that this prioritized list is kept across different queries; this means that the priorities are not reset after each query, but they are reused. The idea is that if a server timed-out a recent query then the next query will go to another server with a higher priority first. The effect of this is that the preferred DNS server might not be the first to get the next query if it recently timed-out.     &lt;br /&gt;These priorities are reset to the initial default values after an interval named ServerPriorityTimeLimit defined in registry. See &lt;a href="http://support.microsoft.com/kb/320760"&gt;http://support.microsoft.com/kb/320760&lt;/a&gt; for more information about this value.     &lt;br /&gt;An example of this behavior is a client pointing to two DNS servers: DNS1 and DNS2. The client tries to resolve a name and DNS1 times-out but DNS2 answers. The next query that this client tries to resolve is going to go DNS2 first before being retried in DNS1, because DNS2 would have a higher priority than DNS1.&lt;/p&gt;  &lt;h1&gt;Making sense of all this information with an example&lt;/h1&gt;  &lt;p&gt;Suppose we have a computer named CLIENT1 running Windows Server 2003 that has 4 NICs with the binding order NIC1, NIC2, NIC3 and NIC4. The DNS servers list in CLIENT1 is:&lt;/p&gt;  &lt;div align="center"&gt;   &lt;table border="1" cellspacing="0" cellpadding="0" width="450"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td colspan="2"&gt;           &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td colspan="2"&gt;           &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td colspan="2"&gt;           &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC3&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td colspan="2"&gt;           &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC4&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.1&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.120.1.1&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.1&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.140.1.1&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.2&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.2&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.140.1.2&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.3&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.3&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.4&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p&gt;The next best server for each adapter is indicated by the “&lt;span style="line-height: 115%; font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;” symbol. As we are just starting the next best DNS servers for each adapter is the first in their list. Instead of showing how the priorities are modified after each timeout we are going to use a circular list to select the next best server (the effect is the same, and the example looks easier to understand).&lt;/p&gt;  &lt;p&gt;We also have a Timeout array in CLIENT1 that looks like this:&lt;/p&gt;  &lt;div align="center"&gt;   &lt;table border="1" cellspacing="0" cellpadding="0" width="100"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="middle" colspan="2"&gt;           &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;Timeout&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td width="25"&gt;           &lt;p&gt;&lt;span style="font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td width="75"&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;2&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td&gt;           &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;          &lt;td&gt;           &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/div&gt;  &lt;p&gt;The “&lt;span style="line-height: 115%; font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;” symbol indicates the value to use as the timeout for our next attempt. As we are just starting to resolve a query, we are at the first element of the array.&lt;/p&gt;  &lt;p&gt;A process in CLIENT1 needs to resolve a name. Assume that none of the configured DNS servers are reachable so all the attempts time-out.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;First attempt: Send query to 10.110.1.1 (best for NIC1 which is the preferred adapter). Wait at most for 1s (the current value in the Timeout array) for an answer.      &lt;br /&gt;After this attempt times-out our DNS table and Timeout array will look like this (symbols in red indicate changes from the previous state):       &lt;br /&gt;      &lt;br /&gt;      &lt;div align="center"&gt;       &lt;table border="1" cellspacing="0" cellpadding="0" width="450"&gt;&lt;tbody&gt;           &lt;tr&gt;             &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC3&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC4&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.120.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.140.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.140.1.2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.3&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.3&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;         &lt;/tbody&gt;&lt;/table&gt;     &lt;/div&gt;      &lt;div&gt;&amp;#160;&lt;/div&gt;      &lt;div align="center"&gt;       &lt;table border="1" cellspacing="0" cellpadding="0" width="100"&gt;&lt;tbody&gt;           &lt;tr&gt;             &lt;td valign="middle" colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;Timeout&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td width="25"&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td width="75"&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;         &lt;/tbody&gt;&lt;/table&gt;        &lt;br /&gt;        &lt;br /&gt;&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;Second attempt (or first retry): Send query to: 10.110.1.2 (next best for NIC1), 10.120.1.1 (next best for NIC2), 10.130.1.1 (next best for NIC3) and 10.140.1.1 (next best for NIC4). Wait at most for 1s (the current value in the Timeout array) for an answer from any of the servers queried.      &lt;br /&gt;After this attempt times-out the DNS table and Timeout array will look like this:       &lt;br /&gt;      &lt;br /&gt;      &lt;div align="center"&gt;       &lt;table border="1" cellspacing="0" cellpadding="0" width="450"&gt;&lt;tbody&gt;           &lt;tr&gt;             &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC3&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC4&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.120.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.140.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.140.1.2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.3&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.3&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;         &lt;/tbody&gt;&lt;/table&gt;     &lt;/div&gt;      &lt;div&gt;&amp;#160;&lt;/div&gt;      &lt;div align="center"&gt;       &lt;table border="1" cellspacing="0" cellpadding="0" width="100"&gt;&lt;tbody&gt;           &lt;tr&gt;             &lt;td valign="middle" colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;Timeout&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td width="25"&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td width="75"&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;         &lt;/tbody&gt;&lt;/table&gt;     &lt;/div&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Third attempt: Send query to: 10.110.1.3, 10.120.1.1 (NIC2 has just one DNS server listed then this server is always the best server for it), 10.130.1.2 and 10.140.1.2. Wait at most for 2s for an answer from any of the servers queried.      &lt;br /&gt;After this attempt times-out the DNS table and Timeout array will look like this:       &lt;br /&gt;      &lt;br /&gt;      &lt;div align="center"&gt;       &lt;table border="1" cellspacing="0" cellpadding="0" width="450"&gt;&lt;tbody&gt;           &lt;tr&gt;             &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC1&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC3&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;NIC4&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.120.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.140.1.1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.140.1.2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.3&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.130.1.3&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;10.110.1.4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;         &lt;/tbody&gt;&lt;/table&gt;     &lt;/div&gt;      &lt;div&gt;&amp;#160;&lt;/div&gt;      &lt;div align="center"&gt;       &lt;table border="1" cellspacing="0" cellpadding="0" width="100"&gt;&lt;tbody&gt;           &lt;tr&gt;             &lt;td valign="middle" colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;Timeout&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td width="25"&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td width="75"&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;         &lt;/tbody&gt;&lt;/table&gt;     &lt;/div&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Fourth attempt: Send query to all DNS servers in all the adapters (including those that timed-out in previous attempts). Wait at most for 4s for an answer from any of the servers queried.      &lt;br /&gt;At the end of the waiting time for this attempt the Timeout array will look like this (the DNS list table is not included as we will not use it again for this example):       &lt;br /&gt;      &lt;br /&gt;      &lt;div align="center"&gt;       &lt;table border="1" cellspacing="0" cellpadding="0" width="100"&gt;&lt;tbody&gt;           &lt;tr&gt;             &lt;td valign="middle" colspan="2"&gt;               &lt;p align="center"&gt;&lt;b&gt;&lt;span style="font-size: 8pt"&gt;Timeout&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td width="25"&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td width="75"&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;1&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;2&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-size: 8pt"&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;            &lt;tr&gt;             &lt;td&gt;               &lt;p&gt;&lt;span style="font-family: wingdings; color: red; font-size: 8pt"&gt;à&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;              &lt;td&gt;               &lt;p align="center"&gt;&lt;span style="font-size: 8pt"&gt;4&lt;/span&gt;&lt;/p&gt;             &lt;/td&gt;           &lt;/tr&gt;         &lt;/tbody&gt;&lt;/table&gt;     &lt;/div&gt;      &lt;br /&gt;      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Fifth attempt: Send query to all DNS servers in all the adapters. Wait at most for 4s for an answer from any of the servers queried.      &lt;br /&gt;After this attempt times-out we have run out of values in the Timeout array, then we give up and return an error to the caller. &lt;/li&gt; &lt;/ol&gt;  &lt;h1&gt;Where is the Network Trace?&lt;/h1&gt;  &lt;p&gt;You can see the behavior of the previous example in a network trace:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/7838.image_5F00_7B1CE2F1.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/8562.image_5F00_thumb_5F00_2FE99C95.png" width="512" height="224" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Frame #3 shows the first attempt: preferred DNS server of the preferred adapter. We use one frame only for this attempt. &lt;/li&gt;    &lt;li&gt;Frames #9 to #15 show the second attempt: next best DNS server in all the adapters. Notice how these frames have a time delta of 1s after the first attempt. We have 4 frames because we are querying 1 DNS server for each adapter and we have 4 NICs. &lt;/li&gt;    &lt;li&gt;Frames #17 to #23 show the third attempt: next best DNS server in all the adapters. Notice how these frames have a time delta of 1s after the second attempt. We have 4 frames again because we are querying 1 DNS server for each adapter. &lt;/li&gt;    &lt;li&gt;Frames #25 to #43 show the fourth attempt: all the DNS servers in all the adapters. Notice how these frames have a time delta of 2s after the third attempt. We have 10 frames because we are querying all the DNS servers in all the adapters, and we have a total of 10 servers to query: 4 for NIC1 + 1 for NIC2 + 3 for NIC3 + 2 for NIC4. &lt;/li&gt;    &lt;li&gt;Frames #45 to #63 show the fifth attempt: all the DNS servers in all the adapters. Notice how these frames have a time delta of 4s after the fourth attempt. We have 10 frames for this attempt too. &lt;/li&gt;    &lt;li&gt;We have no more frames because we do 5 attempts (remember the Timeout array has 5 elements by default). After the previous attempt times-out, which is going to be 4s (recheck the Timeout array again if you don’t remember where this value of 4s comes from), then we return an error to the caller. &lt;/li&gt; &lt;/ul&gt;  &lt;h1&gt;Conclusion&lt;/h1&gt;  &lt;p&gt;Hopefully after reading this two-part blog post you have a better understanding of how the Windows DNS client works and the logic it follows when it deals with timeouts.&lt;/p&gt;  &lt;p&gt;Based on this information, keep in mind these best practices:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Configure the clients to point to more than one DNS server for fault-tolerance. Do not list more than one server to overcome disjoint DNS namespaces, and if you are going to do so, understand the risks and consequences. &lt;/li&gt;    &lt;li&gt;Try to have the DNS list in the clients ordered based on the “closeness” (in network terms) to the DNS servers to avoid retries due to timeouts. &lt;/li&gt;    &lt;li&gt;Try to have clients use DNS servers that have the information that they are going to query more often; in the case of domain members these would be the DNS servers that have the client domain’s zone. &lt;/li&gt;    &lt;li&gt;Maintain an internal DNS infrastructure and hierarchy where names can be resolved independently of the internal DNS server that is queried. For DNS implementations that support multi-domain AD environments, make sure that any DNS servers can resolve any names no matter the domain where the names are registered.      &lt;br /&gt;Note: saying that any DNS servers can resolve any names does not mean that all of them have a copy of all the zones in the environment. What it means is that all of them have a way to find the name in the DNS hierarchy because the forwarders/stubs zones/delegations/secondary zones are properly configured. &lt;/li&gt; &lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3470960" width="1" height="1"&gt;</description></item><item><title>DNS Clients and Timeouts (Part 1)</title><link>http://blogs.technet.com/b/stdqry/archive/2011/12/02/dns-clients-and-timeouts-part-1.aspx</link><pubDate>Fri, 02 Dec 2011 14:18:35 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3468620</guid><dc:creator>karammasri</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.technet.com/b/stdqry/rsscomments.aspx?WeblogPostID=3468620</wfw:commentRss><comments>http://blogs.technet.com/b/stdqry/archive/2011/12/02/dns-clients-and-timeouts-part-1.aspx#comments</comments><description>&lt;p&gt;Some time ago I was helping a customer with a case related to the Windows DNS client. This customer was getting inconsistent name resolution results and he wanted to know why this was happening. The issue that this customer faced was related to the configuration of the DNS servers list in the clients and an incorrect assumption he made about the way that this list is used when a name has to be resolved.
&lt;/p&gt;&lt;p&gt;I wanted to start this blog about DNS with a post that tries to clarify some of the concepts related to the use of the DNS servers list and timeouts by the Windows DNS client. In this first part I will describe a sample scenario, a "solution" to a requirement using an incorrect, but common, assumption and the problem with this solution. In the second part I will explain the behavior of the Windows DNS Client when dealing with timeouts.
&lt;/p&gt;&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;The sample scenario&lt;/span&gt;
	&lt;/h1&gt;&lt;p&gt;The sample environment consists of two Active Directory single-domain forests named contoso.local and fabrikam.local, both in the same location/LAN. These domains are managed by different people, with no trust relationship between them. 
&lt;/p&gt;&lt;ul&gt;&lt;li&gt;contoso.local has two domain controllers: contosodc1.contoso.local with IP 10.24.8.11 and contosodc2.contoso.local with IP 10.24.8.12. There are also two workstations joined to the domain: client1.contoso.local with IP 10.24.9.101 and client2.contoso.local with IP 10.24.9.105.
&lt;/li&gt;&lt;li&gt;fabrikam.local has two domain controllers: fabrikamdc1.fabrikam.local with IP 10.24.8.31 and fabrikamdc2.fabrikam.local with IP 10.24.8.32. There is a member server in this domain named server1.fabrikam.local with IP 10.24.8.35.
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;All the DCs are running the DNS Server service with forwarders configured to the ISP. No name resolution is configured between the two domains. None of the internal domains are published on the Internet DNS servers. WINS is not used.
&lt;/p&gt;&lt;p&gt;Members in each domain have their local domain's DCs listed as their DNS servers. &lt;br/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/6445.image5_5F00_thumb_5F00_3F2A99B8.png" alt=""/&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;
 &lt;/p&gt;&lt;h1&gt;&lt;br/&gt;&lt;span style="font-family:Verdana"&gt;The requirement and the "solution"&lt;/span&gt;
	&lt;/h1&gt;&lt;p&gt;Users of CLIENT1 and CLIENT2 need to access a share in SERVER1. The administrators decide to create user accounts for these users in fabrikam.local and have them provide these credentials every time they access this share instead of creating a trust relationship. Also, due to political issues between the administrators, neither of the groups wants to forward DNS queries to the other domain or make any changes to their DNS servers that implied contacting the other domain's DNS servers or listing the other domain's servers locally.
&lt;/p&gt;&lt;p&gt;Now when the users in CLIENT1 and CLIENT2 need to connect to server1.fabrikam.local they first need to resolve its name to an IP address. This name resolution is not available in the current environment. The "solution" that the administrators in contoso.local decide to use is to list FABRIKAMDC1 and FABRIKAMDC2 as alternate DNS servers in CLIENT1 and CLIENT2 intermixed with their current DNS servers. The configuration of the DNS servers list for these clients is then going to be: CONTOSODC1, FABRIKAMDC1, CONTOSODC2 and FABRIKAMDC2. The desired configuration would look like this: &lt;br/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/3482.image_5F00_thumb_5F00_2956EC5A.png" alt=""/&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;This solution is based on the (wrong) assumption that if these clients need to resolve server1.fabrikam.local then the secondary DNS server 10.24.8.31 (FABRIKAMDC1) is going to be used to resolve it because the primary DNS server 10.24.8.11 (CONTOSDC1) will not be able to do so.
&lt;/p&gt;&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;Does this solution work?&lt;/span&gt;
	&lt;/h1&gt;&lt;p&gt;Luckily (I will explain in a little bit why I am using this word) this solution works sometimes, but most of the times it fails. When it fails the clients are going to get a message that the name of SERVER1 cannot be found.
&lt;/p&gt;&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;What is wrong with this solution?&lt;/span&gt;
	&lt;/h1&gt;&lt;p&gt;The problem with this solution is the &lt;span style="font-family:Verdana"&gt;&lt;em&gt;wrong assumption &lt;/em&gt;&lt;/span&gt;that all the DNS servers in the list are going to be queried until the name is found (positive answer) and that the query will fail only when all of the listed DNS servers answer that the name does not exist (negative answer). In other words: the client will try all the possible DNS servers it has configured until it gets a positive answer before it gives up the query and accepts any negative answer.
&lt;/p&gt;&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;So what is the actual behavior of the DNS client?&lt;/span&gt;
	&lt;/h1&gt;&lt;p&gt;The actual behavior of the DNS client is that it is going to query its DNS servers in the order that they are listed until an answer, either positive or negative, is received. Once an answer is received, either positive or negative, the DNS client stops the query process and gives that answer back to the calling application. Only when a query to a DNS server times-out (or reports a server error) is when the client retries the query with the next DNS server in the list. In other words: negative answers do no trigger retries with alternate DNS servers, only timeouts (and other errors) do.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:7pt"&gt;Note #1: in the Windows DNS Client this behavior of querying servers in order slightly changes after 3 attempts to resolve a query time-out. I will explain this behavior in part 2 of this post.&lt;/span&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:7pt"&gt;Note #2: the calling application might have some logic to retry queries that receive a negative response, but this would be outside the knowledge of the DNS Client process.&lt;/span&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Think of this concept as: the DNS client is looking for an answer, not for a positive answer. Once the client gets an answer it "trusts" that the DNS server that sent it did its best to get the correct answer and then it stops querying other servers.
&lt;/p&gt;&lt;p&gt;In a DNS infrastructure any server should be able to resolve a name as long as the name exists in the DNS namespace. This means that it does not matter the DNS server that you query because you will eventually get the right answer (positive or negative). Multiple DNS servers are configured for fault-tolerance, not because they have access to disjoint DNS namespaces.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:7pt"&gt;NOTE #3: a similar misconception exists about the use of multiple forwarders, but this will be the topic of another blog post.&lt;/span&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;So why does this solution work sometimes "by luck"?&lt;/span&gt;
	&lt;/h1&gt;&lt;p&gt;This solution works when the query asking for server1.fabrikam.local that is sent to CONTOSDC1 times-out and is retried by the client in the secondary server FABRIKAMDC1. In this case FABRIKAMDC1 will be able to immediately answer with the IP of SERVER1.
&lt;/p&gt;&lt;p&gt;What could be the cause for CONTOSODC1 to not answer before the client times-out? CONTOSODC1 has to rely on its forwarders to resolve names in fabrikam.local (remember that CONTOSODC1 does not have a copy of the zone fabrikam.local or any resolution to that domain) and the forwarders could be slow to respond, or the link to the ISP could congested, or the forwarders could be wrongly configured, or the forwarders timeout in CONTOSODC1 were set to high values, and a long etcetera.
&lt;/p&gt;&lt;p&gt;This solution breaks when another client sends the same query to CONTOSDC1 shortly after the first query was resolved. This is because CONTOSDC1 would have then already cached a negative response for the name and then it can immediately answer to this query from its cache without contacting the forwarders. The solution also breaks when the name is not in the cache of CONTOSODC1 but the process of querying the forwarders allows it to answer (with a negative response) before the client times-out and switches to FABRIKAMDC1.
&lt;/p&gt;&lt;p&gt;At the end for this "solution" to work the client has to be "lucky enough" to be querying CONTOSODC1 when the name is not already in the negative cache of this DNS server &lt;span style="text-decoration:underline"&gt;and&lt;/span&gt; the time to get a response back from the forwarders is higher than the client timeout.
&lt;/p&gt;&lt;p&gt;If you are still wondering why CONTOSODC1 will always answer with a negative response for queries in fabrikam.local then you have to remember that neither CONTOSODC1 nor any of the Internet DNS servers have any knowledge of domain fabrikam.local, so none of them have any means to positively resolve names in this domain.
&lt;/p&gt;&lt;h1&gt;&lt;span style="font-family:Verdana"&gt;Can you show me some traces?&lt;/span&gt;
	&lt;/h1&gt;&lt;p&gt;Here are some network traces that show the behavior that I just described:
&lt;/p&gt;&lt;p&gt;In the first trace we have the original configuration of CLIENT1 listing only the DNS servers of its own domain and trying to resolve the name server1.fabrikam.local: &lt;br/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/0358.image_5F00_thumb_5F00_191AFE94.png" alt=""/&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;As expected both of the DNS servers answered with a negative response (name error) in packets #3 and #4 because none of them can resolve the name. Notice that CLIENT1 resent the query to CONTOSODC2 in packet #2 because the query to CONTOSODC1 in packet #1 timed-out after 1 second (I will explain this timeout value in Part 2). This timeout was probably due to CONTOSODC1 waiting to get an answer from its forwarders but we can see that it eventually sent back an answer in packet #3 (same logic applies for the delayed response from CONTOSODC2 in packet #4). We will use this fact that CONTOSODC1 takes longer than the client timeout to answer back to the client to analyze the next traces.
&lt;/p&gt;&lt;p&gt;The next trace shows what happens when we configure CLIENT1 to use the DNS servers of fabrikam.local as alternate DNS servers using the "solution" we previously discussed (assume that the DNS Server service cache in CONTOSODC1 is empty at this point): &lt;br/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/2821.image_5F00_thumb_5F00_7F834B99.png" alt=""/&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;Notice how CLIENT1 first tried to resolve the name using CONTOSODC1 in packet #1; after 1 second it timed-out and retried the query using FABRIKAMDC1 in packet #2 who answered almost instantaneously in packet #3. CLIENT1 then got a positive answer indicating the IP address 10.24.8.35 for server1.fabrikam.local (notice the success answer containing this IP in packet #3). Also notice that some seconds later we have packet #4 which is the (delayed) response from CONTOSODC1 indicating that the name cannot be found, but at this point CLIENT1 has already resolved the name and does not need to take care of this answer.
&lt;/p&gt;&lt;p&gt;Now what happens if CLIENT2 (who has the DNS servers list configured exactly as CLIENT1) tries to resolve the same name just after CLIENT1 resolved the name as in the previous trace (packets #1 to #4 from the previous trace are included to reinforce the sequence of events): &lt;br/&gt;
	&lt;/p&gt;&lt;p style="text-align: center"&gt;&lt;img src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/8284.image_5F00_thumb_5F00_2F7D774E.png" alt=""/&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br/&gt;Notice how in packet #5 CLIENT2 sends the query to its primary DNS server CONTOSODC1. CONTOSODC1 has already cached that the name does not exist (due to the query that CLIENT1 previously sent) and can almost instantaneously answer back to CLIENT2 with a negative answer in packet #6. Notice how CLIENT2 does not retry the query using its secondary DNS server FABRIKAMDC1 because it already got an answer from the primary server.
&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana; font-size:7pt"&gt;Note #4: in a future post I will blog about the use of the positive and negative caches in Microsoft DNS Server.&lt;/span&gt;&lt;span style="font-family:Times New Roman; font-size:12pt"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;In the next part of this post I will explain how the Windows DNS client deals with timeouts and its retry logic.
&lt;/p&gt;&lt;p&gt;&lt;img src="http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-91-72-metablogapi/1351.120211_5F00_1818_5F00_DNSClientsa1.png" alt=""/&gt;&lt;span style="font-family:Verdana"&gt;
		&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family:Verdana"&gt;I hope that you find this information useful. Please provide your feedback about the content in the comments sections. I have several ideas for the next posts and I would like to hear your comments about topics that might be interesting for you. &lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3468620" width="1" height="1"&gt;</description></item></channel></rss>