dshgeyx 发表于 2014-12-03 15:10

bind9做的服务器,域名缓存的问题

一个客户通过bind服务器解析一个域名,服务器会将域名保存到本地以作缓存,下一个用户再来解析的时候,直接从本地调用,从而加快解析的速度。
这个本地缓存的时间如果不做设置的话,默认是多少?如果做设置的话,在哪里更改?

wenzk 发表于 2014-12-03 15:50

这部分一般都是由域名所有者来控制,不需要做特殊处理。

woxizishen 发表于 2014-12-03 16:04

1.windows下客户端电脑的本地缓存默认是保留30分钟。暂未发现在哪修改。

2.inux下可以通过更改域名解析的顺序,直接首先从域名服务器开始而不是本地缓存。

dshgeyx 发表于 2014-12-04 04:11

谢谢版主回答,

max-cache-ttl: 设定服务器存储普通应答的最大缓存时间,默认为7天.
> ttl:设置的时间意思为本服务器解析的域名在别人的服务器中缓存的时间

如果按照这两个参数的意思,ttl时间来控制域名在对方服务器中的缓存时间,而max-cache-ttl又是服务器本身缓存域名的时间,怎么感觉有些矛盾呢?

另外,如果按照您所说,域名服务器本身就不缓存数据了,所有的查询过来都是要到对方的服务器去取,是这样么?
如果真是这样,那么我之前对域名服务器的理解就是错误的了,我之前的理解是:域名服务器取了域名之后,会在本机进行缓存,以备下一个用户有相同的解析请求,直接返回。


回复 2# wenzk


   

dshgeyx 发表于 2014-12-04 04:13

谢谢版主回答。
linux作为客户端来讲,本身没有缓存解析数据,除非使用了nscd这个东东

我的意思是,bind服务器本身对非自身域名的解析是否做缓存,我现在对这个有疑问,搞不懂了,最近的一次测试颠覆了之前的理解。

回复 3# woxizishen


   

dshgeyx 发表于 2014-12-04 11:09

woxizishen 发表于 2014-12-04 11:40

本帖最后由 woxizishen 于 2014-12-04 11:46 编辑

回复 5# dshgeyx

1 你可能还没弄明白linux下DNS客户端完整的DNS解析过程,如果你不改设定的话,他的解析过程如下:
1.1、检查自己的本地DNS名字缓存
当DNS客户端需要解析某个FQDN时,预设是先检查自己的本地DNS名字缓存。本地的DNS名字缓存由两部分构成:
1.Hosts文件中的主机名到IP地址映射定义;

2.前一次DNS查询得到的结果,并且此结果还处于有效期(这个有效期是对方的TTL值来决定的);
如果DNS客户端从本地缓存中获得相应结果,则DNS解析完成。

1.2、联系自己的DNS服务器
如果DNS客户端没有在自己的本地缓存中找到对应的记录,则联系自己的DNS服务器,你必须预先配置DNS客户端所使用的DNS服务器。

这样解释你是否能够很好的理解了?


2.另外如果你是想问dns服务器的缓存时间,你可能还是没弄懂dns服务器的工作原理,问的是有问题的,dns服务器对域名解析的缓存时间是由对方dns服务器设定的ttl值决定的,

范例:
TTL    86400               ; 當這筆記錄被其他 DNS 伺服器查詢到後, 這個記錄會保持在對方 DNS 伺服器的快取中,這個跟清除 cache 的時保持多少秒鐘的意思
間有關係!單位是秒!。






dshgeyx 发表于 2014-12-04 13:43

回复 7# woxizishen
感谢您的回复。因为我的理解也是这样的,那么按照我之前的那个试验结果(不知道您看没看我贴的图片),bbc的ttl设置就是4分钟左右,而whitehouse的ttl时间就是20秒?


   

dshgeyx 发表于 2014-12-04 13:46

回复 7# woxizishen

我还查到了这么一段话:
Option中有下面两个参数,分别定义否定应答和肯定应答在缓存中的生存周期:
max-ncache-ttl
为降低网络流量和提升服务器存储否定回答的性能。 max-ncache-ttl 以秒为单位设定这
些回答的保存时间.默认max-ncache-ttl 是10800 秒(3 小时)。 max-ncache-ttl 不能超过7
天,如果设成一个更大的值,则将会被自动减为7 天。
max-cache-ttl
max-cache-ttl 设定了服务器储存普通(肯定)答案的最大时间。默认值一周(7 天)

那么这两个参数和对方ttl的设置,缓存中以哪个为准呢?


   

woxizishen 发表于 2014-12-04 14:01

本帖最后由 woxizishen 于 2014-12-04 14:14 编辑

回复 9# dshgeyx


不要纠结。我想先问下www.bbc.com我访问极慢,还有后面那个网站也是极慢。你不是在间接做广告宣传吧。

我dig 跟踪了一下,经常会无法到达,我觉得你应该找个正常的网站做测试。


还有你在那纠结毫秒的误差,即使误差几秒也正常,有可能curl程序本身反映慢,计算的时间不一定准确,你只能当做参考,不要纠结了,程序死的,人是活的,有点像我以前爱钻牛角尖的作风,哈哈。
你要不相信自己开个脚本无线循环下输出结果,你就明白了。
页: [1] 2
查看完整版本: bind9做的服务器,域名缓存的问题