无法解析dns地址是什么原因


日期:2014年1月21日

那一天看起来普通平常,然而在互联网领域却发生了几起令人瞩目的大规模故障事件。

在早晨时分,首先是腾讯公司遇到了故障,其QQ邮箱等多项服务无法让用户登录。虽然这个情况看似严重,但与下午发生的事件相比,几乎可以被忽略。

DNS,全称为域名系统(Domain Name System),在互联网中起着至关重要的作用。实际上,互联网中只存在IP地址,它们是一串数字,类似于我们生活中的门牌号,其他人在网络上要找到你必须依靠这个唯一的IP。第四代IP地址以XXX.XXX.XXX.XXX的形式呈现,记忆起来非常困难。我们为IP赋予一个别名,即域名(Domain),使人们的记忆更为方便。

当你访问蝌蚪五线谱网站时,你的电脑的DNS解析系统会自动向DNS服务器询问:“你知道蝌蚪五线谱对应的IP地址是什么?”

一个DNS服务器并不能知道所有域名的地址,这需要巨大的成本。我们有了递归DNS和根DNS的概念。根DNS(ROOT DNS)指的是全球共存的13台服务器,它们负责记录各种后缀的TOP LEVEL Domain Server(顶级域名根服务器)。用户使用的DNS(边缘DNS)会连接到根DNS,再逐级向上或向下查询,最终找到目标域名的权威DNS。

那么递归DNS是做什么的呢?它可以缓解根DNS的压力。如果所有人都直接询问根DNS,根DNS会承受巨大的负载。递归DNS作为一个代理人存在,它会根据DNS的TTL(生存时间)设置来缓存域名解析结果。在TTL时间内,如果再次请求相同的域名解析结果,递归DNS会直接返回之前的结果而不必再次询问根DNS。这样有效地减轻了根DNS的负载压力。

这一复杂的流程可以通过一张图清晰地展现出来。根域名服务器负责管理互联网的主目录。现行的DNS体系架构可以追溯到上个世纪80年代,它是一个倒树状结构,从根域开始,一直到顶级域、二级域、三级域等。每个域内部都设置有权威名字服务器。所有顶级域名如“.com”、“.cn”、“.net”都在根服务器下进行解析。虽然全球共有13个根服务器,但我们并没有自己的根服务器和管理权、控制权。这次事件发生后,许多专家呼吁建立自己的根服务器,这是防止此类攻击的重要措施。只有建立了自己的根服务器,我们才能真正掌握互联网的主导权。