1. 引言

DNS(Domain Name System)是互联网的“电话簿”,它让我们可以通过域名而不是IP地址来访问计算机或其他网络设备。

尽管我们在查询中使用的是人类友好的名称,但底层网络协议仍依赖IP地址进行通信。这些名称与IP之间的映射关系,就保存在所谓的权威DNS服务器(Authoritative DNS Server)中。因此,当我们通过浏览器访问一个域名时,它会自动向这些服务器发送请求以获取对应的IP地址。

在本文中,我们将介绍如何查找一个域名的权威DNS服务器


2. 域名系统(DNS)

DNS 是一种分层且去中心化的命名系统,用于在互联网或内网中识别计算机。DNS资源记录(Resource Records)将易记的域名(如 www.baeldung.com)映射到对应的IP地址(如 2606:4700:3108)

一个域名空间(domain namespace),也可以简单称为命名空间,是互联网提供的一种命名服务。

2.1 DNS 区域(Zone)

域名空间是一个层次化的数据结构。每个节点都有一个标签和若干资源记录,这些记录包含与该节点域名相关的信息。整个域名空间包含了所有可能的顶级域名(TLD),并被划分为多个逻辑部分,称为区域(zone)。

一个 DNS 区域可以包含一个域名,也可以包含多个域名和子域名。每个区域有四个层级:

  • 根(Root):DNS系统的顶层,通常用“.”表示,例如域名结尾的点。
  • 顶级域(TLD):如“.com”、“.org”、“.edu”等。
  • 二级域(Domain):如“baeldung”,由个人或组织管理。
  • 主机名(Hostname):可自由选择的主机名称,“www”是常见但非强制的Web服务器名称。

将这些层级从主机名一直组合到根,就构成了一个完整的域名,称为完全限定域名(FQDN)。例如:

DNS 区域层级结构图

上图展示了某个区域中多个域名之间的层级关系。

2.2 权威DNS服务器(Authoritative Name Server)

每个域名都必须有一个权威DNS服务器来发布该域名的信息。一个区域的权威服务器就是保存该区域主文件(Primary Zone File)的服务器,它存储了该区域下所有域名的IP地址信息。

例如,当浏览器访问 www.baeldung.com 时,它会从 baeldung.com 区域的权威服务器获取对应的IP地址,因为该服务器持有该区域的主文件。


3. 起始授权记录(SOA)

SOA(Start of Authority)记录是DNS中一种特殊类型的记录,它包含关于某个区域的基本信息。比如,baeldung.com 的 SOA 记录如下所示:

Baeldung.com 的 SOA 记录示意图

接下来我们来分析它的结构。

3.1 SOA 记录字段说明

字段名称 描述
主DNS服务器(Primary Name Server) 维护该区域主文件的主机名
管理员邮箱(Responsible Person) 区域管理员的电子邮件地址,用“.”代替“@”
序列号(Serial Number) 区域文件的版本号,用于主从服务器之间的同步
刷新间隔(Refresh Interval) 从服务器向主服务器查询SOA记录的时间间隔
重试间隔(Retry Interval) 从服务器在失败后重新尝试查询的时间间隔
过期时间(Expires After) 若从服务器未能完成区域传输,则在此时间后停止提供服务
最小TTL(Minimum TTL) 其他服务器缓存该区域数据的最短时间

3.2 如何查询SOA记录?

要查找一个域名的权威DNS服务器,首先需要获取其对应的SOA记录。我们可以使用 nslookup 工具来完成这一操作。

例如,要查询 google.com 的 SOA 记录,可以执行如下命令:

nslookup -type=soa google.com

执行后,会返回类似如下结果:

nslookup 查询 SOA 记录示意图

可以看到,google.com 的主DNS服务器是 ns1.google.com。其中 Server: Unknown 通常表示DNS客户端的反向解析区域配置有误。

⚠️ 注意:上面的结果是非权威的(non-authoritative),也就是说我们是从某个DNS服务器的缓存中获取的信息,而不是直接从 google.com 的权威服务器获取的。

要获取权威答案,我们需要将查询发送到 google.com 的权威服务器本身。


4. 获取权威响应(Authoritative Answer)

权威响应(Authoritative Answer)是指我们直接从持有区域主文件的DNS服务器获取的响应。

要获取 google.com 的权威响应,我们可以指定主DNS服务器 ns1.google.com 执行如下命令:

nslookup google.com ns1.google.com

执行结果如下:

google.com 的权威响应示意图

可以看到,权威服务器返回了 google.com 的IP地址信息。其中IPv6地址为 2a00:1450:4019:805::200e,IPv4地址为 216.58.208.238

✅ 小结:通过这种方式,我们就能准确获取到某个域名的权威DNS服务器及其IP地址。


5. 总结

在本文中,我们介绍了DNS的基本结构、区域划分以及SOA记录的作用,并演示了如何使用 nslookup 工具来查找一个域名的权威DNS服务器。

整个流程可以总结为以下两步:

  1. ✅ 使用 nslookup -type=soa <domain> 获取主DNS服务器名称;
  2. ✅ 再通过 nslookup <domain> <primary-dns-server> 获取权威响应,其中包含该域名的权威DNS服务器IP地址。

💡 踩坑提醒:如果你看到 Server: UnknownNon-authoritative answer 的提示,说明你查询的是缓存数据,不是来自权威服务器。要获取准确信息,必须直接查询权威服务器。

通过本文的方法,你可以快速定位任意域名的权威DNS服务器,这对排查DNS解析问题、进行网络安全审计等场景非常有帮助。


原始标题:How to Find the Authoritative Name Server for a Domain?