EduCoder 计算机网络实验 DNS协议分析
第1关:nslookup 域名解析
任务描述
本关任务:使用 nslookup 实现 IP 地址与域名转换解析。
相关知识
为了完成本关任务,你需要掌握:
- DNS 系统的工作机制;
- 如何获取域名对应的 IP 地址。
域名结构
IP 地址即为网络中用于标识计算机主机的应用端标,在因特网环境中,则通过域名系统实现了对用户的主机标识。每个 hostname 必须保证其唯一性以避免冲突,在此基础之上,DNS 通过层次结构实现了对这些地址的有效管理与查询服务(如上图所示)。

- 每一个域名(只讨论英文域名)都是一个标号序列(labels),用字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成;
- 标号序列总长度不能超过 255 个字符,它由点号分割成一个个的标号(label);
- 每个标号应该在 63 个字符之内,每个标号都可以看成一个层次的域名;
- 级别最低的域名写在左边,级别最高的域名写在右边,如
www.baidu.com; - com: 一级域名。表示这是一个企业域名。同级的还有 “net”(网络提供商), “org”(非盈利组织) 等;
- baidu: 二级域名,指公司名;
- www: 表示该公司的 WEB 服务器对应的主机。
域名服务器
所有类型的网站都必须依赖这些遍布全球的域名服务器来解析其地址。从本质上说,这些域名服务器都是配置有其对应域名及其 IP 地址数据库的主机。
域名服务器由高向低进行层次划分,可分为以下几大类:
- 根级DNS 服: 最上层的根级DNS 服, 当本地名服无法解析某些子域时, 这些子域会向其求助。
- 根顶级 DNS 服务(RSVP): 负责管理在其下的所有二级 DNS 注册。
- 权限级 DNS 服务(RSDN): 负责在一个区域内的所有域解析工作。
- 地理区域内的各点对点(P2P)访问服务提供者(AS)之间通信所需的多播数据包传输机制。
注:一个域名服务器所负责的范围,或者说有管理权限的范围,就称为区。
我们需要注意的是:
- 在每一层的域名上都配置了本层的专用 DNS 服务器,在顶级域上部署了统一管理的 DNS 服务器。
- 每一级 DNS 服务器都会主动获取并更新下一层级 DNS 服务器对应的 IP 地址信息。
- 为实现数据冗余备份以确保系统高可用性,在每一层级均部署多台 DNS 服务器。
域名解析
该系统的主要功能是将主机名称(如www.example.com)转换为计算机友好的 IP 地址(如192.168.1.1)。其基本工作流程如下:
首先,在输入完成后会立即启动搜索过程;
系统会首先尝试通过本机DNS服务器来获取对应的数据;
如果本机DNS服务器无法找到所需信息,则系统会依次向更高层级的DNS服务器发送请求;
当最终查询到顶级DNS服务器时系统必定能够定位到目标IP地址;
此外该DNS服务器还具有一定的缓存机制能够存储已经访问过的IP地址列表从而提高后续查询效率。
简单的域名对应的 IP 地址查询,也可以使用 ping 命令来完成。

域名解析与 nslookup
nslookup 是一种用于网络管理的命令行工具,在 Linux 和 Windows 系统中都存在这一工具。掌握它能提高日常域名解析的有效性,并能辅助进行域名服务器的维护。
语法方面:
nslookup 命令以两种方式进行查询:
- 交互模式下当不提供任何操作参数时会自动启动,在此状态下可通过相关交互命令指定目标对象及执行的操作。
- 在命令行界面中使用 nslookup 命令时需明确指定目标主机及所需的操作功能。
此方法的实际应用较为广泛。
下面列举几种主要用法:
进行一次查询,在网络中获取指定域名的一级缓存记录(A记录),默认情况下会采用该域名所属注册商提供的DNS服务器。遵循以下命令格式:nslookup domain。例如以下命令片段:nslookup baidu.com。

从中可以看出: (1)baidu.com 的域名解析所使用的 DNS 服务器地址为 172.21.0.10; (2)baidu.com 域名对应的主机拥有多少个 IP 地址。
配置域名服务器查询指令 nslookup domain dns-server 将会将查询请求发送至 DNS 服务器 bitsy.mit.edu 而非默认DNS 服务器,请注意此操作。例如,请执行以下命令以验证效果:nslookup baidu.com 172.21.0.10
查询其他记录,语法格式如下: nslookup -type=type domain
通过指定 -type 参数的具体类型,执行其他类型的查询。常用类型说明:
- MX:邮件服务器记录;
- NS:名字服务器记录;
- PTR:反向记录。
To find the nameserver mappings for baidu.com, use the command nslookup -type=NS baidu.com. The results shown in Figure:

