如何了解 DNS 的实际工作细节。

我们正在开展一个需要跨团队协作的项目,并且我们必须连接到 API。由于外部团队无法直接介入并编辑我的 API 定义,因此我们想使用 Apidog 的文档发布功能。我查看了他们的帮助文档,发现 API 文档会实时更新,您甚至可以直接在页面上进行调试,今天我意识到我可以自定义已发布文档的域名,这对我来说是一个很棒的功能:

After designing/developing your API in Apidog, you can easily share the API with other colleagues or publish it to the public

当我们在处理这个问题时,我的一个队友问道:“什么是 CNAME?”我只是根据我所知道的内容简要介绍了一下。这引发了一场精彩的讨论,这让我想更深入地研究整个 DNS 的事情,并真正更好地掌握它。

DNS 的工作方式通常被认为是理所当然的。基本上,DNS 用于将网站名称转换为 IP 地址,因此您可以这样想:您输入一个 URL,它会输出一个 IP。

the way how dns works

DNS 主要使用此协议,该协议基于 UDP。因此,DNS 服务器每秒可以处理大量查询,远高于依赖 TCP 的 Web 服务器。了解不同类型的 DNS 记录非常重要,包括:

  • A 记录:这些记录将域名链接到 IPv4 地址。
  • AAAA 记录:这些记录将域名链接到 IPv6 地址。
  • CNAME记录:用于查询过程中的转发。
  • 当您在浏览器中输入 www.apidog.com 时,DNS 协议实际上使用的是 www.apidog.com。它以点 . 结尾,但通常不会显示出来以方便查看。
  • 浏览器首先检查其本地缓存(如主机文件或浏览器历史记录),查看是否已有该域的记录。如果有,则使用该记录。
  • 如果没有,浏览器就会向 ISP 的 DNS 服务器(通常称为本地 DNS)发送 DNS 请求。
  • 本地 DNS 会检查自己的缓存。缓存时间一定要合适——太长或太短都会引起问题。此外,本地 DNS 查询的工作方式取决于 ISP,这可能会变得非常复杂。
  • 如果本地 DNS 没有缓存信息,它会开始从右到左扫描域名,并沿途询问适当的服务器。对于 www.apidog.com,它首先会检查根名称服务器(处理 . 的那些罕见服务器)。它们会告诉它谁负责 .com,从而引导本地 DNS 查找管理 .com 的服务器(我们称之为 S1)以找出谁管理 apidog.com。通常,S1 会返回 CNAME 记录,将查询重定向到权威 DNS 服务器。
  • 权威服务器查找其设置以找到 www.apidog.com 的服务器并返回 IP 地址。
  • 本地 DNS 缓存该 IP 地址并将其发送回浏览器。
  • 最后,浏览器与该 IP 地址的服务器建立 TCP 连接并发送 HTTP 请求。
  • 对于任何购买过域名的人来说,您都知道,如果您想启动一个 AI 项目并从 GoDaddy 购买域名 **xmanhugo.com**,然后您想创建一个子域名,如 **ai.xmanhugo.com**,您需要在 GoDaddy 的仪表板中设置一个 A 记录,以将 **ai.xmanhugo.com** 指向特定 IP。每次设置子域名时,您都遵循相同的过程。了解 DNS 解析的工作原理可以让您做几件事:

  • 在D1上设置DNS服务器,使其成为xmanhugo.com的权威DNS服务器。
  • 在万网的仪表盘中,添加一条新的 CNAME 记录,将 xmanhugo.com 查询重定向到 D1。
  • D1 可以返回它选择的任何 IP 地址。
  • 通过此设置,您可以完全控制 D1,因为 D1 属于您,并且您不再需要访问 Wanwang 的控制台。这就是运行您自己的 DNS 服务器为您带来的效果!