引言:根服务器,一个经常被提到的互联网关键设施,但是不凡想想,我们在使用互联网浏览任意网站时,我们都会向本地(实际上大多数本地DNS都会向公共DNS发出请求)或公共DNS服务器发出请求。
这其中根服务器好像并没有为我们提供任何服务,那么根服务器是互联网的基石这种说法又从何而来呢?

什么是DNS
TCP/IP协议为互联网设备提供了通过IP地址相互连接的能力,但IP地址是一串数字,对用户而言难以记忆且不便使用。为解决这一问题,DNS(Domain Name System)应运而生。
DNS的核心功能是将域名(Domain Name)与IP地址建立映射关系,用户只需输入域名,DNS系统即可自动解析为对应的IP地址,实现快速访问。
这种“以名代址”的机制极大地降低了互联网使用的门槛,是互联网架构中不可或缺的一环。
DNS的架构
由于互联网中的域名非常非常多,如果都存放在一台域名服务器中,那么不仅查询速度慢,服务器压力大,而且难以保证服务的可靠性。因此,DNS采用了分布式的设计方案,大量的域名服务器之间通过层级方式组织,分布在全世界范围内。
就一般而言,域名服务器可以分为以下四类:
根域名服务器:
最高层级的域名服务器,互联网上一共有13组根域名服务器(以英文字母A到M依序命名,格式为[a~m].root-servers.net)
顶级域名服务器:
对于每个顶级域名,如.com、.org、.top等,都有对应的顶级域名服务器。
权威域名服务器:
一个网站需要将其域名和IP地址注册到相应的权威域名服务器中。
本地域名服务器:
本地域名服务器不属于上述域名服务器的层次结构,但是它对域名系统非常重要。每个 ISP(如一个大学、一个公司)都有一个本地域名服务器。
DNS是如何运作的
当我们在使用互联网浏览任意网站时,我们都会向本地(实际上大多数本地DNS都会向公共DNS发出请求)或公共DNS服务器发出请求。它依靠大量缓存来显著提升用户查询DNS服务器的可靠性与可达性和降低查询的延迟。
那么公共DNS的缓存是哪里来的呢?
这里我们引入一个概念:递归解析和迭代解析。
递归解析:客户端向DNS服务器发起请求,要求 必须返回最终答案(IP 或错误),DNS 服务器负责完成所有后续查询。
上面的DNS查询路径称之为递归DNS,下面我们将会讲解一种不同的解析方式——迭代解析
迭代解析:DNS 服务器收到请求后,若无缓存,会返回 “你该去问谁”(如上级服务器地址),由请求方继续查询。
差异:递归解析是我们平时最经常用的DNS解析方式。而迭代解析则主要用于各大公共DNS服务器接受到没有缓存或缓存过期后的解析方式。
这两种解析方式的不同导致了我们在平时中都是使用递归解析而非迭代解析。对于公共DNS服务器后面的个层级DNS服务器不熟悉,因此根域名服务器貌似在域名解析的过程中用处不大,其实用处大的很呢。
实践出真知
下面我们以本博客域名:blog.akatsukimio.top为例进行一次迭代解析。
1.向根域名服务器查询负责.top的权威域名服务器。
C:\Users\server>nslookup -type=ns top. a.root-servers.netip6.arpa nameserver = b.ip6-servers.arpaip6.arpa nameserver = d.ip6-servers.arpaip6.arpa nameserver = f.ip6-servers.arpaip6.arpa nameserver = a.ip6-servers.arpaip6.arpa nameserver = c.ip6-servers.arpaip6.arpa nameserver = e.ip6-servers.arpab.ip6-servers.arpa internet address = 199.253.182.182b.ip6-servers.arpa AAAA IPv6 address = 2001:500:86::86d.ip6-servers.arpa internet address = 200.7.86.53d.ip6-servers.arpa AAAA IPv6 address = 2001:13c7:7012::53f.ip6-servers.arpa internet address = 193.0.9.2f.ip6-servers.arpa AAAA IPv6 address = 2a13:27c0:30::2a.ip6-servers.arpa internet address = 199.180.182.53a.ip6-servers.arpa AAAA IPv6 address = 2620:37:e000::53c.ip6-servers.arpa internet address = 196.216.169.11c.ip6-servers.arpa AAAA IPv6 address = 2001:43f8:110::11e.ip6-servers.arpa internet address = 203.119.86.101e.ip6-servers.arpa AAAA IPv6 address = 2001:dd8:6::101服务器: UnKnownAddress: 2001:503:ba3e::2:30
top nameserver = c.zdnscloud.comtop nameserver = f.zdnscloud.cntop nameserver = a.zdnscloud.cntop nameserver = g.zdnscloud.comtop nameserver = d.zdnscloud.comtop nameserver = j.zdnscloud.comtop nameserver = i.zdnscloud.cntop nameserver = b.zdnscloud.cnc.zdnscloud.com internet address = 203.99.26.1f.zdnscloud.cn internet address = 116.169.54.111a.zdnscloud.cn internet address = 203.99.24.1g.zdnscloud.com internet address = 223.72.199.37d.zdnscloud.com internet address = 203.99.27.1j.zdnscloud.com AAAA IPv6 address = 2401:8d00:2::1i.zdnscloud.cn AAAA IPv6 address = 2401:8d00:1::1b.zdnscloud.cn internet address = 203.99.25.12.下面我们任选一个负责该顶级域名的权威域名服务器查询负责akatsukimio.top的权威域名服务器。
C:\Users\server>nslookup akatsukimio.top f.zdnscloud.cn服务器: UnKnownAddress: 116.169.54.111
名称: akatsukimio.topServed by:- arch.ns.cloudflare.com
akatsukimio.top- elisabeth.ns.cloudflare.com
akatsukimio.top3.下面我们任选一个负责该域名的权威域名服务器查询blog.akatsukimio.top的权威域名服务器/解析记录。
C:\Users\server>nslookup blog.akatsukimio.top arch.ns.cloudflare.com服务器: arch.ns.cloudflare.comAddress: 2606:4700:58::adf5:3b44
名称: blog.akatsukimio.topServed by:- ns1.huaweicloud-dns.cn
blog.akatsukimio.top- ns1.huaweicloud-dns.com
blog.akatsukimio.top- ns1.huaweicloud-dns.net
blog.akatsukimio.top- ns1.huaweicloud-dns.org
blog.akatsukimio.top4.下面我们任选一个负责该域名的权威域名服务器查询负责blog.akatsukimio.top的权威域名服务器/解析记录。
C:\Users\server>nslookup blog.akatsukimio.top ns1.huaweicloud-dns.cn服务器: UnKnownAddress: 2407:c080:20:ffff:ffff:fffe:0:1
名称: blog.akatsukimio.topAddress: 104.19.37.5至此,你已成功手动完成了一次 DNS 迭代查询的全过程。虽然日常上网时我们依赖的是本地 DNS 提供的递归服务,但其背后正是通过这种逐级迭代的方式,从根服务器一路查到最终的 IP 地址。这也体现了 DNS 分布式、分层、高可用的设计精髓。
Q&A
Q:根服务器域名的顶级域名是.net,那.net的权威域名服务器出现问题会不会导致互联网的根域名服务器崩溃,导致全球互联网崩溃。
A:在所有主流 DNS 软件(如BIND、Windows DNS)和操作系统中,称为“根提示(Root Hints)”。即使.net域名无法解析,本地 DNS 仍能直接通过IP地址联系根服务器,因此不会形成循环依赖。
Q:全球有13个根域名服务器,而中国没有根服务器会不会被其它国家恶意断网。
A:不会,根域名服务器采用了anycast技术,某些营销号说是都在国外,实际上国内也是有节点,并且国内有根服务器镜像,不会被恶意断网。