<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://myitforum.com/cs2/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>Forefront Security at myITForum : Windows Server 2008 R2, ID 2501</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Windows+Server+2008+R2/ID+2501/default.aspx</link><description>Tags: Windows Server 2008 R2, ID 2501</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 SP2 (Build: 31113.47)</generator><item><title>DNS scavenging not working as expected</title><link>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/06/23/dns-scavenging-not-working-as-expected.aspx</link><pubDate>Wed, 23 Jun 2010 09:12:00 GMT</pubDate><guid isPermaLink="false">8e8f7986-475c-475d-bdc9-a1b3a63b955b:153957</guid><dc:creator>forefrontsecurity</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://myitforum.com/cs2/blogs/forefrontsecurity/rsscomments.aspx?PostID=153957</wfw:commentRss><comments>http://myitforum.com/cs2/blogs/forefrontsecurity/archive/2010/06/23/dns-scavenging-not-working-as-expected.aspx#comments</comments><description>&lt;p&gt;Hi,&lt;/p&gt;  &lt;p&gt;I am not talking about identity and access management today, but I want to share with you a strange issue that I have encountered this week.&lt;/p&gt;  &lt;h3&gt;The problem&lt;/h3&gt;  &lt;p&gt;A Windows Server 2003 DNS Server host a non AD-integrated primary DNS zone. An other Windows Server 2008 R2 host a copy of this zone (secondary zone). &lt;/p&gt;  &lt;p&gt;We note that there are some very old records in this zone, that should be deleted by the auto scavenging process (that is actually in place).&lt;/p&gt;  &lt;p&gt;Every day, there are a 2502 events in the DNS event log, but no 2501.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Product:&lt;/strong&gt;       &lt;br /&gt;Windows Operating System&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;ID:&lt;/strong&gt;       &lt;br /&gt;2502&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Source:&lt;/strong&gt;       &lt;br /&gt;Microsoft-Windows-DNS-Server-Service&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Version:&lt;/strong&gt;       &lt;br /&gt;6.1&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Symbolic Name:&lt;/strong&gt;       &lt;br /&gt;DNS_EVENT_AGING_SCAVENGING_END_NO_WORK&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Message:&lt;/strong&gt;       &lt;br /&gt;The DNS server has completed a scavenging cycle but no nodes were visited. Possible causes of this condition include:       &lt;br /&gt;1) No zones are configured for scavenging by this server.       &lt;br /&gt;2) A scavenging cycle was performed within the last %1 minutes.       &lt;br /&gt;3) An error occurred during scavenging.       &lt;br /&gt;The next scavenging cycle is scheduled to run in %2 hours.       &lt;br /&gt;The event data will contain the error code if there was an error during the scavenging cycle. &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;The 2502 event prove that the scavenging process is running, but why aren’t the old records deleted ? &lt;/p&gt;  &lt;h3&gt;The configuration&lt;/h3&gt;  &lt;p&gt;First I want to be sure that the auto scavenging process is running and is well configured.&lt;/p&gt;  &lt;p&gt;We have two DNS servers, but only one host a read/write copy of the zone (the primary zone). This server is configured to scavenge the stale records every day (at 7am)&lt;/p&gt;  &lt;p&gt;The no-refresh interval is set to 3 days, and the refresh interval is set to 4 days. The sum is equal to 7 days, that is the maximum DHCP lease minus 1 day. Great.&lt;/p&gt;  &lt;h3&gt;Troubleshooting&lt;/h3&gt;  &lt;p&gt;First, I have to go deep in the aging and scavenging process. Have a look at these articles : &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.technet.com/b/networking/archive/2008/03/19/don-t-be-afraid-of-dns-scavenging-just-be-patient.aspx" target="_blank"&gt;Don&amp;#39;t be afraid of DNS Scavenging. Just be patient.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc759204(WS.10).aspx" target="_blank"&gt;Understanding aging and scavenging&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.technet.com/b/isrpfeplat/archive/2010/09/23/dns-scavenging-internals-or-what-is-the-dnstombstoned-attribute-for-ad-integrated-zones-dstombstoneinterval-dnstombstoned.aspx" target="_blank"&gt;DNS Scavenging internals (or what is the dnsTombstoned attribute) for AD Integrated zones&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;What we have to note, is :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;A record can be deleted when the timestamp is older than the no-refresh + refresh interval &lt;/li&gt;    &lt;li&gt;When records are deleted, a 2501 event appears in the event log &lt;/li&gt;    &lt;li&gt;When no records are deleted, a 2502 event appears in the event log. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;When scavenging can start ? (&lt;a href="http://technet.microsoft.com/en-us/library/cc771677(WS.10).aspx" target="_blank"&gt;Understanding aging and scavenging&lt;/a&gt;)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Dynamic updates are enabled for the zone : &lt;strong&gt;OK&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;A change in the state of the Scavenge stale resource records check box is applied. You can use DNS Manager to modify this setting at either an applicable DNS server or one of its primary zones : &lt;strong&gt;OK, all records are ready to be scavenge&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;The DNS server loads a primary zone that is enabled to use scavenging : &lt;strong&gt;OK&lt;/strong&gt;       &lt;br /&gt;This can occur when the server computer is started or when the DNS Server service is started. &lt;/li&gt;    &lt;li&gt;When a zone resumes service after having been paused : &lt;strong&gt;Never paused&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;If the zone is AD DS-integrated, replication for the zone must have taken place at least once since the DNS service was restarted or the domain controller was rebooted. When the previous events occur, the DNS server sets the value of start scavenging time by calculating the following sum:      &lt;br /&gt;Current server time + Refresh interval = Start scavenging time       &lt;br /&gt;This value is used as a basis of comparison during scavenging operations. : &lt;strong&gt;Zones are not AD-Integrated&lt;/strong&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Finally, I find this KB : &lt;a title="http://support.microsoft.com/kb/830689" href="http://support.microsoft.com/kb/830689"&gt;http://support.microsoft.com/kb/830689&lt;/a&gt;. This KB explain : &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;After you restart the DNS service on your Microsoft Windows Server 2003-based computer, you may not be able to scavenge old Domain Name System (DNS) records. DNS zones are protected from being scavenged for the period of time that is specified on the zone refresh interval when the DNS service is restarted.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I note that in the DNS Event Log, DNS service is restarted every morning (5am). That’s it ! A scheduled task start every day to backup the DNS zone files. Therefore, the zone is always protected, and the scavenging process can never delete stale records.&lt;/p&gt;  &lt;p&gt;A look at the zone info with dnscmd show this anomaly : &lt;/p&gt;  &lt;p&gt;c:\ODX&amp;gt;dnscmd /zoneinfo mazone.local&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Zone query result:&lt;/p&gt;    &lt;p&gt;Zone info:      &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ptr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0000000000307980       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zone name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = mazone.local       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; zone type&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; shutdown&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; paused&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; update&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DS integrated&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; read only zone&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data file&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = mazone.local.dns       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using WINS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using Nbstat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aging&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; refresh interval&amp;nbsp;&amp;nbsp;&amp;nbsp; = 96       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; no refresh&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 72       &lt;br /&gt;&lt;font style="background-color:#ffff00;"&gt;scavenge available&lt;/font&gt;&amp;nbsp; = &lt;font style="background-color:#ffff00;"&gt;date with timeformat :&amp;nbsp;&lt;/font&gt;last restart date + refresh interval.&lt;/p&gt;&lt;p&gt;&lt;font style="background-color:#ffff00;"&gt;&lt;/font&gt;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Zone Masters&amp;nbsp;&amp;nbsp;&amp;nbsp; NULL IP Array.       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Zone Secondaries       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Ptr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 00000000002FD150       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MaxCount&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AddrCount&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1       &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Secondary[0] =&amp;gt; af=2, salen=16, [sub=0, flag=00000000] p=13568,       &lt;br /&gt;addr=xxx.xxx.xxx.xxx&lt;/p&gt;    &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; secure secs&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2      &lt;br /&gt;Command completed successfully.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;br /&gt;&lt;/p&gt;  &lt;h3&gt;The resolution&lt;/h3&gt;  &lt;p&gt;It is not necessary to stop the DNS service to backup the DNS zone files. When the zones are not AD-integrated, a simple export of the zone with dnscmd can be used : &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;dnscmd myserver /zoneExport mazone.local backup\mazone.local.dns.bak&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;By the way, zones are not protected from being scavenged. &lt;/p&gt;  &lt;p align="right"&gt;&lt;strong&gt;Published by Olivier DETILLEUX&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://myitforum.com/cs2/aggbug.aspx?PostID=153957" width="1" height="1"&gt;</description><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Troubleshooting/default.aspx">Troubleshooting</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Windows+Server+2008+R2/default.aspx">Windows Server 2008 R2</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/DNS-Server-Service/default.aspx">DNS-Server-Service</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/ID+2502/default.aspx">ID 2502</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/ID+2501/default.aspx">ID 2501</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Scavenging/default.aspx">Scavenging</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Aging/default.aspx">Aging</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/Primary+zone/default.aspx">Primary zone</category><category domain="http://myitforum.com/cs2/blogs/forefrontsecurity/archive/tags/DNS/default.aspx">DNS</category></item></channel></rss>