应用层--DNS

2.4 DNS(域名系统)

由来:
计算机的标识方式有 IP地址 和 主机名 两种。
其中主机名因易于记忆而被人们普遍接受,但主机名几乎不提供计算机在因特网中位置的信息。
而路由器更喜欢定长的,有层次结构的IP地址。
为了折中这两种需求,需要一种能将主机名转换为IP地址的目录服务,也就是域名系统DNS(Domain Name System)的主要任务。

特点:

  • 分层的、基于域的命名机制
  • 若干分布式的数据库完成名字到IP地址的转换
  • 运行在UDP上端口为53的应用服务
  • 核心的Internet功能,但以应用层协议实现
    • 在网络边缘(端系统,主机的应用层)处理复杂性

功能:

在这里插入图片描述

2.4.1 域名

  • 定义:
    域名 (Domain Name)是因特网的一项核心服务,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,它采用分级结构。

域名由两种不同的字符集组成:ASCII和Unicode。ASCII字符集包括128个字符,如数字、字母和符号。Unicode字符集包括几乎所有国家和地区的文字、符号和符号。

在ASCII字符集中,每一级域名长度不超过63个字符。而在Unicode字符集中,虽然域名长度没有明确的限制,但仍然需要遵守域名系统规范(DNS)的限制。根据DNS规范,每一级域名长度不能超过253个字符。

需要注意的是,虽然每一级域名长度有限制,但整个域名的长度是没有限制的

域名可以用来在数据传输时标识计算机的电子方位,有时也指地理位置

例如:我们常用的门户网站,如搜狐、新浪等,它们都是用大写字母来作域名的。

  • 特点
    • 1.一个层面命名设备可能会有很多重名,但通过结合主机名和所在的域,可以唯一地标识互联网上的每一台主机
    • 2.DNS采用层次树状结构命名方法

在这里插入图片描述

  • 解析问题

单点故障:如果只有一个DNS服务器,一旦其损坏将影响巨大
通信容量:一个DNS服务器处理所有DNS查询,工作量过大
维护问题:一台DNS服务器需要为所有因特网主机保留记录,使得中央数据库庞大,并且还要因添加新的主机而更新。
远距离的集中式数据库:因为一台DNS服务器无法”邻近“所有用户,传播时将经过低速和拥塞链路导致严重时延。

在这里插入图片描述

域名的层级分类

下图中 "叶" 只是一个通用代指,并不是说所有域名都归于一个主机或设备。“根”同理(DNS根服务器共有13个)
从树根到树叶,上层域有一个指向其子域服务器的指针。

一系列划分域
一系列划分域
一系列划分域
一系列划分域
一系列划分域
顶级域1
顶级域2
顶级域3
顶级域...
二级域1
二级域2
二级域3
二级域...
二级域...
二级域...
三级域...
...

在这里插入图片描述

顶级域分为两类:

  • 通用的(Generic)
  • 国家的(Countries)

下面几张图有重复,看看就行。
在这里插入图片描述在这里插入图片描述

下图出现的反向域名 arpa 作用是将IP地址逆向解析为域名
在这里插入图片描述
以下拓展摘自百度AI:

arpa是逆向域名系统(逆向DNS)的缩写,用于将IP地址解析为域名。
在互联网上,IP地址是唯一标识计算机或设备的地址,而域名则是为了方便人们记忆和访问这些地址而使用的字符串。逆向域名系统的作用就是通过IP地址反向解析出对应的域名。
arpa域名字符集与一般的域名字符集不同,它只包含数字和字母,不包含国家、地区或符号等特殊字符。
arpa域名通常用于以下几种情况:

反向域名解析:通过IP地址反向解析出对应的域名,用于网络管理和安全监控等。
DNS黑名单:将恶意软件或网络攻击者的IP地址加入到arpa域名的黑名单中,以限制其访问网络资源。
邮件服务器:arpa域名用于邮件服务器,以便于接收和发送电子邮件。
临时域名:当一个域名被删除或过期时,其IP地址可能仍然需要被访问,此时可以使用arpa域名作为临时替代品。