查询 IP 地址172.11.4.107对应的域名(反向查询): nslookup -type=PTR 172.11.4.107 结果如图:

使用git将本地文件推送到远程仓库永久保存
评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:
在桌面的空白区域执行右键操作,在弹出菜单中选择“在此打开终端”选项;随后,在终端界面中输入命令cd /data/workspace/myshixun/以切换至实训项目存储位置;
执行 git 命令:
1.
2.
3.
- 使用 git 拉取主分支时不合并修改过的文件
- 将当前目录中的所有修改文件加入到 Git 项目中
- 提交本次变更记录并附上简短说明
- 将本地仓库主分支推送给远程仓库 master 分支
在这一操作中,默认情况下系统会将提交的内容标记为提交记录,默认情况下会自动记录提交信息为提交状态,默认情况下会自动将提交信息标记为已提交状态,默认情况下会自动将提交信息标记为已发布状态,默认情况下会自动将提交信息标记为已审核状态,默认情况下会自动将提交信息标记为已通过状态
密码输入步骤中,Shell窗口不会显示输入的字符;只需在适当的时候按下回车键;请确保不要使用退格键。
操作要求
双击桌面上的工作区文件夹命名为(workspace),然后打开名为(myshixun)的实训文件夹。接着,请将您获取的信息存储到名为(message-1.txt)的文本文件中。
(1)在桌面上空白处双击打开终端;
(2)分别从DNS服务获取目标网站IP地址,并将结果保存至对应文档;
(3)从名字服务记录中提取目标网站对应的origin值并保存;
(4)对给定IP地址进行反向解析并输出结果至指定文档;
(5)完成修改后立即git push至远程仓库。
任务描述
本关任务:使用 nslookup 实现 IP 地址与域名转换解析。
相关知识
为了完成本关任务,你需要掌握:
- DNS 系统的工作机制;
- 如何获取域名对应的 IP 地址。
域名结构
IP地址标识网络中用于应用层服务的计算机主机,在此层次结构下实现数据传输与通信;而域名则标识互联网中供用户访问使用的主机名称与路径,在全球统一的空间基础上完成资源定位与服务定位;为确保域名具有唯一性特征,在其发展过程中逐渐形成了复杂的层次化管理架构模式(如图所示)。

