系统设计基础知识(十)—DNS

慈云数据 2023-07-05 网络资讯 545 0

DNS它是互联网的核心服务。作为一个可以将域名和IP地址相互映射的分布式数据库,它可以让人们更容易访问互联网

这是系统设计基础知识系列第十章DNS。你可以阅读我以前的文章

系统设计基础知识(一) - 网络

系统设计基础知识(二)—数据库

系统设计的基础知识(三)吞吐量和延迟

系统设计基础知识(四)—系统可用性

系统设计基础知识(五)—缓存

系统设计基础知识(六)—缓存区

系统设计基础知识(七)—代理

系统设计基础知识(八)了解IP地址和端口

系统设计基础知识(九)—负载均衡器

域名系统(DNS)是互联网的核心协议之一。了解基本的 DNS 原理有助于我们设计系统。

TCP/IP 基于 IP 地址进行通信,但 IP 地址很难记住。还有另一个标识符——主机名。为计算机配置主机名,并在使用网络通信时使用主机名指导,而不是输入一长串 IP 地址。网络系统通过一个名为hosts的文件实现将主机名转换为IP地址的功能。主机文件是本地文件。优点是搜索响应快。主要用于存储一些本地网络的主机名和IP地址的对应信息。当系统通过主机名访问主机时,会检查本地主机文件,从文件中找到对应的IP地址,然后发送消息。如果在主机文件中找不到相关信息,则主机访问失败。

服务器的主机名怎么看_vi设计基础系统模板免费下载_vi基础设计系统中的三大核心

DNS原理

网络通信基于 TCP/IP

TCP/IP 基于 IP 地址

计算机只能识别网络上的 IP 地址

我们无法记住超过 7 组 IP 地址的网站,所以当我们访问一个网站时,我们在浏览器地址栏中输入主机名即可访问所需的网页。有一个DNS服务器,可以将任何域名翻译成对应的IP地址,并调用该IP地址对应的网页。

vi设计基础系统模板免费下载_服务器的主机名怎么看_vi基础设计系统中的三大核心

域名结构

顶级域包括 com、net、gov、mil 或任何标准国家顶级域。新的顶级域 (TLD) 一直在创建。

资源类型——页面的类型

vi基础设计系统中的三大核心_vi设计基础系统模板免费下载_服务器的主机名怎么看

机器名称- 子域

顶级域名——一大群相似类型的域名

每个级别的域名由字母和数字组成。不区分大小写,长度不能超过63字节,一个完整的域名不能超过255字节。

域名空间

域命名空间结构就像一棵倒置的树。根域名是树的根。根域名的下一层称为顶级域名。是管理范围的划分。最大的域是根域,可以分为顶级域、二级域、三级域、四级域。对应的域名有根域名、顶级域名、二级域名、三级域名等。不同级别的域名以点号分隔,最低级的域名在最远左边,右边是最高级别的域。

服务器的主机名怎么看_vi设计基础系统模板免费下载_vi基础设计系统中的三大核心

顶级域名可以分为3类。

ccTLD——国家顶级域名采用ISO3166的规定。现在大约有 200 个 ccTLD 正在使用中。

服务器的主机名怎么看_vi基础设计系统中的三大核心_vi设计基础系统模板免费下载

vi设计基础系统模板免费下载_vi基础设计系统中的三大核心_服务器的主机名怎么看

2. gTLD(国际顶级域名) ——国际组织可以注册.int。

有著名的顶级域名。他们是:

.com为公司,

.net代表网络服务机构,

.org指非营利组织,

.edu指教育机构(仅限美国),

.gov表示政府部门(仅限美国),

.mil表示军事部门(仅限美国)。

随着互联网用户的持续增长,又增加了七个gTLD。他们是:

.aero对于航空运输业,

.biz对于公司和企业,

.coop对于合作团体,

.info在各种情况下使用,

.museum对于博物馆,

.name供个人使用,

.pro对于自由职业者。

3.二级域名

