【SPOTO思博网络】【网工入门零基础必看】IP业务《DNS》 DNS的定义
DNS是域名系统(DomainNameSystem)的缩写,它是由解析器和域名服务器组成的。
域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并 具有将域名转换为IP地址功能的服务器。其中域名必须对应一个IP地址,而 IP地址不一定有域名。
域名系统采用类似目录树的等级结构。域名服务器为客户机 / 服务器模式中的服务器方,它主要有两种形式:主服务器和转发服务器。
将域名映射为IP 地址的过程就称为 “域名解析”。在 Internet上域名与IP地址之间是一对一(或者多对一)的,域名虽然便于人们记忆,但机器之间只能互相认识 IP 地址,它们之间的转换工作称为域名解析,域名解析需要由专门的域名 解析服务器来完成,DNS就是进行域名解析的服务器。
DNS 命名用于Internet 等 TCP/IP网络中,通过用户友好的名称查找计算机和服务。
当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与之相关的其他信息,如IP地址。因为,你在上网时输入的网址,是通过域名解析系统解析找到了相对应的IP地址,这样才能上网。其实,域名的最终指向是IP 。
DNS 的构成
在 IPV4 中 IP是由32位二进制数组成的,将这32位二进制数分成4组每组8个二进制数,将这8个二进制数转化成十进制数,就是我们看到的IP地址,其范围是在0~255 之间。
因为,8个二进制数转化为十进制数的最大范围就是0~255。现在已开始试运行、将来必将代替IPv4的IPV6 中,将以128 位二进制数表示一个IP地址。
DNS 的查询
DNS查询可以有两种解释,一种是指客户端查询指定DNS服务器上的资源记录(如 A 记录),另一种是指查询FQDN名的解析过程。
01 查询 DNS服务器上的资源记录
您可以在Windows 平台下,使用命令行工具,输入nslookup ,返回的结果包括域名对应的IP 地址( A 记录)、别名( CNAME记录)等。
除了以上方法外,还可以通过一些DNS查询站点如国外的国内的查询域名的DNS信息。
02 FQDN名的解析过程查询
若想跟踪一个FQDN名的解析过程,在LinuxShell下输入 digwww+trace , 返回的结果包括从跟域开始的递归或迭代过程,一直到权威域名服务器。
DNS 的报文格式
DNS 报文的首部:
DNS 报文首部的后面是可变部分,包括四个小部分。
问题部分由一组问题记录组成。
DNS报文的其余三个部分是回答部分、授权部分和附加信息部分,附加信息包含回答部分和授权部分返回的资源所要求的附加信息(如 IP 地址)。
这三部分均由一组资源记录组成,而且仅在应答报文中出现。一条资源记录描述一个域名。
具体抓包实例分析
01 协议数据包窗口
从包到达的时间,顺序以及源和目的IP 地址可知,这是一对DNS请求与应答报文。
下图为1号包与2号包中 DNS段的报文分析注释,由此可证明,包1为DNS 请求报文,包2为包1的应答报文,请求与应答报文的到达间隔时间为0.000349s,它们的标识字段都为0x001,用于相互匹配。
因为 DNS请求报文的目的是请求DNSServer的IP地址,故包1的源IP地址为本机 IP ,目的IP 地址为 DNS服务器的IP,包 2与包1 相反。
02 协议树窗口
DNS请求报文:
DNS应答报文:
可以看出,DNS请求报文与应答报文链路层的MAC地址相反,请求报文中的源物理地址为本机的物理地址,这与IP地址相对应。
此外,DNS请求报文与应答报文传输层中UDP的源端口与目的端口相反,其中请求报文UDP的源端口为客户机动态申请的本地端口,目的端口为DNS所固有的53号周知端口。
这两点都体现了DNS请求报文与应答报文间的请求-应答关系。DNS请求报文与应答报文协议树窗口显示的协议层次与网络协议的层次对应相同,如下表:
03 物理层节点
DNS请求报文
DNS应答报文
以上两张图分别给出了DNS请求报文与应答报文的时间参数、包号、长度与协议层次,在此不一一细说。
但是,我们可以很清楚的看出,DNS请求报文的长度为72字节,而应答报文的长度为123 字节,比请求报文长得多。
这是由于在DNS应答报文中,具有请求报文所没有的回答部分、授权部分与附加部分,在下面的应答报文分析中会具体说明。
04 数据链路层节点
DNS请求报文
DNS应答报文
由上图可以更明显的看出,DNS请求与应答报文的源与目的MAC地址的相反现象。
此外,DNS请求与应答报文以太网协议中的类型均为IP,即在 DNS协议层次中网 络层协议为IP,这体现了DNS作为TCP/IP 协议簇中协议的特点。
05 IP节点
DNS请求报文
DNS应答报文
DNS请求与应答报文IP 层相同点:
版本号:IPv4 首部长度:20 字节,没有其他选项 服务类型:最低优先级的一般服务 片偏移: 0,无分片 协议标识:UDP(0x11H)
DNS请求与应答报文IP 层不同点:数据报长度:上文已有分析。
标识不同,因为请求与应答为两个不同的报文,信源机给予的用于区分分片的标识不同。
生存时间不同,请求报文为64,应答报文为60。
校验和不同, DNS请求与应答报文IP 层首部不同,故校验和不同。
源与目的IP 地址不同,原因在前面的分析中已经说明。
06 UDP 节点
DNS请求报文
DNS应答报文
DNS请求与应答报文的源与目的端口相反,原因在前面的分析中已经说明。
请求报文UDP长度为 53 字节,应答报文UDP长度为 89 字节。
07 DNS节点
DNS 请求报文首部:
标识字段: 0x0001,用于匹配请求与响应 标志字段: 0x0100H QR: 0,为请求报文 OpCode:0000(0),标准查询(正向解析) AA: 0,此字段只在服务器的响应中有效,在上图中不显示 TC: 0,报文没有被截断 RD:1,请求服务器进行递归解析 RA: 0,此字段只在服务器的响应中有效,在上图中不显示3
比特保留位: 000 rCode: 0000,没有错误问题记录数:1 回答记录数: 0(DNS请求报文此字段为0) 授权记录数: 0(DNS请求报文此字段为0) 附加信息记录数:0( DNS请求报文此字段为0)
问题部分: 询问类型:PTR,数值为 1,反向解析。 询问类:IN,数值为 1,表示因特网协议。
3.7.2、DNS 应答报文
首部: 标识字段: 0x0001,用于匹配请求与响应,此处与DNS请求报文相匹配。 标志字段: 0x8180H QR:1,为应答报文 OpCode:0000(0),标准查询(正向解析) (与请求报文相同) AA: 0,回答的服务器是该域的授权服务器 TC: 0,报文没有被截断 RD:1,请求服务器进行递归解析(与请求报文相同) RA:1,服务器支持递归解析(回应RD)
3 比特保留位: 000 rCode: 0000,没有错误 问题记录数:1 回答记录数:1 授权记录数:1 附加信息记录数:0 问题部分:与请求报文相同,即作为DNS请求报文的回答,DNS应答报文的问题部分就是请 求报文的问题部分的拷贝。
回答部分:
域名:0xC00CH,为指向问题部分询问名的指针,具体地址为0000000000110(0 二进制地址) 类型:PTR,数值为1,指针记录, IP 到域名的解析。类:IN,数值为1,表示因特网协议。 生存时间:1day 资源数据长度:10 字节 资源数据:dnscache(DNS缓存服务器)
授权部分:
经过本次对DNS 域名系统的抓包实验的分析,我们加深了对DNS域名系统的理解和掌握。
首先从DNS 的含义上,DNS是由解析器和域名服务器组成的,其中,域名服务器是指保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP 地址功能的服务器。
它主要有主服务器和转发服务器两种形式。在理解了DNS 的含义后,我又对其具体构成进行了深入的掌握和理解。
本次实验,也让我对 DNS 的理解达到了理论与实际相结合的程度。
另外,我们也通过实验初步掌握了软件Wireshark 的使用,也让我们感受到了亲自动手进行实验的乐趣。
|| 备考不用慌,大佬带你飞 : 每三位IE,有两位来自思博 进入全国网络工程师交流群 ,请扫描下方二维码↓↓↓
群里有行业大咖、实战分享、技术交流、技术咨询、企业内推等机会
若群满,请添加老杨微信(spotoa),邀你进群
|