智能dns或CDN应用中,怎样很好的解决DNS缓存问题

只能使用尽量短的TTL, 毕竟DNS并不是天生为GSLB设计的。1. LocalDNS和用户可能网络距离很远,我们无法保证这一点,特别是使用固定的DNS设置的用户(比如一些用户设置成8.8.8.8 / 4.4.4.4)。不过现在使用DHCP的用户越来越多了,一般而言local DNS和用户拥有相似的网络延时2. 某些Local DNS和browser忽略授权DNS的TTL设置,使用固定的dns超时时间。有些browser假如不关闭重启,就不会更新dns cache但是节点失效的问题,还可以从其它方面解决,比方DNS指向的几个IP都是HA Cluster而并非单机,从节点方面规避节点失效问题
■网友
理想情况下,各地DNS的缓存时间即为设置的ttl时间,所以可以通过设置ttl时间来控制DNS缓存的时间。ttl时间设置的短,DNS缓存过期快,在机器故障的时候很快切换,对用户的影响小;但是由于ttl设置的太短,缓存很快过期,要经常一层层的问域名的解析情况,DNS解析时间会比较长。以上是理想情况,真实情况下,个别的DNS服务器并不遵从ttl时间,可能有做强制缓存多少时间,我们都没办法控制。再来说明下使用智能DNS对域名解析的好处。首先可以解决用户访问到一个合适的ip,提升访问效果。再者,我们看下使用智能DNS后,用户访问http://www.abc.com的解析情况 www.abc.com. CNAME www.abc.com.xxx.com.http://www.abc.com.xxx.com A 192.168.0.1用户访问http://www.abc.com会经过以上的两层解析来找到ip,第一层解析的ttl时间是由你控制的,可以设置的长一些,使DNS缓存的久一些,降低DNS查询时间;第二层解析的ttl时间是由智能DNS提供方来设定的,一般设定的比较短,比如2分钟,方便故障的时候做到及时切换。
■网友
新浪的dns是自己的。这个问题本质上无解,好的方式是缩短纪录的有效期,但是有很多local dns并不遵守这样的约定。
■网友
ttl 设置成最短。 我记得最短是300吧 。也就是5分钟。
■网友
IDC 容灾的话,你可以考虑LISP技术。在一个数据中心挂掉的时候,他的出口LISP路由器会帮你将当前DNS解析出来的IP流量定向到OK的IDC中去。
■网友
ttl设短一点,但不能太短,不然也会被运营商改掉或者如果有bgp故障恢复也行
■网友
服务器不应该是防止防火墙后面的么,一台服务器DOWN掉之后,会自动被NAT映射到另外一台服务器,但是对外看到的IP地址不会变化。有时候甚至DNS服务器都是内网服务器,防火墙兼做流量分担功能,将发到同一个DNS的请求转发到不同的DNS服务器上去。


    推荐阅读