您的位置:首页 > 理论基础 > 计算机网络

如何在 Windows XP 和 Windows Server 2003 中禁用客户端 DNS 缓存

2007-01-08 22:09 686 查看
有关本文的 Microsoft windows 2000 版本,请参阅 245437 (http://support.microsoft.com/kb/245437/EN-US/).

警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证可以解决因注册表使用不当所导致的问题。使用注册表编辑器需要您自担风险。

本页


概要




更多信息




使用注册表控制缓存时间




子网优先级划分


概要

windows 包含客户端域名系统 (DNS) 缓存。客户端 DNS 缓存功能可能会令人产生一个错误的印象:DNS“循环”不是从 DNS 服务器到 windows 客户机进行的。如果您使用 ping 命令搜索同一个 A 记录域名,客户端可能会使用相同的 IP 地址。这种情况不同于 windows 2000 以前的 Microsoft 操作系统。这些操作系统不包含客户端 DNS 缓存功能。本文介绍了如何禁用 DNS 缓存。

注意:本文讨论 DNS 的客户端部分。不要使用这些信息对 DNS 服务器进行更改。



回到顶端

更多信息

要停止 DNS 缓存,请运行下列任一命令:
net stop dnscache

- 或者 -
sc 服务器名 stop dnscache
要在 windows 中永久性地禁用 DNS 缓存,请使用服务控制器工具或服务工具将 DNS 客户端服务启动类型设置为“禁用”。请注意,Windows DNS 客户端服务的名称还可能会显示为“Dnscache”。

注意:如果停用 DNS 解析器缓存,客户机的总体性能会降低,并且 DNS 查询的网络通信量会增加。

DNS 客户端服务可通过将以前解析的名称存储在内存中来优化 DNS 名称解析的性能。如果 DNS 客户端服务被关闭,计算机仍然可以使用网络的 DNS 服务器来解析 DNS 名称。

windows 解析器收到对查询的肯定或否定响应时,它会将该肯定或否定响应添加到它的缓存中,从而创建一条 DNS 资源记录。解析器在查询任何 DNS 服务器之前都始终会检查缓存。如果缓存中有 DNS 资源记录,则解析器会使用缓存中的记录而不会查询服务器。这种行为可提高查询速度并降低 DNS 查询的网络通信量。

您可以使用 Ipconfig 工具来查看和刷新 DNS 解析器缓存。要查看 DNS 解析器缓存,请在命令提示符处键入 ipconfig /displaydns。Ipconfig 会显示 DNS 解析器缓存的内容,包括从 Hosts 文件中预先加载的 DNS 资源记录和系统解析过的任何最近查询的名称。一段特定时间之后,解析器会丢弃缓存中的记录。该时间段在与 DNS 资源记录相关联的生存时间 (TTL) 中指定。您还可以手动刷新缓存。刷新完缓存后,计算机必须重新向 DNS 服务器查询计算机以前解析过的任何 DNS 资源记录。要删除 DNS 解析器缓存中的条目,请在命令提示符处键入 ipconfig /flushdns。



回到顶端

使用注册表控制缓存时间

重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要备份注册表,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 (http://support.microsoft.com/kb/256986/EN-US/) Microsoft windows 注册表说明
用于缓存肯定或否定响应的时间长度取决于以下注册表项中的条目的值:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/DNSCache/Parameters肯定响应的 TTL 是下列值中的较小者:
在解析器收到的查询响应中指定的秒数
MaxCacheTtl 注册表设置的值。
注意
肯定响应的默认 TTL 是 86,400 秒(1 天)。
否定响应的 TTL 是在 MaxNegativeCacheTtl 注册表设置中指定的秒数。
否定响应的默认 TTL 是 900 秒(15 分钟)。
如果您不希望缓存否定响应,请将 MaxNegativeCacheTtl 注册表设置设为 0。

要在客户机上设置缓存时间,请执行下列步骤:
1.启动注册表编辑器 (Regedit.exe)。
2.在注册表中找到并单击以下项:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Dnscache/Parameters
3.在“编辑”菜单上,指向“新建”,单击“DWORD 值”,然后添加下列注册表值:
数值名称:MaxCacheTtl
数据类型: REG_DWORD
默认值:86400 秒
数值数据:如果您将客户端的 DNS 缓存中的最大 TTL 值降低为 1 秒,则客户端 DNS 缓存看起来已被禁用。

数值名称:MaxNegativeCacheTtl
数据类型:REG_DWORD
默认值:900 秒
数值数据:如果您不希望缓存否定响应,请将该值设为 0。
4.键入您要使用的值,然后单击“确定”。
5.退出注册表编辑器。


回到顶端

子网优先级划分

windows XP DNS 解析器还使用“子网优先级划分”。如果解析器从 DNS 服务器收到多个 IP 地址映射(A 资源记录),并且一些记录含有计算机直接连接到的网络中的 IP 地址,则解析器会首先放置这些资源记录。这种行为会强制计算机连接到比较靠近它们的网络资源,从而减少了子网间的网络通信量。

虽然“子网优先级划分”确实可减少子网间的网络通信量,但在某些情况下,您可能喜欢让循环功能按照 RFC 1794 中的说明工作。如果是这样,您可以通过在以下注册表项中添加一个值为 0(REG_DWORD 数据类型)的 PrioritizeRecordData 注册表条目来禁用“子网优先级划分”功能:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/DnsCache/Parameters
有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
297510 (http://support.microsoft.com/kb/297510/EN-US/) How to Modify Time to Live on Domain Name System Records
286834 (http://support.microsoft.com/kb/286834/EN-US/) The DNS Client Service Does Not Revert to Using the First Server
有关更多信息,请参阅 windows 2000 DNS 白皮书。要查看此白皮书,请访问下列任一 Microsoft Web 站点:
http://www.microsoft.com/windows2000/docs/w2kdns.doc (http://www.microsoft.com/windows2000/docs/w2kdns.doc)
http://www.microsoft.com/technet/prodtechnol/windows2000serv/plan/w2kdns2.mspx (http://www.microsoft.com/technet/prodtechnol/windows2000serv/plan/w2kdns2.mspx)
有关更多信息,请参阅 Microsoft windows XP Professional Resource Kit 文档中的“DNS Caching, Network Prioritization, and Security”(DNS 缓存、网络优先级划分和安全)一章。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息