当我浏览一个免费的开放DNS提供商列表时,大约90%正确解析并提供与我们的区域文件一致的信息.然而,10%,并没有,并声称IP地址是与我们过去从未拥有或使用的某个Amazon EC2实例相关联的IP地址.以下是一些示例DNS服务器提供错误信息:
dig www.grahamhancock.com @173.84.127.88 dig www.grahamhancock.com @209.222.18.222
这些服务器怎么会有错误的信息,我们怎样才能恢复对这种情况的控制呢?
这可能是恶意的还是错误的配置?我们是一个每月100万次点击的网站,搜索排名很好,所以我们可能是恶意攻击的目标.错误的服务器返回给某些人的错误IP地址指向AWS EC2实例上的某个快速致富站点.
我们应该做什么?
解决方法
grahamhancock.com. 172800 IN NS ns1.grahamhancock.com. grahamhancock.com. 172800 IN NS ns2.grahamhancock.com. grahamhancock.com. 172800 IN NS server.grahamhancock.com. ns1.grahamhancock.com. 172800 IN A 199.168.117.67 ns2.grahamhancock.com. 172800 IN A 199.168.117.67 server.grahamhancock.com. 172800 IN A 199.168.117.67 ;; Received 144 bytes from 192.35.51.30#53(f.gtld-servers.net) in 92 ms www.grahamhancock.com. 14400 IN CNAME grahamhancock.com. grahamhancock.com. 14400 IN A 199.168.117.67 grahamhancock.com. 86400 IN NS ns2.grahamhancock.com.com. grahamhancock.com. 86400 IN NS ns1.grahamhancock.com.com. ;; Received 123 bytes from 199.168.117.67#53(ns2.grahamhancock.com) in 17 ms
您的胶水记录指向IP地址199.168.117.67,它返回正确的响应.但是,您的区域正在定义以com.com结尾的名称服务器记录.如果我们追踪其中一个名称服务器而不是……
com.com. 172800 IN NS ns-180.awsdns-22.com. com.com. 172800 IN NS ns-895.awsdns-47.net. com.com. 172800 IN NS ns-1084.awsdns-07.org. com.com. 172800 IN NS ns-2015.awsdns-59.co.uk. ;; Received 212 bytes from 192.26.92.30#53(c.gtld-servers.net) in 22 ms ns1.grahamhancock.com.com. 30 IN A 54.201.82.69 com.com. 172800 IN NS ns-1084.awsdns-07.org. com.com. 172800 IN NS ns-180.awsdns-22.com. com.com. 172800 IN NS ns-2015.awsdns-59.co.uk. com.com. 172800 IN NS ns-895.awsdns-47.net. ;; Received 196 bytes from 205.251.195.127#53(ns-895.awsdns-47.net) in 16 ms
…我们最终在某人的AWS托管名称服务器上.
你的问题就是胶水记录不匹配.远程名称服务器最初通过粘合记录了解您的域,but once those remote servers perform a refresh最终查询了您最后使用额外的.com定义的伪名称服务器.
这不是你唯一的问题.您在胶水记录中列出了相同的IP地址三次,这非常不稳定.您应始终拥有多个名称服务器,它们永远不应共享子网或上游网络对等体,并且它们永远不应位于同一物理位置.目前的情况是,DNS服务器和您的单个服务器之间的任何简短路由问题都会导致您的域暂时无法访问.
更新:
这个Q& A已在头版刊登,并收到很多评论.不幸的是,这包括那些只是有点太急于回答这个答案的人,而没有检查他们的观点是否已在扩展的评论中得到解决.
大多数人似乎忽视的细节是我在这里引用的评论:
> […]地理冗余DNS服务器可防止短暂的路由中断导致名称服务器暂时否定缓存的情况.无论消极缓存期最终如何,它几乎肯定会超过连接中断的时间. […]缺乏DNS地理冗余不会造成零星且难以解决可用性问题的情况数量正好为零.
如果您认为我对名称服务器的负面缓存的理解是错误的,那就是公开讨论的游戏,但除此之外,您需要带来一些东西,而不是“它是一个小网站,谁在乎网站和DNS服务器是否都关闭了同时”.如果你这样说,你几乎和你认为的那样理解这个话题.
第二次更新:
我继续编写了一个canonical Q&A,我们可以在将来出现单个DNS服务器主题时链接到该版本.希望这会让事情得到解决.