11 应用层的域名知识点
一、DNS
1、理解
定义:DNS(Domain Name System,域名系统)是互联网的一项核心服务,它将人类可读的域名(也叫网址,如 www.example.com)转换为机器可读的IP地址(如 192.0.2.1),以便设备能够相互通信。
- DNS 协议可以运行在 UDP 之上,也可以运行在 TCP 之上,使用 53 端口。
- DNS是由DNS服务器实现的分布式数据库。
2、DNS系统结构
-
因特网是否可以只使用⼀台DNS服务器?
- 因为因特网很大,这样域名服务器就会超负荷工作。一旦域名服务器出现故障,就会导致整个因特网瘫痪。
- 所以现在的是:
- DNS使用的层次结构的命名树作为主机的名字(即域名),并使用分布式系统DNS。
- DNS使大多数域名都在本地解析,仅少量解析在因特网上通信,因此系统效率很高。
- 由于DNS是分布式系统,只是单个计算机出问题,也不会导致整个系统正常运行。
-
在最开始是用的一台DNS服务器,集中式设计,这会导致哪些问题?
- 1、单点故障:单个DNS出问题,整个网络瘫痪。
- 2、通信容量:单个DNS服务器处理所有的DNS查询。
- 3、远距离集中式数据库:单个DNS服务器不能离所有的用户都很近。
- 4、维护:维护成本巨大,还需要频繁更新。
3、域名结构
3.1、构成
- 域名采用的是层次树状结构的域名结构。
- 域名的结构由若干个分量组成,各分量之间用“点”隔开,分别代表不同级别的域名。
- 每一级域名都是英语或数字构成。
- 级别从左到右升高。
- 完整域名不超过255个字符。
- 域名系统既不规定一个域名需要包含多少个下级域名,也不规定每一级的域名代表什么意思。
- 各级域名由其上一级的域名管理机构管理,而最高的顶级域名则由因特网名称与数字地址分配机构ICANN进行管理。
3.2、顶级域名(Top Level Domain,TLD)
3.3、二级域名
3.4、域名服务器
域名和IP地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换。
- 3种DNS服务器类型:
根 DNS 服务器
、顶级域(Top-Level Domain, TLD) DNS 服务器
和权威 DNS 服务器
。
问题:假设现在一个 DNS 客户端想要知道www.amazon.com 的 IP 地址,那么上面的域名服务器是如何解析的呢?
答:
- ⾸先,客户端会先和根服务器之一进行关联,它将返回顶级域名 com 的 TLD 服务器的 IP 地址。
- 该客户则与这些 TLD 服务器之⼀联系,它将为 amazon.com 返回权威服务器的 IP 地址。
- 最后,该客户与 amazom.com 权威服务器之一联系,它为 www.amazom.com 返回其 IP 地址。
3.4.1、根域名服务器
- 根域名服务器是最高层次的域名服务器。
- 作用:存储全球顶级域(TLD)服务器地址(如 .com、.org 等)。
- 特点 :
- 全球共有 13组根服务器(逻辑上的集群,实际物理服务器数量更多)。
- 不直接解析具体域名,仅提供顶级域服务器的地址。 【可以理解成只存储顶级域名服务器地址,不解析】
3.4.2、顶级域名服务器
- 作用:管理顶级域(如 .com、.net、.cn)下的二级域名地址。
3.4.3、权威(限)域名服务器
- 作用:存储特定域名(如 amazon.com)的详细DNS记录(A记录、MX记录等)【就是管理某个区的域名】
3.4.4、本地(默认)域名服务器
- 不属于上述的域名服务器的等级结构
- 当⼀个主机发出DNS请求报文时,这个报文就首先被送往该主机的本地域名服务器。
- 作用:会将该报文转发到上述的域名服务器的等级结构中。起代理作用。
- 范围:一般距离用户较近。本地域名服务器的IP地址需要直接配置在需要域名解析的主机中。
4、DNS查询步骤
注意:通常情况下 DNS 会将查找的信息缓存在浏览器或者计算机本地中,如果有相同的请求到来时,就不再会进行 DNS 查找,而会直接返回结果。

步骤:(解析www.example.com)
总结:
1. 浏览器(在本地查)缓存 → 无记录
2. 操作系统缓存 → 无记录
3. 本地DNS服务器(如8.8.8.8)收到请求:
a. 查询根服务器 → 获得.com TLD地址
b. 查询.com TLD服务器 → 获得example.com权威服务器地址
c. 查询权威服务器 → 获得www.example.com的IP
4. 返回IP给客户端,客户端缓存结果
- 用户在浏览器中输入网址 www.example.com 并点击回车后,查询会进入网络,并且由 DNS 解析器进行接收。
- DNS 解析器会向根域名发起查询请求,要求返回顶级域名的地址。
- 根 DNS 服务器会注意到请求地址的前缀并向 DNS 解析器返回 com 的顶级域名服务器(TLD) 的 IP 地址列表。
- 然后,DNS 解析器会向 TLD 服务器发送查询报文
- TLD 服务器接收请求后,会根据域名的地址把权威 DNS 服务器的 IP 地址返回给 DNS 解析器。
- 最后,DNS 解析器将查询直接发送到权威 DNS 服务器
- 权威 DNS 服务器将 IP 地址返回给 DNS 解析器
- DNS 解析器将会使用 IP 地址响应 Web 浏览器一旦 DNS 查找的步骤返回了 example.com 的 IP 地址,浏览器就可以请求网页了。
5、DNS查询类型
5.1、递归查询
如果本地没有,就会进行根的迭代。全部找到后,返回到主机。
5.2、迭代查询
每级服务器仅返回下一级服务器地址,由本地DNS自行继续查询。
5.3、缓存查询
由于域名到IP地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)【时效性】。
6、DNS网络排查工具
nslookup 是⼀款用来解决 DNS 相关问题排查的工具。
- 操作过程
- 首先在虚拟机的linux命令终端下输入
nslookup
,然后回车输入域名(这里输入的www.baidu.com)
,然后回车就得到结果了。
- 首先在虚拟机的linux命令终端下输入