• DNS(Domain Name System) in detail


    什么是 DNS?
    DNS(域名系统)为我们提供了一种与互联网上的设备进行通信的简单方法,而无需记住复数。就像每个房子都有一个唯一的地址来直接向它发送邮件一样,互联网上的每台计算机都有自己唯一的地址来与之通信,称为 IP 地址。IP 地址如下所示:104.26.10.229,4 组数字,范围从 0 到 255,用句点分隔。 当我们想访问一个网站时,记住这组复杂的数字并不完全方便,而这正是 DNS 可以提供帮助的地方。

    域层次结构

    TLD(顶级域名)

    TLD是域名最右边的部分。例如:Google.com ,则TLD: .com。TLD 有两种类型,gTLD(通用顶级)和 ccTLD(国家代码顶级域名)。从历史上看,gTLD旨在告诉用户域名的目的,例如:.com用于商业目的,.org用于组织,.edu用于教育,.gov用于政府。ccTLD 用于地理目的,例如,.ca 用于加拿大网站,.co.uk 用于英国网站等。由于这种需求,大量新 gTLD 涌入,包括 .online、.club、.website、.biz 等。

    二级域名

    以 myon.com 为例,.com部分是TLD,myon是二级域名。注册域名时,二级域名限制为63个字符+TLD,只能使用a-z 0-9和连字符(不能以连字符开头或结尾,也不能有连续的连字符)。

    子域

    子域位于二级域的左侧,使用句点将其分隔;例如:在名称 admin.myon.com,管理部分是子域。子域名的创建限制与二级域名相同,限制为 63 个字符,并且只能使用 a-z 0-9 和连字符(不能以连字符开头或结尾,也不能有连续的连字符)。 可以使用多个用句点拆分的子域来创建更长的名称,例如 jupiter.servers.myon.com,但长度必须保持在 253 个字符或更少,可以为域名创建的子域数量没有限制。

    DNS 记录类型

    DNS解析不仅适用于网站,并且存在多种类型的DNS记录。 

    记录

    这些记录解析为 IPv4 地址,例如 104.26.10.229

    AAAA 记录

    这些记录解析为 IPv6 地址,例如 2606:4700:20::681a:be5

    CNAME 记录

    这些 记录解析为另一个域名,例如,Myon 的在线商店的子域名 store.myon.com 返回 CNAME 记录 shops.shopify.com。然后,另一个 DNS 请求将 shops.shopify.com 计算出 IP 地址。

    MX 记录

    这些记录解析为处理电子邮件的服务器的地址,正在查询的域,例如 MX 记录响应 myon.com 看起来有点像 alt1.aspmx.l.google.com。 这些记录还带有优先级标志。这告诉客户端哪个顺序尝试服务器,这非常适合如果主服务器出现故障,需要将电子邮件发送到备份服务器。

    TXT 记录

    .TXT 记录是自由文本字段,可以在其中存储任何基于文本的数据。 TXT 记录有多种用途,但一些常见的用途可以是列出 有权代表域发送电子邮件的服务器 (这可以帮助打击垃圾邮件和欺骗性电子邮件)。他们 也可用于在注册时验证域名的所有权 用于第三方服务。

    发出 DNS 请求时会发生什么情况

    1. 当请求域名时,计算机首先会检查其本地缓存,以查看最近是否查找过该地址;如果没有,将向递归 DNS 服务器发出请求。

    2. 递归DNS服务器通常由ISP提供,但也可以选择自己的服务器。该服务器还具有最近查找的域名的本地缓存。如果在本地找到结果,则会将其发送回计算机,请求到此结束(这对于 Google、Facebook、Twitter 等流行且请求量很大的服务很常见)。如果在本地找不到请求,则从互联网的根 DNS 服务器开始寻找正确答案的旅程。

    3. 根服务器充当互联网的 DNS 骨干;他们的工作是根据请求重定向到正确的顶级域服务器。例如,如果请求 www.myon.com,根服务器将识别.com顶级域,并引荐到处理.com地址的正确 TLD 服务器。

    4. TLD 服务器保存在何处查找权威服务器以应答 DNS 请求的记录。权威服务器通常也称为域的名称服务器。例如myon.com 的名称服务器是 kip.ns.cloudflare.com 和 http://uma.ns.cloudflare.com/。通常会发现一个域名的多个名称服务器作为备份,以防一个域名出现故障。

    5. 权威 DNS 服务器是负责存储特定域名的 DNS 记录的服务器,并将在其中对域名 DNS 记录进行任何更新。根据记录类型,DNS 记录随后被发送回递归 DNS 服务器,其中将缓存本地副本以供将来的请求使用,然后中继回发出请求的原始客户端。所有 DNS 记录都带有 TTL(生存时间)值。此值是一个以秒为单位的数字,应在本地保存响应,直到必须再次查找它。缓存节省了每次与服务器通信时发出 DNS 请求的麻烦。

    我们可以构建请求以进行 DNS 查询并查看结果:

  • 相关阅读:
    HTTP基础知识
    【网站项目】437物流管理系统
    【无标题】
    LeetCode每日一题——2609. Find the Longest Balanced Substring of a Binary String
    Kalibr 对单目相机进行标定
    经典算法之冒泡排序(Bubble Sort)
    Android 10.0 关于在系统Launcher3中调用截图api总是返回null的解决方案
    【JAVA进阶篇】时间与日期相关类
    Python Matplotlib库:统计图补充
    VSCode远程连接Linux系统并使用远程终端
  • 原文地址:https://blog.csdn.net/Myon5/article/details/134290899