注册在国家自行确定的国家顶级域名下。它们分为 2 类:

4. 三级域名和四级域名

命名树中任何一个节点的域名都是从这个节点到顶级域名的字符串,用“.”分隔。在域命名空间结构中,其所属域中节点的主机名标识可以相同,但域名必须不同。

域名解析流程

vi基础设计系统中的三大核心_服务器的主机名怎么看_vi设计基础系统模板免费下载

DNS 是一种应用层协议。事实上,它也适用于其他应用层协议,包括但不限于 HTTP、SMTP 和 FTP。它用于将用户提供的主机名解析为 IP 地址。

客户端检测到自己的缓存如果不是,请检查主机文件如果不是,则客户端发送 DNS 请求以转换 IP 地址或主机名DNS 服务器接收客户端的请求检查 DNS 服务器的缓存,如果找到请求的地址或主机名,将向客户端发送响应消息如果没有找到,将在数据库中搜索。如果找到请求的或主机名,将向客户端发送响应消息如果没有找到,将向根域DNS服务器发送请求根域服务器查找顶级域从顶级域中找到二级域二级域名找到三级直到找到要解析的地址或主机名,才会向 DNS 服务器发送响应消息DNS 服务器将响应存储在缓存中,然后将解析结果发送给客户端客户端从 DNS 服务器接收 IP 地址如果未找到客户端,则返回错误消息。

域名解析

它可以分为2种。解析域名时,首先使用静态域名解析。如果静态域名解析不成功,则使用动态域名解析

静态域名解析——通过静态域名解析表进行,手动建立域名与IP地址的对应表。DNS客户端在查找域名对应的IP地址时,会在静态域名解析表中查找指定的域名,从而获得对应的IP地址,提高解析效率。动态域名解析——需要专门的域名服务器来运行域名解析服务器程序,提供域名到IP地址的映射关系,负责接收客户端的域名解析请求。

DNS 代理

它首先查找本地域名解析表。如果没有查询到对应的解析表项,则将DNS请求报文转发给DNS服务器,并在收到DNS服务器的响应报文后返回给DNS客户端。这样,当DNS服务器的地址发生变化时,只需要改变DNS代理上的配置,就不需要对局域网中每个DNS客户端的配置进行一一修改,从而简化了网络管理。

服务器的主机名怎么看_vi设计基础系统模板免费下载_vi基础设计系统中的三大核心

DNS解析器

从应用程序的角度来看,访问网页是通过解析器完成的。在发送 TCP 或 UDP 数据包之前,解析器必须将域名(主机名)转换为 IP 地址。解析器必须至少注册一个域名服务器的 IP 地址。

DNS 服务器

vi设计基础系统模板免费下载_vi基础设计系统中的三大核心_服务器的主机名怎么看

vi设计基础系统模板免费下载_服务器的主机名怎么看_vi基础设计系统中的三大核心

域名解析是根据DNS层次结构的特点自上而下进行的。但是如果每一个域名解析都是从根DNS服务器开始的,那么根DNS服务器可能承载不了海量的流量。实际上,大多数域名解析都是在本地 DNS 服务器中完成的。

通过适当设置本地DNS服务器,本地DNS服务器负责大部分域名解析请求,提高域名解析效率。

DNS 命名空间的层次结构允许不同的名称服务器管理命名空间的不同部分。域名服务器是管理其所在域的主机和软件。它管理的层称为区域。区域是 DNS 命名空间的子树,可以独立于其他区域进行管理。每层都有一个域名服务器。

根 DNS 服务器在检索数据的功能中起着至关重要的作用。顶级 DNS 服务器的 IP 地址注册在根 DNS 服务器中。如果顶级域名发生变化,您还必须在根 DNS 服务器中进行更改。

同理,二级DNS服务器的IP地址注册在顶级DNS服务器中。

主机名和 DNS 服务器都必须分层设置。如果名称服务器出现故障,则主机名的 DNS 查询将无法正常工作。因此,为了提高可用性,必须设置至少 2 个名称服务器。一旦第一个名称服务器无法提供查询结果,它会自动转到第二个甚至第三个名称服务器。

