我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

域名系统(DNS)是互联网上用来将大家容易使用的机器名转换成IP地址的命名系统。许多应用层软件经常直接使用DNS,但计算机用户只是间接地而不是直接地使用域名系统。互联网使用分层命名树作为主机的名称,并使用分布式域名系统DNS。DNS是:

通过 DNS 服务器层次结构实现的分布式数据库;使主机能够查询分布式数据库的应用层协议。

采用客户机—服务器方式,使得大多数名称解析都在本地进行。名称到IP地址的解析由若干个域名服务器程序完成,域名服务器程序运行在专用的节点上,运行该程序的机器称为域名服务器。当应用进程需要将主机名解析为IP地址时,用户进程调用解析程序,成为DNS的客户机,把需要解析的域名放在DNS请求报文中,以UDP用户数据报的形式发送给本地域名服务器。本地域名服务器查找到域名后,把相应的IP地址放在应答报文中返回。如果本地域名服务器不能应答该请求,本地域名服务器就暂时成为DNS中的另一个客户机,向其他域名服务器发送查询请求。

域名反向解析协议是什么_反向域名解析协议_域名反向解析协议怎么写

为什么是分布式的?

DNS 的一种简单设计是在 中只使用一台 DNS 服务器,该服务器包含所有映射,所有客户端的查询都发送到这台服务器。现在考虑一下为什么 DNS 不采用集中式设计,而是采用分布式设计?主要有四个原因:

简而言之,在单个 DNS 服务器上运行集中式数据库绝对没有可扩展性。

DNS系统是一个层次化分布式数据库系统,用于映射域名和IP地址,DNS系统以递归查询请求的方式响应用户查询,为互联网的运行提供重要的基础服务。

DNS系统的解析过程描述如下:

主机首先向本地域名服务器进行递归查询;本地域名服务器采用迭代查询的方式,向根域名服务器进行查询;根域名服务器告诉本地域名服务器下一步要查询的顶级域名服务器的IP地址;本地域名服务器向顶级域名服务器进行查询;顶级域名服务器告诉本地域名服务器下一步要查询权威服务器的IP地址;本地域名服务器向权威服务器进行查询;权威服务器告诉本地域名服务器要查询的主机的IP地址;本地域名服务器最后将查询结果告诉主机。

本次实验的主要内容是基于工具分析DNS解析流程及其协议字段。

1 DNS协议分析1.1域名解析1.1.1域名结构

IP地址是网络中计算机主机面向应用的标志,而域名是互联网中主机面向用户的标志。为了保证域名的唯一性,域名体系采用层次化结构。如下图所示:

反向域名解析协议_域名反向解析协议是什么_域名反向解析协议怎么写

1.1.2 域名服务器

域名需要通过遍布全球的域名服务器进行解析。域名服务器实际上是一个包含域名及其 IP 地址数据库的主机。

域名服务器从高到低分为以下几类:

注:域名服务器的范围,或者说管理权限范围,称为区域。各单位根据具体情况划分自己管辖的区域,但区域内所有节点必须能连通。每个区域设立相应的权限域名服务器,保存该区域内所有主机的域名到IP地址的映射。DNS服务器的管辖范围不是以“域”为单位,而是以“区域”为单位。

我们需要注意的是:

1.1.3 域名解析

域名解析主要是将主机名(例如)转换为计算机可以理解的IP地址(例如192.168.1.1)。域名解析的基本流程是:

简单的域名对应IP地址的查询也可以使用ping命令完成。

1.1.4 域名解析和

它是一款可以用来查询DNS域名和IP地址的网络管理命令行工具,在Linux和Linux下都有这个工具,用好它对于正常的域名解析或者域名服务器的维护都是很有帮助的。

语法:

    nslookup [ -Option ... ] [ Host ] [ -NameServer ]

该命令通过两种方式查询名称服务器:

以下是一些主要用途:

直接查询某个域名的A记录,使用默认的DNS服务器,语法为:例如:

可以看出:

(1)用于域名解析的DNS服务器地址为172.21.0.10;

(2)该域名对应的主机有多个IP地址。

指定域名服务器查询

nslookup domain  dns-server

将查询请求发送到默认 DNS 服务器以外的 DNS 服务器。例如:

nslookup baidu.com 172.21.0.10

查询其他记录,语法格式如下:

nslookup -type=type domain 

通过指定-type参数的具体类型,可以执行其他类型的查询,常见的类型如下:

例如查询对应的名称服务器记录:

nslookup -type=NS baidu.com

结果如下图所示:

查询IP地址172.11.4.107对应的域名(反向查询):

nslookup -type=PTR 172.11.4.107

结果如下图所示:

反向域名解析协议_域名反向解析协议是什么_域名反向解析协议怎么写

1.2 查看、设置DNS服务器操作 1.2.1 如何查看网卡默认DNS服务器

在我们使用的Linux操作系统中,DNS服务器配置信息在/etc/.conf文件中,查看该文件的命令如下:

cat /etc/resolv.conf

文件内容如下图所示:

可以看出默认DNS服务器IP为:172.21.0.10

1.2.2 如何修改网卡默认DNS服务器

您可以直接修改.conf文件,如下所示:

vim /etc/resolv.conf        		// 打开resolv.conf 文件

将其更改为以下内容:

nameserver 114.114.114.114 		# 修改成你的主DNS
nameserver 8.8.8.8    			# 修改成你的备用DNS

配置完成后需要重启网络服务才能生效,重启网络服务的语句为:

service networking restart

1.3 DNS报文分析1.3.1 DNS域名解析流程

DNS协议属于应用层,运行于采用客户端-服务器模型的通信端系统之间。DNS消息通过端到端传输协议(UDP协议,通常使用53端口)在通信端系统之间传递。DNS系统解析过程如下图所示:

如果DNS客户端需要访问某个WEB服务器,那么客户端可以访问本地的hosts文件,看能否找到该主机名对应的IP地址。如果hosts文件无法解析主机名,那么就只能查询客户端设置的DNS服务器。查询过程如下:

查询方法有两种:

1.递归查询

主机通常采用递归查询的方式向本地域名服务器进行查询,如果主机所查询的本地域名服务器不知道所查询域名的IP地址,则本地域名服务器会以DNS客户端的身份继续向其他根域名服务器发送查询请求报文。

2. 迭代查询

本地域名服务器向根域名服务器的查询通常都是迭代查询,当根域名服务器收到本地域名服务器的迭代查询请求消息时,要么给出要查询的IP地址,要么告诉本地域名服务器:“下一步该查询哪个域名服务器?”然后让本地域名服务器进行后续查询。

递归查询:主机一般采用递归查询方式向本地域名服务器查询;迭代查询:本地域名服务器一般采用迭代查询方式向根域名服务器查询。但也有部分采用递归查询方式。 1.3.2 域名解析协议

域名解析是通过DNS协议实现的,DNS报文有两种类型:查询报文和响应报文,分别用于实现DNS查询请求和响应请求。

DNS协议报文格式如下:

域名反向解析协议怎么写_域名反向解析协议是什么_反向域名解析协议

1. 头部

(1)会话标识符(2字节)DNS消息的ID。该字段对于请求消息及其对应的响应消息是相同的。它可用于区分DNS响应消息是响应哪个请求。

(2)Flags(2字节) 各字段定义如下:

域名反向解析协议怎么写_域名反向解析协议是什么_反向域名解析协议

(3)数量字段(共8个字节):每个字段表示以下四个区域的数量。

**2. 正文**

主体部分由查询区和资源记录区组成。

(1)查询区

反向域名解析协议_域名反向解析协议是什么_域名反向解析协议怎么写

域名反向解析协议是什么_域名反向解析协议怎么写_反向域名解析协议

域名反向解析协议怎么写_域名反向解析协议是什么_反向域名解析协议

注意:查询类别通常为1,表示数据。

(2)资源记录(RR)区域(包括答案​​区域、委托区域和附加区域)

域名反向解析协议怎么写_域名反向解析协议是什么_反向域名解析协议

这三个区域分别为:答案区、授权区、附加区,其格式相同。

1.4 NS类型DNS解析报文分析 1.4.1 如何捕获NS类型DNS报文