需要注意的是,arpa域名的使用需要遵守特定的规范和标准,例如逆向DNS解析协议(DNS Reverse Resolution Protocol)等。

域名的构成

  • 命名设备的域名
    主机名.第N级域名.(…).第二级域名.顶级域名
    从树叶开始,每过一个层级用句点分隔开

  • 命名一个域的域名(对某个域做标识)
    树枝开始到顶级域。
    如:ustc.edu.cn (中国科技大学域名)

注:(少数采用)设备也可以直接挂在顶级域名或二级域名之下,不必非要顺着所有域层级来命名。

如:

  • mit.edu
  • xxx.gov

域名管理

.cn:中国的一个顶级域名
.jp:日本的一个顶级域名

在这里插入图片描述

2.4.2 域名服务器

在这里插入图片描述

DNS:根名字服务器

互联网共有13个根服务器 (分布在:欧洲,北美(大部分),日本),不同国家域名划分不一定一样

权威服务器

  • 前置
    为了解决域名的维护(域名到IP地址转换)和解析问题,划分出区域(zone)的概念:
    在这里插入图片描述下图中每个圈就是一个区域。
    在这里插入图片描述

  • 定义
    在这里插入图片描述是否是某个域的权威DNS服务器看是否维护中这个区域的域名到IP地址对应关系
    权威服务器 :清楚本区域内部域名与IP对应关系

TLD服务器

在这里插入图片描述

本地名字服务器(Local Name Server)

地址使用手工配置或动态配置
在这里插入图片描述

名字服务器(Name Server)

在这里插入图片描述

2.4.3 DNS工作机理方面

1. DNS缓存

为了改善时延性能并减少在互联网上传输的DNS报文数量,DNS广泛采用了缓存技术。

  • 原理
    在一个请求链中,DNS服务器收到一个DNS应答(如包含某个主机名到IP地址的映射)时,它能将映射缓存在本地存储器中

由于主机和主机名与IP地址间的映射不是永久的DNS服务器在一段时间后(通常设置为两天),将丢弃缓存信息。

  • 产生的影响
    本地服务器也能缓存 TLD 服务器的 IP 地址,因而允许本地DNS绕过查询链中根DNS服务器。事实上,由于缓存的存在,除了少数DNS查询以外,根服务器被绕过了。

2. 资源记录

共同实现DNS分布式数据库的所有DNS服务器存储了资源记录(Resource Record,RR):提供主机名到IP的映射。
资源记录是一个包含了下列字段的四元组:
(Name,Vaule,Type,TTL),具体见下图:
在这里插入图片描述

资源记录可以类比于数据库的记录方法
  • TTL(生存时间 time to live):是指某个记录的生存时间,决定了某个资源记录删除的时间
    • 1.TTL为无限大:指权威值
    • 2.TTL为有限值: 指缓冲值

下面给出的例子,忽略掉TTL字段。Name和Vaule的值取决于Type:

(结构图)
在这里插入图片描述
(原书)
在这里插入图片描述

  • 资源记录的一个例子:
    在这里插入图片描述

3. DNS工作过程:

在这里插入图片描述

在这里插入图片描述

查询

如果本地服务器有缓存,则直接返回缓存信息(主机与IP映射)。如果没有缓存,需要查询具体映射。
查询方法有以下两种:

  • 递归查询
  • 迭代查询

递归查询

简单来说就是主机任意找一个根服务器,由于通常上一级知道下一级信息,然后从根服务器开始一级一级往下查找,直到最终查到结果
在这里插入图片描述

迭代查询

上一级不会明确下一级的信息,但会有一个指定方向,相当于"踢皮球"。
在这里插入图片描述

4. DNS协议与报文

DNS报文有查询报文和回答报文两种,它们的格式都是相同的。结构如下图:

idenfication即id号
在这里插入图片描述

(原书参考)
在这里插入图片描述在这里插入图片描述

5. 维护问题:新增域

在这里插入图片描述

2.4.4 DNS安全问题

在这里插入图片描述

总的来说,DNS比较健壮

猜你喜欢

转载自blog.csdn.net/qq_74259765/article/details/131670799