计算机网络:应用层 —— 域名系统 DNS

文章目录

什么是域名系统 DNS?

域名系统(DNS,Domain Name System)是互联网的核心基础设施之一,也是互联网的一项核心服务,负责将人类可读的域名 (如 www.example.com转换为计算机可识别的 IP 地址 (如 192.0.2.1)。DNS 的存在使得用户可以通过易于记忆的域名访问网络资源,而无需记住复杂的IP地址。

域名系统DNS的作用

因特网不可以只使用一台 DNS 服务器,因特网的规模很大,这样的域名服务器肯定会因为超负荷而无法正常工作,而且一旦域名服务器出现故障,整个因特网就会瘫痪。早在 1983 年,因特网就开始采用层次结构的命名树 作为主机的名字(即域名)并使用分布式的域名系统 DNS

DNS使大多数域名都在本地解析 ,仅少量解析需要在因特网上通信,因此系统效率很高。由于DNS是分布式系统,即使单个计算机出了故障,也不会妨碍整个系统的正常运行。

域名结构

因特网采用层次树状结构的域名结构

顶级域名

顶级域名TLD(Top Level Domain)分为以下三类:

  • 国家顶级域名nTLD :采用ISO 3166的规定,如** cn 表示中国**, us 表示美国,uk 表示英国、等等。

  • 通用顶级域名gTLD:最常见的通用顶级域名有七个,即:

    • com(公司企业)
    • net(网络服务机构)
    • org(非营利性组织)
    • int(国际组织)
    • edu(美国教育结构)
    • gov(美国政府部门)
    • mil(美国军事部门)
  • 反向域arpa:用于反向域名解析,即IP地址反向解析为域名。

二级域名

在国家顶级域名下注册的二级域名均由该国家自行确定。例如,顶级域名为 jp 的日本,将其教育和企业机构的二级域名定为 acco,而不用 educom

我国则将二级域名划分为以下两类:

  • 类别域名,共七个:

    • ac(科研机构)
    • com(工、商、金融等企业)
    • edu(教育机构)
    • gov(政府部门)
    • net(提供网络服务的机构)
    • mil(军事机构)
    • org(非营利性组织)
  • 行政区域名 ,共34个,适用于我国的各省、自治区、直辖市。例如:bi 为北京市、sh 为上海市、js 为江苏省,等等。

需要注意,名称相同的域名其等级未必相同

因特网的域名空间

这种按等级管理的命名方法便于维护名字的唯一性,并且也容易设计出一种高效的域名查询机制。域名只是个逻辑概念,并不代表计算机所在的物理地点

域名服务器

域名和 IP 地址的映射关系必须保存在域名服务器中,供所有其他应用查询。显然不能将所有信息都储存在一台域名服务器中。DNS使用分布在各地的域名服务器来实现域名到IP地址的转换

域名服务器可以划分为以下四种不同的类型:

  • 根域名服务器

    • 根域名服务器是最高层次的域名服务器。每个根域名服务器都知道所有的顶级域名服务器的域名及其IP地址。因特网上共有13个不同IP地址的根域名服务器

    • 尽管我们将这 13 个根域名服务器中的每一个都视为单个的服务器,但"每台服务器"实际上是由许多分布在世界各地的计算机构成的服务器群集

    • 当本地域名服务器向根域名服务器发出查询请求时,路由器就把查询请求报文转发到离这个 DNS 客户最近的一个根域名服务器,这就加快了 DNS 的查询过程,同时也更合理地利用了因特网的资源。

    • 根域名服务器通常并不直接对域名进行解析,而是返回该域名所属顶级域名的顶级域名服务器或顶级域名服务器的IP地址

  • 顶级域名服务器 :负责管理在该顶级域名服务器注册的所有二级域名。当收到DNS查询请求时就给出相应的回答(可能是最后的结果,也可能是下一级权限域名服务器的IP地址)。

  • 权限域名服务器 :负责管理某个区的域名。每一个主机的域名都必须在某个权限域名服务器处注册登记。因此权限域名服务器知道其管辖的域名与IP地址的映射关系。另外,权限域名服务器还知道其下级域名服务器的地址。

  • 本地域名服务器:本地域名服务器不属于上述的域名服务器的等级结构。

    • 当一个主机发出 DNS 请求报文时,这个报文就首先被送往该主机的本地域名服务器。本地域名服务器起着代理的作用,会将该报文转发到上述的域名服务器的等级结构中。

    • 每一个因特网服务提供者 ISP,一个大学,甚至一个大学里的学院,都可以拥有一个本地域名服务器,它有时也称为默认域名服务器

    • 本地域名服务器离用户较近,一般不超过几个路由器的距离,也有可能就在同一个局域网中,本地域名服务器的IP他址需要直接配置在需要域名解析的主机中

域名解析的过程

DNS 的解析过程可以分为以下几个步骤:

  1. 本地缓存查询 :当用户在浏览器中输入一个域名时,系统首先会查询本地的 DNS 缓存。如果缓存中有该域名对应的IP地址,则直接返回结果,无需进一步查询。

  2. 递归查询或迭代查询

    如果本地缓存中没有记录,客户端会向配置的 DNS 服务器(通常是 ISP 提供的 DNS 服务器或公共 DNS 服务器)发送查询请求。查询方式有两种:

    • 递归查询:DNS 服务器会负责获取完整的解析结果并返回给客户端。

    • 迭代查询:DNS 服务器仅返回其已知的下一个查询目标,客户端需自行继续查询。

  3. DNS 层次结构解析

    DNS 采用层次化的服务器架构,包括根 DNS 服务器顶级域(TLD)DNS服务器权威 DNS 服务器。解析过程如下:

    • 首先查询根 DNS 服务器,获取目标域名的顶级域(如 .com)的DNS服务器地址。

    • 然后查询顶级域 DNS 服务器,获取二级域名(如 example.com)的权威 DNS 服务器地址。

    • 最后查询权威 DNS 服务器,获取目标域名的IP地址。

  4. 缓存与响应:一旦获取到目标IP地址,DNS 服务器会将结果返回给客户端,并将解析记录缓存一段时间,以便后续快速响应相同的查询。

DNS 报文使用运输层的UDP协议进行封装运输层端口号为53

递归查询

  1. 客户端发起请求:客户端(如m.xyz.com)向本地域名服务器(dns.xyz.com)发送一个递归查询请求,询问y.abc.com的IP地址。

  2. 本地域名服务器查询根域名服务器:本地域名服务器收到请求后,如果本地缓存中没有该域名的记录,它会向根域名服务器发起递归查询。

  3. 根域名服务器返回顶级域名服务器信息:根域名服务器收到查询后,不会直接返回IP地址,而是返回一个或多个顶级域名服务器的地址,这些服务器负责管理顶级域名(如.com、.org等)。

  4. 本地域名服务器查询顶级域名服务器:本地域名服务器根据根域名服务器提供的信息,向顶级域名服务器(dns.com)发起递归查询。

  5. 顶级域名服务器返回权限域名服务器信息:顶级域名服务器收到查询后,不会直接返回IP地址,而是返回一个或多个权限域名服务器的地址,这些服务器负责管理具体的二级域名(如abc.com)。

  6. 本地域名服务器查询权限域名服务器:本地域名服务器根据顶级域名服务器提供的信息,向权限域名服务器(dns.abc.com)发起递归查询。

  7. 权限域名服务器返回IP地址:权限域名服务器收到查询后,返回y.abc.com的具体IP地址。

  8. 本地域名服务器返回结果给客户端:本地域名服务器将从权限域名服务器获取的IP地址返回给客户端(m.xyz.com),完成整个域名解析过程。

迭代查询

由于递归查询对于被查询的域名服务器负担太大,通常采用以下模式:从请求主机到本地域名服务器的查询是递归查询 ,而其余的查询是迭代查询

DNS本地高速缓存

为了提高 DNS 的查询效率,并减轻根域名服务器的负荷和减少因特网上的 DNS 查询报文数量,在域名服务器中广泛地使用了高速缓存 。高速缓存用来存放最近查询过的域名以及从何处获得域名映射信息的记录

由于域名到 IP 地址的映射关系并不是永久不变,为保持高速缓存中的内容正确,域名服务器应为每项内容设置计时器并删除超过合理时间的项(例如,每个项目只存放两天)。

不但在本地域名服务器中需要高速缓存,在用户主机中也很需要。许多用户主机在启动时从本地域名服务器下载域名和 IP 地址的全部数据库,维护存放自己最近使用的域名的高速缓存,并且只在从缓存中找不到域名时才向域名服务器查询。同理,主机也需要保持高速缓存中内容的正确性。

总结

DNS 是互联网的基础架构之一,它通过将域名解析为IP地址,极大地简化了网络访问过程。但是,DNS 的安全性仍然是一个关键问题。通过采用 DNSSEC、限制查询权限和监控流量等措施,可以有效提升 DNS 的安全性和可靠性。

相关推荐
EasyDSS1 小时前
视频监控从安装到优化的技术指南,视频汇聚系统EasyCVR智能安防系统构建之道
大数据·网络·网络协议·音视频
rufeike1 小时前
UDP协议理解
网络·网络协议·udp
江理不变情2 小时前
海思ISP调试记录
网络·接口隔离原则
世界尽头与你3 小时前
【安全扫描器原理】网络扫描算法
网络·安全
GKoSon3 小时前
加入RPC shell指令 温箱长时间监控
网络·网络协议·rpc
艾厶烤的鱼3 小时前
架构-计算机网络
计算机网络·架构
hgdlip4 小时前
关闭IP属地显示会影响账号的正常使用吗
网络·网络协议·tcp/ip·ip属地
Zz_waiting.4 小时前
网络原理 - 7(TCP - 4)
网络·网络协议·tcp/ip
RECRUITGUY5 小时前
用交换机连接两台电脑,电脑A读取/写电脑B的数据
服务器·网络·负载均衡
zheshiyangyang5 小时前
HTTP相关
网络·网络协议·http