DNS中的NS记录 NS(Name)记录是域名服务器记录,用来指定由哪个DNS服务器来解析域名。注册域名时,总会有一个默认的DNS服务器,每个注册的域名都由一个DNS域名服务器来解析。DNS服务器NS记录地址一般以以下形式出现: , 等。简单来说,NS记录就是指定由哪个DNS服务器来解析你的域名。

执行的时候可以指定参数-type=NS来查询指定域名对应的域名服务器,如下图所示。

1.4.2 解析DNS请求消息

以上操作可以抓取到消息列表,过滤DNS协议消息,找到查询请求消息,如下图所示展开。

可以看出查询请求报文的Type字段为NS,即Name,即希望获得权威的名字服务。该请求报文通过UDP协议传输,端口号为53。

传输层协议使用TCP还是UDP?

DNS 可以使用 UDP/53 或 TCP/53。当响应报文长度小于 512B 时,使用 UDP(因为 UDP 的最大报文长度为 512B);如果响应报文长度超过 512B,则使用 TCP。DNS 协议通常在以下两种情况下选择 UDP 和 TCP:

(1)如果DNS客户端程序事先知道响应报文的长度超过512B,那么应该使用TCP连接;

注意:主域名服务器与辅助域名服务器在进行区域传输时,数据量通常比较大,所以DNS规定区域传输采用TCP协议。

(2)如果解析程序不知道响应报文的长度,一般采用UDP协议发送DNS查询报文。如果DNS响应报文的长度大于512B,则服务器会截断响应报文,并将TC()设置为1。这种情况下DNS客户端程序通常采用TCP重新发送原始查询请求,以便以后能收到DNS服务器的完整响应。

1.4.3 解析DNS响应报文

查看后续的响应报文,可以看到有多个响应报文,这些报文是域名解析过程对应的权威服务器的响应,展开这些报文可以看到第一个响应报文如下图所示。

域名反向解析协议怎么写_反向域名解析协议_域名反向解析协议是什么

消息的响应部分包含多个服务器地址,其中第一个服务器地址为 SOA 类型( ),表示权威区域的起始。后续服务器地址均为 SRV 类型( ),表示服务器选择。

后续的多条消息都是对该查询消息的响应。

由于上述响应报文的长度大于512B,因此又出现了查询请求报文,通过查看其传输层协议可知采用的是TCP协议。

中也有多个回复报文,查看这些报文的回复类型,有的是SRV,有的是A(,内容是具体的IP地址)。

查看最后一条响应信息,如下图所示。

域名反向解析协议是什么_反向域名解析协议_域名反向解析协议怎么写

可以看出其权威DNS服务器名称为:ns.dns..local。

1.5 反向 DNS 解析 1.5.1 反向解析

在 中,type 参数设置为 PTR,表示反向解析。反向解析用于将 IP 地址映射到对应的域名,也可以看作是 A 记录的逆向,即 IP 地址的反向解析。下图演示了对 IP 地址 39.156.69.79 进行反向解析的操作。

注意:反向解析时,IP 地址的顺序也会反转。

反向解析查询报文

下图是捕获到的查询报文。

域名反向解析协议是什么_反向域名解析协议_域名反向解析协议怎么写

展开Query段可以看到这个消息的Type是PTR,也就是反向解析,反向解析的名字就是IP地址加上in-addr.arpa部分。

反向解析响应消息

下图是捕获的反向解析响应报文。

展开报文可以看到,该报文的Type为PTR,查询的名称为IP地址加上in-addr.arpa部分,响应的Name值为:。

1.6 指定服务器的DNS报文解析

打开,在过滤器里输入DNS。过滤掉DNS协议的数据包,开始抓包。然后打开终端,输入命令执行114.114.114.114,停止抓包;

从消息列表我们可以看到,经过多次查询和响应,最后一轮获取到了A地址,查询到的百度域名为:

baidu.com.default.svc.cluster.local
baidu.com.svc.cluster.local
baidu.com.cluster.local
baidu.com

逐一检查响应报文可知,前几个响应都是SOA类型,即域名分区,并未获取到真实的IP地址;只获取到了最后一个,类型为A,IP地址分别为220.181.38.148和39.156.69.79。

补充:

(for)和(for Linux/Unix)是主机中最有用的程序,尤其是用于调试网络问题。这里我们只讨论,尽管Linux/Unix的非常相似。它可用于显示您当前的TCP / IP信息,包括您的地址,DNS服务器地址,适配器类型等。例如,您可以直接进入命令提示符并输入

