当前位置: 首页 > news >正文

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)

  • 顶级域名分类:

    • 1、国家顶级域名nTLD

      • 采用ISO 3166的规定。如cn表示中国,us表示美国,uk表示英国、jp表示日本等等。
    • 2、通用顶级域名gTLD

      • 最常见的通用顶级域名有七个,即:com(公司企业)、net(网络服务机构)、org(非营利性组织)、int(国际组织)、edu(美国教育机构)、gov(美国政府部门)、mil(美国军事部门)。
    • 3、反向域arpa

      • 用于反向域名解析,即IP地址反向解析为域名

3.3、二级域名

  • 在国家顶级域名下注册的二级域名均由该国家自行确定。
    • 例如:jp的日本,二级域名选ac和co做教育和企业。
  • 那么中国的二级域名分为2类:

    • 类别域名:

      • 共7个:ac(科研机构)、com(工、商、⾦融等企业)、edu(教育机构)、gov(政府部门)、net(提供网络服务的机构)、mil(军事机构)和org(非营利性组织)。
    • 行政区域名:

    • 共34个:适用于我国的各省、自治区、直辖市。例如:bj为北京市、sh为上海市、js为江苏省,等等。
      在这里插入图片描述

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给客户端,客户端缓存结果
  1. 用户在浏览器中输入网址 www.example.com 并点击回车后,查询会进入网络,并且由 DNS 解析器进行接收。
  2. DNS 解析器会向根域名发起查询请求,要求返回顶级域名的地址。
  3. 根 DNS 服务器会注意到请求地址的前缀并向 DNS 解析器返回 com 的顶级域名服务器(TLD) 的 IP 地址列表。
  4. 然后,DNS 解析器会向 TLD 服务器发送查询报文
  5. TLD 服务器接收请求后,会根据域名的地址把权威 DNS 服务器的 IP 地址返回给 DNS 解析器。
  6. 最后,DNS 解析器将查询直接发送到权威 DNS 服务器
  7. 权威 DNS 服务器将 IP 地址返回给 DNS 解析器
  8. 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),然后回车就得到结果了。
      在这里插入图片描述
  • nslookup ⼀般用于查询下这些常用的场景:

    • 1 . nslookup 能够查询主机的 IP 地址
    • 2 . nslookup 能够查询 IP 地址的域名
    • 3、nslookup 能够查询域名邮件服务器
  • 查询结果有2种

    • Non-authoritative answer:从本地DNS cache 也就是 DNS 缓存中查询出来
    • Authoritative answers:本地 DNS 经过 DNS 查询后得到的真实域名。

相关文章:

  • Application.OnTime如何引用带参数的过程
  • 【Hive】Hive安装
  • 网络安全基础与应用习题 网络安全基础答案
  • 解决电脑问题(7)——软件问题
  • Android中使用Glide加载图片闪烁问题
  • Transformer原理硬核解析:Self-Attention与位置编码
  • 算法优选系列(1.双指针_下)
  • Python Flask 构建REST API 简介
  • Linux 进程信号
  • 文件包含漏洞第一关
  • llvm数据流分析
  • 【数据结构】2算法及分析
  • Android 粘包与丢包处理工具类:支持多种粘包策略的 Helper 实现
  • 灰度发布和方法灰度实践探索
  • 【一起学Rust | Tauri2.0框架】基于 Rust 与 Tauri 2.0 框架实现软件开机自启
  • 方案精读:IBM方法论-IT规划方法论
  • centos linux安装mysql8 重置密码 远程连接
  • ctf-web: Gopher伪协议利用 -- GHCTF Goph3rrr
  • python---pickle库
  • 关于sqlalchemy的ORM的使用
  • 董卓的前半生:边荒之地的工具人
  • 深圳一购房者交首付后迟迟无法签合同,澎湃介入后开发商承诺退款
  • 贵州省黔西市发生载人游船侧翻事故
  • 抗战回望15︱《五月国耻纪念专号》:“不堪回首”
  • 市场驱动的系统改造:丹麦零弃风经验研究
  • 奥斯卡新规:评委必须看完影片再投票;网友:以前不是啊?