我是几个Linux和FreeBSD服务器的管理员,这里有一个问题:
服务器运行一个工具,它每分钟为整个网络执行大量DNS查询。当它执行查询时,结果会在系统范围内缓存。如果DNS条目发生更改,则更改将在很长一段时间内得到。
刷新DNS缓存的方法是什么?我的老板几乎逼我把软件转移到有ipconfig /flushdns调用的Windows上。我告诉我的老板,我将在周末解决这个问题,周一所有的Linux和FreeBSD都会刷新缓存。如果我不这么做,他会强迫我制作Windows服务器并在它们上运行软件。
如何在Linux和FreeBSD上刷新DNS缓存?
发布于 2014-11-01 18:16:06
我不明白你的问题,因为你说了些废话。
如果您所在的Linux/Unix系统没有运行DNS服务器“命名/绑定/其他”,则系统不会缓存任何DNS查询。应用程序(DNS客户端)每次只查询DNS服务器而不进行缓存,它们每次都会查询DNS服务器。如果您使用DNS服务器“命名/绑定”并希望清除缓存,只需重新启动此服务(Freebsd:/etc/rc.d/named restart),但这是没有意义的。
如果DNS条目发生更改,则更改将在很长一段时间内得到。
这怎么可能?您是否运行DNS服务器?如果运行辅助DNS服务器,您只需从主服务器获得区域的副本,就没有必要刷新缓存。您可以删除区域文件并重新启动DNS服务,从而从主服务器上推送服务器更新区域。如果运行主DNS并希望更新区域信息,请更改“区域中的序列”并重新启动服务:
# /etc/rc.d/named restart (for named)
# rndc (for bind9)若要更新区域信息,请执行以下操作。要检查您是否得到了正确的dns答案,请使用:
# dig @dns_server example.com推动我将软件移动到具有ipconfig /flushdns的Windows
为了什么?
发布于 2014-11-01 04:54:33
假设您正在运行名称服务缓存守护进程,您将"nscd -i主机“作为根用户运行
发布于 2014-11-01 07:27:11
您可能要做的是以下几个方面的组合。
如果您知道DNS区域中的各个条目变化很快,那么将TTL设置为区域的一个较小的值。
通常,有一个NameServerCacheDaemon (nscd)进程在标准版本Linux中运行(不确定FreeBSD)。清除缓存的一种快速方法是重新启动这个守护进程。
最后,如果在主机上运行缓存DNS服务器,则可以轻松重新启动dns服务,从而清除缓存。我认为,如果您使用dns控制命令,甚至可能会有一个缓存清除。
https://serverfault.com/questions/641287
复制相似问题