DNS 服务器类型

本地 DNS 服务器

2. 根名称服务器

9 个根 DNS 服务器在美国,2 个在欧洲(英国和瑞典),1 个在亚洲(日本)。

3. 权威域名服务器

1. 二级域名服务器定期主动获取一级域名服务器的副本,或更新副本中的数据

2. 一级域名服务器通知二级域名服务器及时更新副本中的数据当区域数据发生变化时。

DNS 传输层协议

vi基础设计系统中的三大核心_服务器的主机名怎么看_vi设计基础系统模板免费下载

DNS 响应消息中有一个删除标志,用截断响应 (TC)表示。当响应报文采用UDP封装且报文长度大于512字节时,服务器只返回前512字节,并设置TC标志位,表示该报文已被删除。当客户端收到 TC 设置的响应消息后,会使用 TCP 封装查询请求。DNS服务器返回的响应报文长度大于512字节。

UDP 报文最大长度为 512 字节,最多可包含 13 个根域名服务器。因此,IPv4 域名服务器的数量只能限制在 13 台。每台服务器以 A 到 M 的单个字母命名。

服务器的主机名怎么看_vi设计基础系统模板免费下载_vi基础设计系统中的三大核心

当辅助 DNS 名称服务器启动时,将从主 DNS 名称服务器执行区域传输。正常运行时,二级域名服务器也会定期查询主域名服务器,了解主域名服务器的数据是否发生变化。如果有变化,将执行区域转移。传输的数据由 TCP 封装。因此,UDP用于客户端和服务器之间的查询和响应。TCP用于主从服务器之间的传输。

DNS查询方式

vi基础设计系统中的三大核心_服务器的主机名怎么看_vi设计基础系统模板免费下载

递归查询——如果DNS服务器不能直接响应请求,它会继续请求其他DNS服务器,直到查询到解析结果。查询的结果可以是主机名的 IP 地址,也可以是主机名无法解析。无论结果如何,DNS 服务器都会将结果返回给客户端。迭代查询——如果DNS服务器找不到对应的记录,它会返回一个可能知道结果的域名服务器IP地址给客户端,客户端会继续向其他域名服务器发送查询请求。

客户端查询IP地址时,对本地域名服务器进行递归查询。如果本地文件有对应的数据,则直接返回对应的数据。如果没有,则本地DNS服务器对根DNS服务器进行迭代查询,直到找到具体的域名服务器,并由域名服务器返回相应的数据。客户端和本地 DNS 服务器将接收到的数据存储在缓存中,以优化每次查询的性能。

DNS 正向查询 & DNS 反向查询

转发查询:客户端知道主机名但不知道 IP 地址

反向查询:客户端知道 IP 地址,但不知道 hsotname

为了实现反向查询/查找,互联网的反向DNS数据库植根于“ in-addr.arpa”级域。反向 DNS 解析 (rDNS)涉及搜索域名注册表和注册商表。为了创建反向命名空间,“ in-addr.arpa”级域中的子域按照 IP 地址的逆序构建。例如,要对 IP 地址进行反向查找,将查找8.8.4.4域名的 PTR 记录8.8.4.4.in-addr.arpa并发现指向dns.google。

vi基础设计系统中的三大核心_服务器的主机名怎么看_vi设计基础系统模板免费下载

DNS的缺点

使用 DNS 时会有轻微的延迟,即使它可以通过缓存来缓解DNS服务器的维护非常复杂DNS服务会受到DDoS攻击,导致用户无法访问网页

由于互联网的扩展,整个域名系统(DNS)变得非常复杂,这导致了DNS系统向多层架构演进。

如果你发现我的任何文章有帮助或有用,麻烦点赞或者转发。 谢谢!

发表评论

发表评论:

微信扫一扫加客服

微信扫一扫加客服

微信扫一扫加客服

微信扫一扫加客服