我尝试去理解DNS 递归。
假设我已经使用 bind 在我的计算机上部署了本地 DNS。我在区域文件中为 定义了 A 记录server1.example.com
。我还在NS
区域文件中定义了 记录,并有一个A
与该NS
记录关联的 。
就像这里的定义:
https://web.mit.edu/rhel-doc/5/RHEL-5-manual/Deployment_Guide-en-US/s1-bind-zone.html
我可以使用以下命令在本地查询此 DNS 服务器
nslookup server1.example.com ::1
这是有效的,因为它对区域具有权威性example.com
如果我想使用递归 DNS 服务器,而8.8.8.8
不是直接定位我的本地 DNS(对于 example.com 来说也是权威的):
该流程如下:
- 递归 DNS 查询 DNS 根名称服务器 (.)。
- 然后,根服务器使用顶级域 (TLD) DNS 服务器 (com) 的地址响应解析器。2. 然后,解析器向 .com TLD 发出请求。
- 然后,TLD 服务器使用域名的名称服务器的 IP 地址 example.com 进行响应。
- 递归解析器向域的名称服务器发送查询。
- 然后,server1.example.com(或 example.com)的 IP 地址从名称服务器返回到解析器。
我想知道在步骤 3 中在 TLD DNS 服务器中进行了哪些配置才能知道域名服务器 example.com 的 IP。 我们在实践中该怎么做?是否可以让它指向正在运行命名服务的机器?
我们如何确保只有域名所有者可以在TLD DNS中进行此配置?
答案1
您的域名的名称服务器是通过域名注册商设置的,只有注册商才能更改它们。因此,“第 2 步”中返回的名称服务器地址是您在域名注册商的网站上更改它们时由域名注册商发送给根名称服务器的。根名称服务器将只接受来自域名列出的注册商的更新。