DNS协议中的TTL值的意义在于为每一条记录设置一个默认存活时间。
每一个互联网上的缓存DNS服务器在查询到这个zone的记录之后都会将结果缓存在本地。
这样将大大提高DNS解析的速度,同时降低网络流量。
在Bind的配置中,一般有三个地方可以设置TTL值。
第一个地方是在每个zone文件中设置全局TTL值
这个值是这个zone文件中每一条记录的默认TTL值。
第二个地方是在每条记录的第二列,为每个记录单独设置TTL
这个值将覆盖第一个值。
第三个地方是在SOA记录的最后一列。
在第一和第二都没有配置的情况下,以这个值为准。
同时第三个值还有一个意义就是negative ttl
即对一个不存在记录的缓存时间。
举个例子,对于oolec.com这个zone来说,soa的ttl设置300s
同时子域名xxx.oolec.com的A记录不存在。
此时假如有客户端通过DNS服务器A去查询xxx.oolec.com的A记录
将会得到一个记录不存在的错误返回。
这个返回会在DNS服务器A上被缓存起来。
300s内如果有同样的请求,A将不会尝试去查询,
而是直接告诉客户xxx.oolec.com的A记录不存在。


博主的水贴不少啊
[回复]