- 每个英文域名都是一个标号串(labels),由字母(A-Z、a-z、区分大小写的等价)、数字(0-9)以及连接符组成;
- 标号串总长度不得超过255个字符,并由点分隔符分割成多个标号;
- 每个标号不应超过63个字符长,并可视为一个层级的部分;
- 最底层的域名排列于左侧,默认最高层排列于右侧,
例如:www.baidu.com; - com为一级子域名,
表示这是一个企业性质网站,
与之同级还有"net"(网络服务提供商)、"org"(非营利组织)等; - baidu为二级子域名,
代表该公司的名称; - www标识该公司的Web服务器对应的主机。
域名服务器
必须依靠遍布全球的主要DNS服务器网络来完成对域名的解码转换。事实上这本质上相当于一个专门存储和管理域名及其对应IP地址数据库的主机系统。
域名服务器由高向低进行层次划分,可分为以下几大类:
- 根(主)名域注册 server:当本地 name server 无法解析某个 domain name 时(例如某个特殊字符被误认为是非法字符),它会自动将此请求转发给 root master name server。
- 根据国际ANA标准定义,在 top-level domain 的 name server 负责维护所有属于该 top-level domain 下级 domain 的注册信息。
- 名称域名称中的区域 (Regional) zone 名称域名称中的区域 (Regional) zone name 的名字域名称中的区域 (Regional) zone 的名字域名称中的区域 (Regional) zone name 的名字域名称中的区域 (Regional) zone names下的 names.
- 当一个主机发送 DNS 查询请求时(request),它会首先联系 local name server(local host's DNS resolver)。
注:一个域名服务器所负责的范围,或者说有管理权限的范围,就称为区。
我们需要注意的是:
- 各层的主域名均设有本级域控制器节点设备,
根域名为顶级域控制器节点设备; - 所有主域名设备都会主动获取下级主域名设备的IP地址信息;
- 为了实现数据冗余管理,在每一层级至少配置两个以上的备用存储空间。
域名解析
该系统的主要功能是将主机名(如www.example.com)映射到计算机友好的IP地址(如192.168.1.1)。具体工作流程如下:首先由该主机自动发起DNS查询请求;若首次未找到对应资源,则会向更高层级的DNS服务器依次推进查询;最终必能找到相应的IP地址;此外,在完成一次成功响应后,DNS服务器会自动维护一个缓存表,以便加快后续相同类型请求的速度。
简单的域名对应的 IP 地址查询,也可以使用 ping 命令来完成。

域名解析与 nslookup
注
下面列举几种主要用法:
在直接进行查询时,请获取该域名的A记录信息,并通过默认设置连接到对应的DNS服务器。语法应为:nslookup domain;例如,在命令行中输入nslookup baidu.com。

从中可知:(1)百度(Baidu)公司的域名解析服务主要依赖于DNS服务器地址列表中的IP地址172.21.0.10;(2)查看相关数据时,请注意:百度公司对应的主机拥有多少个IP地址?
请在主机上指定域名服务器执行 nslookup 命令 nslookup domain dns-server ,用于将查询请求传输至 DNS 服务器 bitsy.mit.edu ,而非默认的 DNS 服务器。例如: nslookup baidu.com 172.21.0.10
查询其他记录,语法格式如下: nslookup -type=type domain
通过指定 -type 参数的具体类型,执行其他类型的查询。常用类型说明:
- MX:邮件服务器记录;
- NS:名字服务器记录;
- PTR:反向记录。
用于获取baidu.com对应的DNS名称服务器记录: nslookup -type=NS baidu.com 结果展示在图中:

查询 IP 地址172.11.4.107对应的域名(反向查询): nslookup -type=PTR 172.11.4.107 结果如图:

使用git将本地文件推送到远程仓库永久保存
评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:
请将光标定位到桌面任意位置的空白处,并执行以下操作:首先使用鼠标右键点击此处;然后单击屏幕上的'此处打开终端'按钮。随后运行以下命令进入实训代码仓库:$ cd /data/workspace/myshixun/
执行 git 命令:
1.
2.
3.
- 执行非深度回拉操作至主分支。
- 将当前目录下的所有文件包含进Git仓库。
- 初始提交并记录初始变更。
- 将本地主分支推送给远程存储库主分支。
在平台中进行身份验证时,默认情况下"First commit"相当于提交备注信息。您需要在此处按照以下方式填写教育者平台的相关账号信息:用户账号选择教育者平台的账号信息:登录名(可选),手机号(可选)或邮箱(必填)。密码部分同样按照系统提示完成身份验证流程即可。
请记住:在使用 Shell 界面进行密码输入时,默认情况下窗口不会显示所输入字符。完成后的操作应通过按下回车键来实现,并请确保在操作过程中不要误按退格键。
操作要求
通过双击操作启动桌面上的工作区 workspace 文件夹。然后点击桌面左下角的实训目录 myshixun。为了记录查询结果,请将相关信息存储到指定的文本文件 message-1.txt 中。
(1)双击桌面上空白处启动终端程序; (2)通过查询网站域名www.educoder.net对应的DNS服务器DNS服务器DNS服务器DNS服务器dns-ns-1.eccoder云excoder云excoder云excoder云excoder云excoder云excoder云excoder云excoder云excoder云excoder云excoder云excoder云excoder clouds-ns-1.excoder clouds-ns-2.excoder clouds-ns-3.ex coder clouds ns 1 ex coder clouds ns 2 ex coder clouds ns 3 ex coder clouds ns 4 ex coder clouds ns 5 ex coder clouds ns 6 ex coder clouds ns 7 ex coder clouds ns 8.ex coder 等信息获取其IP地址和www.educoder.net的IP地址,并记录到指定文件中; (3)通过名称服务记录结果获取该域名的origin值并将其记录到文件中; (4)对指定IP地址172.21.0.10执行反向解析操作以获取其对应域名并将结果写入相应位置; (5)将文件保存后使用git命令将message-1.txt推送到远程代码库仓库以便于版本管理和协作操作此步骤不会影响评测指标

第2关:查看与设置 DNS 服务器操作
任务要求
相关知识
操作要求
测试说明
任务描述
本关任务:查看和设定默认的 DNS 服务器。
相关知识
为了完成本关任务,你需要掌握:
- 如何查看系统的 DNS 服务器;
- 如何设定默认 DNS 服务器。
如何查看网卡默认的 DNS 服务器
在当前使用的 Linux 操作系统中,DNS 服务器配置信息位于/etc/resolv.conf目录中。获取该文件的方式如下:使用命令 cat /etc/resolv.conf
在当前使用的 Linux 操作系统中,DNS 服务器配置信息位于/etc/resolv.conf目录中。获取该文件的方式如下:使用命令 cat /etc/resolv.conf
该文件内容如下图所示:

可以看出,默认的 DNS 服务器 IP 是:172.21.0.10。
如何修改网卡默认的 DNS 服务器
建议编辑resolv.conf文件的具体操作步骤如下:启动vim编辑器并切换到/等/etc/resolv.conf文件,请按照以下内容进行修改:
nameserver 114.114.114.114 #修改成你的主DNSnameserver 8.8.8.8 #修改成你的备用DNS
配置完成后必须进行网络服务的重启方能使其生效。其命令为: \text{service networking restart} 。

使用git将本地文件推送到远程仓库永久保存
评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:
在桌面上选择空白处右键点击,在双击此处启动终端窗口,并运行以下命令:cd /data/workspace/myshixun/ 进入实训代码仓库。
执行 git 命令:
1.
2.
3.
git add .
2.git commit -m "Fisrt commit"
3.git push origin master
在操作过程中,请注意以下几点:首先,请您确认您已准备好提交修改过的文件。'Fisrt commit'这一术语相当于备注信息,在实际操作中可以替换为其他类型的信息内容。具体来说,在操作过程中,请按照以下步骤进行:1. 输入您的educoder账号信息——其中用户名应为educoder平台的登录用户名(支持手机号或邮箱);2. 设置初始密码并完成初始验证——请确保填写的信息准确无误,并按照系统提示步骤完成账号登录
注意:密码在Shell窗口中被隐藏显示,在实际操作中按回车键确认即可操作;请勿在输入过程中使用退格键进行修改。
操作要求
依次点击桌面上主工作区文件夹WSTUDIO窗口并打开实训文件夹PracticeFolder窗口
(1)在桌面空白处右键单击并打开终端窗口; (2)通过 cat 命令查询本机默认的 DNS 服务器,并将获取到的 IP 地址记录到指定文件中; (3)通过 vim 编辑器设置 DNS 服务器的 IP 地址为 114.114.114.114; (4)通过 cat 命令查询本机默认的 DNS 服务器,并将获取到的 IP 地址记录到指定文件中; (5)完成保存操作后,在线提交代码至远程仓库存储库,并命名为 message-2.txt

第3关:DNS 报文分析
具体说明该功能的核心目标和实现方式
该领域内的知识体系包括
任务描述
本关任务:DNS 系统解析过程的具体分析。
相关知识
为了完成本关任务,你需要掌握:
- 如何实现 DNS 域名解析协议,
- 如何查看 DNS 的请求报文与响应报文。
DNS 域名解析过程
DNS 协议归类于应用层,在通信两端系统间采用客户端-服务器模式运行。在两端系统间通过基于UDP协议(通常采用53号端口)来传输DNS报文。
DNS 系统解析过程如下图所示:

DNS客户需要访问www.abc.xyz.com的WEB服务器,则客户机可以通过查看本地hosts文件中的信息来确定主机名称对应的IP地址。如果hosts文件无法解析该主机名称,则必须依赖预先设置好的DNS服务器进行信息查找。整个信息查找流程的具体步骤如下:(1)DNS客户端向本地域名服务器发出目标子域www.abx.xyz.com的信息查找请求;(2)本地域名服务器首先检查缓存区是否存在该子域的信息;(3)若缓存区已有相应记录,则直接返回该记录给DNS客户端;(4)若缓存区未找到相关信息,则向根域名服务器发起查询请求获取子域com的相关信息;(5)根域名服务器将下一级子域名xyz.com对应的域名服务提供给本地域名服务器;(6)接着本地域名服务向其所属的子域名服务(xyz.com)发起进一步的信息查找请求;(7)如果该子域名服务无法提供目标信息,则继续向上级子域名服务寻求帮助直至找到目标信息为止;(8)最终当某级子域名服务拥有所需目标信息时,则会将该信息传递给当前所有相关层次的服务并通知主DNS客户端所寻找到的目标IP地址;(9)随后主DNS客户端将接收的所有返回结果汇总后进行验证确认;(10)确认无误后将准确的目标IP地址反馈给主DNS客户端以供后续使用
- 递归查找:主机对本地域名服务器执行的查找过程一般都采用了递归查找的方法。
- 迭代查找:本地域名服务器在向根域名服务器发起查找时通常会使用迭代查找的方式。然而,在某些情况下也会选择采用递归查找。
域名解析协议
该过程是通过DNS协议得以完成的。两种类型的DNS报文分别用于处理DNS的查询请求和响应请求。
DNS 协议报文格式如下:

1.头部 (1)会话标识( 2 字节) DNS 报文的 ID 标识,对于请求报文和其对应的应答报文,这个字段是相同的,通过它可以区分 DNS 应答报文是哪个请求的响应。 (2)标志( 2 字节) 各字段定义如下:

- QR(1位):查询响应标志。
- opcode(4位):具体说明了三种不同的功能:
- 0:标准查询;
- 1:反向查询;
- 2:服务器状态请求。
- AA(1位):表示授权回答。
- TC(1位):是否可截断。
- RD(1位):是否期望递归。
- RA(1位):是否可用递归。
- rcode(4位):
- 0表示无错误信息;
- 3表示名称不符;
- 2则表示服务器出现错误(Server Failure)。
- opcode(4位):具体说明了三种不同的功能:
(3)数量字段(总共 8 字节): 各自表示后面的四个区域的数目。
- 问题区域数量:表示查询问题区域的数量
- 回答区域数量:表示回答区域的数量
- 权威名称服务器数量:表示权威名称服务器的数量
- 附加记录数量:表示附加记录的数量
2.正文 正文部分由查询区域和资源记录区域组成。 (1)查询区域

查询名: 长度可变且无需填充占位符。通常该字段代表的是待检索的具体网站名称(在反向情况下,则指代的是 IPv4 地址;而反向过程则通过 IPv4 地址来推算对应的网站名称)。其构成如下:

查询类型: 规定如下

注:查询类通常为 1 ,表明是 Internet 数据。
(2)资源记录 (RR) 区域(包括回答区域、授权区域和附加区域)

这三个区域分别是:回答区域,授权区域和附加区域,其格式都是一样的。
- 域名(最多两字节或不定长):它与记录类型区域中的名称字段具有相同的格式;
- 查询类型:它表示资源类型的类别,并与查询类型表中的设置一致;
- 查询类:对于互联网信息而言,默认选择IN类;
- 存储时间(TTL):它是用秒来衡量的数字参数,并决定着该记录的有效期;
- 资源数据:它是一个可变长度字段,在特定条件下会返回相应的相关信息。
使用git将本地文件推送到远程仓库永久保存
评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:
在桌面上选择空白处并单击鼠标右键,在窗口左上角单击"此处启动终端"按钮;使用代码cd /data/workspace/myshixun/切换至实训代码存储位置;
执行 git 命令:
1.
2.
3.
git add .
2.git commit -m "Fisrt commit"
3.git push origin master
用户需要在educoder平台进行首次提交操作时,在备注栏填写必要的信息。具体来说,在该系统中,默认情况下需要依次提供educoder平台的登录账号及密码。其中账号部分可选择填入平台提供的登录用户名、手机号码或邮箱地址等信息来源;而密码部分则需根据平台要求设置相应的登录密码。整个操作流程需严格按照系统提示步骤进行操作即可完成。
请记住,在密码输入过程中 Shell 窗口不会显示输入的字符。请特别注意,在密码输入完成后按下回车键就可以完成操作,请切勿使用退格键。
操作要求
请在双击桌面左上方的工作区域文件夹标记为[workspace]后,接着打开实训目录下名为[myshixun]的文件夹,在此操作下将获取的信息存储于本地文本文件message-3.txt中。具体操作流程如下:
(1)打开 Wireshark ,并在过滤器中输入 DNS 。筛选出 DNS 协议报文,并开始捕获报文。然后打开终端,输入命令并执行nslookup www.baidu.com,在 Wireshark 中停止捕获报文; (2)查看报文列表,将 DNS 查询-响应的次数写入文件中; (3)展开最后一轮查询报文,分析协议字段中各字段的值,将 Queries Name 的值写入文件中; (4)展开最后一轮响应报文,分析协议字段中各字段的值,将 Answers Cname 的值写入文件中; (5)展开最后一轮响应报文,将 Answers 中的两个 IP 值写入文件中(两个 IP 地址用”;”隔开); (6)保存文件并使用 git 将文件 message-3.txt 推送到远程仓库,此步骤不影响评测。

第4关:NS 类型的 DNS 解析报文分析
任务目标
任务描述
本关任务:分析 NS 类型的 DNS 报文 Type 字段及其请求与响应内容。
相关知识
为了完成本关任务,你需要掌握:
- 如何捕获 NS 类型的 DNS 报文;
- 如何解析 DNS 报文中的 Type 字段及应答字段。
如何捕获 NS 类型的 DNS 报文
在DNS系统中,在配置完成后会有多个NS记录地址供主域名选择使用;例如,在配置过程中可能会设置如ns1.domain.com和ns2.domain.com等地址;简而言之,在DNS系统中,“NS”记录的作用就是将某个主域名指向指定的DNS服务节点。
当执行 nslookup 操作时,在网络解析任务中可以通过设置选项 -type=NS 来确定与特定域名相关的 DNS 服务器地址。如图所示为操作示意图

解析 DNS 请求报文
使用 Wireshark 能够捕获并处理上述操作相关的网络包列表。过滤 DNS 协议相关的网络包时,请注意识别其中的查询请求报文,并将其详细展示在下图中。

观察到,在请求查询报文中,
其 Type字段值为NS,
属Name Authority服务器。
旨在提供权威名称服务。
此请求数组数据包采用UDP协议传输,
端口号为53。
传输层协议使用 TCP 还是 UDP ?
DNS 采用了 UDP/53 和 TCP/53。当响应报文长度少于 512B时,则采用UDP(由于UDP的最大报文长度为512B);而当响应报文长度超过512B时,则选择TCP。DNS 协议在选择UDP和TCP通常遵循以下两种情况:(1)如果DNS客户端事先已知响应报文长度超出512B,则应当采用TCP连接。
须知:当主域服务器与辅助域服务器在传输区域数据时(往往涉及较大的数据量),因此根据 DNS 的规定(即规定),区域传送应当采用 TCP 协议。
当解析程序无法得知相应应答数据包尺寸时,
常采用UDP协议向DNS服务器发送查询数据包。
如果该应答数据包尺寸超出512B范围,
服务器将丢弃该应答数据包,
并将其标记字段TC设为"1"。
在此情形下,
DNS客户端一般会通过TCP协议机制重新发送原始查询数据包,
从而使后续的数据接收过程得以完成。
解析 DNS 应答报文
检查后续发出的响应报文后会发现有多余的回应数据包存在。这些数据包都是在系统尝试解析baidu.com域名对应的权威服务器时所收到的结果反馈信息中的一部分内容。深入分析这些数据将有助于更好地理解其来源和作用机制。通过进一步展开分析可以获取到第一个应答数据包的具体信息并据此推导出相应结论

该回应部分包含多个服务器地址,在这些服务器地址中第一个类型标识为 SOA(代表权威区域的起始),随后的是 SRV(服务器选择)类型的地址。后续的所有回应都是针对查询请求的回答。
因为前一阶段发送的响应数据包长度超过了512B,并随后又发送了一个查询请求报文,在分析其传输层协议时发现已切换至TCP协议;在回应阶段存在多个应答数据包。对这些应答数据包进行类型分析后发现有两类:一类属于SRV类型服务端口(SRV),另一类属于A型(即Address字段)服务端口(A),其中A字段包含具体的IP地址信息;对最终一个应答数据包进行了详细分析

可以看出,其权威 DNS 服务器的名称为:ns.dns.cluster.local。
使用git将本地文件推送到远程仓库永久保存
评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:
在桌面上任意空白处右击鼠标,在弹出菜单中选择"在此打开终端"程序;使用命令行界面输入以下命令:$ cd /data/workspace/myshixun/然后切换至实训代码存储位置;
执行 git 命令:
1.
2.
3.
git add .
2.git commit -m "Fisrt commit"
3.git push origin master
在该平台上进行操作时,默认情况下"First commit"类似于备注功能,在提交代码前可以选择是否开启此功能以作为初步记录或注释用途。具体操作时,请根据平台要求选择并输入您的账号信息:账号名称可选教育者平台提供的登录用户名、手机号码或邮箱地址;密码则为教育者平台提供的登录密码;请确保所有填写的信息准确无误,并按照系统提示完成相关设置与填写。
请在密码输入过程中提醒注意以下几点:
第一点是在密码输入过程中 shell 窗口并不会显示出所输入的内容;
第二点是按回车键提交即可;
第三点是切勿使用退格键。
操作要求
点击打开工作区的桌面文件夹"workspace"后,在其中依次访问实践目录"myshixun"中的项目文件夹,并将查询信息存储至指定路径下的message-4.txt文档中。随后完成以下步骤:
(1)启动Wireshark应用程序,并在过滤器设置中输入DNS关键字字段以筛选DNS协议报文。随后开始捕获符合条件的DNS报文。
(2)捕获完成后,在终端窗口中执行命令nslookup -type=NS baidu.com以获取目标IP地址信息。
(3)将捕获到的DNS查询请求报文中的目标IP地址记录到指定文件中。
(4)查看详细解析报文信息并记录其中包含的DNS类型值。
(5)进一步分析响应报文内容并记录对应的DNS服务器名称。
(6)完成上述操作后保存修改过的数据文件,并通过git工具将修改后的结果文件提交至远程版本控制系统仓库。

第5关:反向 DNS 解析
采用git协议实现本地文件远程传输至指定远程存储库,并永久保存相关内容。
该系统的核心功能包括以下几个关键模块:
* 反向解析机制:负责对网络通信数据进行解码与分析
* 反向解析的查询报文处理流程:用于接收并解析用户发起的访问请求
* 响应报文的处理逻辑:完成对资源访问状态的信息反馈
具体操作步骤如下:
* 登录系统管理界面
* 导航至文件传输模块
* 输入需要传输的本地文件路径及远程存储库地址
* 设置传输参数并提交操作
为了确保功能正常运行,请按照以下测试流程进行验证:
* 打开浏览器访问指定URL地址
* 在界面上执行相应的测试用例
* 观察系统响应并记录结果信息
任务描述
本关任务:分析 DNS 反向解析报文中的字段特征。
相关知识
为了完成本关任务,你需要掌握:
- 如何分析反向解析查询报文;
- 如何分析反向查询响应报文。
反向解析
在 nslookup 中,“PTR”配置项表示反向解析功能。该过程旨在通过DNS服务器将一个 IP 地址与对应的域名进行绑定。“PTR”域的设置同样可以被视为 A 记录的逆过程。如图所示,“PTR”技术详细阐述了对 IP 地址 39.156.69.79 的完整解析流程。
注意:反向解析时IP地址的顺序也是反的。

反向解析查询报文
下图是 Wireshark 抓获的查询报文。

在Query字段中观察到:此报文的Type字段值为PTR(ReverseTranslationRecord),即实现反向解析过程。其中name字段包含IP地址并附加了in-addr.arpa的部分。
反向解析响应报文
下图是 Wireshark 抓获的反向解析应答报文。

详细查看该报文的答案部分时会发现以下信息:其中查询类型为 PTR;查询名称由 IP 地址加上 in-addr.arpa 子域组成;而响应返回的有效域名称为 79-69-156-39.dynamicdsl.as9105.com。
使用git将本地文件推送到远程仓库永久保存
评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:
在桌面空白处双击鼠标右键,在此处单击以调用终端界面。然后运行以下命令:$ cd /data/workspace/myshixun/ ,即可切换至实训代码存储位置。
执行 git 命令:
1.
2.
3.
git add .
2.git commit -m "Fisrt commit"
3.git push origin master
这里需要用户先输入educoder平台的登录用户名、手机号或者邮箱,并随后根据提示信息进行填写。具体来说,请先输入educoder平台的登录用户名、手机号或者邮箱信息;然后根据系统提示完成相应的操作步骤并提交。
请记住,在密码输入时(或在密码输入的过程中),Shell窗口不会显示所输入的字符。按回车键即可完成该操作。切勿使用退格键。
操作要求
依次双击桌面上的工作区文件夹命名为"workspace"以及实训文件夹命名为"myshixun"。随后,请按照以下步骤操作:将获取的信息存储至名为"message-5.txt"的文档中。
(1)启动Wireshark应用程序,并配置过滤器为DNS协议报文。随后开始捕获相关的DNS报文。(2)在终端中运行命令 nslookup -type=PTR 79.69.156.39 并执行该操作。(3)完成后停止捕获并切换到下一个任务。(4)浏览捕获到的DNS响应包列表。(5)定位到查询响应的数据包。(6)将DNS请求中的类型字段值提取出来;同样地,在名字字段中提取名称信息;同时,在答案字段中提取类型信息;最后深入查看最终回应数据包以获取域名信息;完成所有数据提取后将相关信息保存至指定文件夹;最后将修改后的内容通过git提交至远程仓库

第6关:指定服务器的DNS报文分析
任务说明
指定DNS服务器的域名解析流程
如何通过git将本地文件永久推送到远程仓库
任务说明
指定DNS服务器的域名解析流程
如何通过git将本地文件永久推送到远程仓库
操作要求
任务描述
本关任务:分析指定服务器进行 DNS 解析的报文。
相关知识
为了完成本关任务,你需要掌握:
- 设置指定 DNS 服务器时的 DNS 解析流程;
- 研究指定 DNS 服务器解析的查询与相应报文。
指定 DNS 服务器的域名解析过程
下图使用 Wireshark 抓取了使用114.114.114.114域名服务器解析baidu.com的 DNS 报文。

观察报文列表可知,在经历多轮查询与回应后,在第N轮终于获得了baidu.com的A类地址。依次查看各次查询对应的百度域名如下:baidu.com.default.svc.cluster.local、baidu.com.svc.cluster.local、baidu.com.cluster.local及baidu.com
逐一查看相关应答报文后发现:前几次的应答均为Authoritative Nameserver(SOA类型),即属于域名分区且未提供真实IP地址;仅有最后一次得到了Answers(Type A),其中IP地址包括220.181.38.148和39.156.69.79
使用git将本地文件推送到远程仓库永久保存
评测通关后,需要推送文件到远程仓库,请在评测通关后,执行以下操作:
在桌面上选择空白处并右键点击,在弹出菜单中选择"此处打开终端"选项;然后使用命令cd /data/workspace/myshixun/切换至实训代码仓库所在目录
执行 git 命令:
1.
2.
3.
git add .
2.git commit -m "Fisrt commit"
3.git push origin master
Fisrt commit相当于备注信息。在该平台中,请按照以下方式输入账号信息:首先填写educoder平台的登录用户名或选择手机号/邮箱作为替代。随后设置educoder平台的登录密码。
请特别提醒,在进行密码输入时,请确保以下几点:
在进行密码设置时,请您清楚地了解,在 Shell 窗口中并不会显示您所输入的字符。
您可以在正常状态下完成密码设置后按下回车键来提交。
在此操作中,请切勿使用退格键。
操作要求
请通过以下步骤完成操作:首先,请您使用鼠标左键双击桌面上的工作区文件夹/workspace,随后请将光标移动至该工作区文件夹内,接着点击并拖动鼠标左键来选择工作区文件夹/workspace,随后请再次点击桌面右下角的"此电脑"图标以启动该文件夹,接着请切换至该工作区文件夹内并打开名为myshixun的实训目录,最后将收集到的信息按照要求保存至指定位置即为完成
(1)启动 Wireshark 应用并配置 DNS 过滤器。随后筛选出 DNS 协议报文进行捕获操作。接着在终端中执行命令nslookup baidu.com 114.114.114.114以获取相关DNS查询记录,并在捕获完成后终止抓包过程; (2)对捕获到的DNS查询请求进行解析,并将目标IP地址记录到指定文件中;请判断该IP地址是否为默认DNS服务器地址(填写"是"或"否"); (3)逐一解析每一条DNS查询请求中的Query字段内容,并将其中包含的域名名称提取出来; (4)对于前几个有效的DNS响应报文,请分别提取其响应类型以及对应的域名名称信息; (5)最后分析最后一个有效DNS响应中的详细数据部分,并列出所有相关的域名及其对应的IP地址列表; (6)完成所有数据收集与分析工作后,请将整理好的结果整理成报告文档并提交至项目负责人邮箱;