ipconfig /all

有关您的主机的所有信息将类似于下面的屏幕截图。

域名反向解析协议是什么_反向域名解析协议_域名反向解析协议怎么写

它对于管理存储在主机上的 DNS 信息也非常有用。在 2.5 节中,我们了解到主机可以缓存最近获取的 DNS 记录。要查看这些缓存的记录,请在 C:\> 提示符下输入以下命令:

ipconfig /displaydns

每个条目显示剩余的生存时间 (TTL)(以秒为单位)。要清除缓存,请输入:

ipconfig /flushdns

清除所有条目并从主机文件重新加载条目。

2 实验分析

现在我们已经熟悉了 DNS,可以开始一些严肃的工作了。首先,让我们捕获一些常规上网活动生成的 DNS 数据包。

运行以获取亚洲 Web 服务器的 IP 地址。该服务器的 IP 地址

它是什么?

A:这里使用阿里巴巴的公网DNS 223.5.5.5来替换我ISP的DNS。

这里我是查询南方航空的IP地址(),图中可以看到我请求了阿里公共DNS获取到了南方航空的IP地址,即:218.94.136.180。

查找 DNS 查询和响应消息。它们是通过 UDP 还是 TCP 发送的?

答案:UDP。

DNS查询报文的目的端口是什么?DNS响应报文的源端口是什么?

答:都是53端口。

反向域名解析协议_域名反向解析协议是什么_域名反向解析协议怎么写

域名反向解析协议怎么写_反向域名解析协议_域名反向解析协议是什么

DNS 查询消息发送到哪个 IP 地址?用于确定本地 DNS 服务器的 IP 地址。这两个 IP 地址是否相同?

检查DNS查询报文。DNS查询的“Type”是什么?查询报文中是否包含“”?

答案:类型为“A”,表示查询IP地址,不带“”。

检查 DNS 响应消息。提供了多少个“答案”?这些答案具体包含什么?

答案:提供了2个“”,分别是域名的2个IPV4地址。

考虑从您的主机发送的后续 TCP SYN 数据包。SYN 数据包的目标 IP 地址是否与 DNS 响应消息中提供的任何 IP 地址相对应?

答:是对应的。

反向域名解析协议_域名反向解析协议怎么写_域名反向解析协议是什么

此页面包含一些图片。您的主机在获取每张图片之前是否会发出新的 DNS 查询?

A:不需要,因为本地DNS已经被缓存了,所以不需要再发起新的DNS查询。

DNS查询报文的目的端口是什么?DNS响应报文的源端口是什么?

答案:目的端口和源端口都是53。

DNS 查询消息的目标 IP 地址是什么?这是您的默认本地 DNS 服务器的 IP 地址吗?

答:225.3.3.3是我修改的默认本地DNS服务器的IP地址。

检查DNS查询报文。DNS查询的“Type”是什么?查询报文中是否包含“”?

答案:类型为“A”,表示查询IP地址,不带“”。

检查 DNS 响应消息。提供了多少个“答案”?这些答案包含什么?

A:提供了1个“”,即域名的IPV4地址。

现在重复前面的实验,但使用以下命令:

nslookup www.aiit.or.kr bitsy.mit.edu

DNS 查询消息发送到哪个 IP 地址?这是您的默认本地 DNS 服务器的 IP 地址吗?

答:18.0.72.3 不是我的默认本地 DNS 服务器的 IP 地址。

检查DNS查询报文。DNS查询的“Type”是什么?查询报文中是否包含“”?

答案:类型为“A”,表示查询IP地址,不带“”。

检查 DNS 响应消息。提供了多少个“答案”?这些答案包含什么?

A:提供了1个“”,即域名的IPV4地址。

添加:dig 命令

命令行工具 dig 可以与 DNS 服务器交互。其查询语法如下(美元符号 $ 是命令行提示符)

$ dig @[DNS 服务器] [域名]

互联网上有很多公共的DNS服务器,本文以公司提供的1.1.1.1为例进行演示,若要从1.1.1.1查询域名,执行以下命令。

參考

二维码
扫一扫在手机端查看

本文链接:https://by928.com/4579.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线