如何在Windows 2003中修改DNSlogging的TTL?

我修改了在dnspipe理中的typesA的特定主机logging的TTL值 – 右键单击​​该logging – >属性 – >更改了TTL值。 但是,当我调用DNSQuery()函数来检索该logging的修改的TTL值时,我获得了相同的默认TTL值。

但是当我在dnspipe理中查看logging的TTL值时,它只显示修改的值。

改变特定的DNSlogging的TTL后,我需要重新启动DNS服务?

PLZ纠正我,如果我错过了任何一步,而改变TTL …….

感谢你的关心。 我遵循的步骤是:

RR从20分钟改为24分钟,超过20分钟后,我打电话给下面的查询

ulRet = DnsQuery( hName.c_str(), DNS_TYPE_A, DNS_QUERY_BYPASS_CACHE, pSrvList, &pHost, NULL ); dnsTTL=pHost->dwTtl; cout<<"Current DNS TTL value"<<dnsTTL<<"\n"; 

但仍Iam得到输出作为当前的DNS TTL值1200(意味着20分钟秒)而不是1440秒(意味着24分钟)

如果您有启用了Active Directory的DNS,您确定您正在查询相同的DNS服务器,因为您正在编写更改? 如果没有,请确保您有时间进行复制。

如果它不是AD启用的,你是否在查询之前closuresDNS控制台? 我敢肯定,我读了一些关于变化没有提交,直到你closures它 – 听起来很疯狂,不是,但我从来没有非集成的DNS,所以我从来没有能够或需要testing这一点。

编辑

这是你在用什么? 它说:“当设置DNS_QUERY_STANDARD选项时,DNS 使用parsing器caching ,首先使用UDP进行查询,然后如果响应被截断,则使用TCP重试,并请求服务器代表客户端执行recursionparsing以parsing查询“。

如果您在更改之前查看了logging,它将位于本地DNScaching中。 如果您使用此选项,该function将检查您的caching,如果在该处findlogging,则不会进入服务器。

 ipconfig /flushdns 

应该清除你的caching。

 ipconfig /displaydns 

将显示所有caching的logging。

如果这不能解决这个问题,DNS服务器也可以cachinglogging,这取决于它们的configuration。

如果你已经做了改变,并且(原始的)TTL期限已经到期(到时候它应该超出所有的caching),而你仍然没有在DNSQuery中看到它,我会和你的DNSpipe理员谈谈。