DNS抓包分析

Q&A

Q1:DNS?作用?
DNS(Domain Name System),域名系统。由两部分组成:
(1)由分层的DNS服务器实现的分布式数据库
(2)使主机能够查询分布式数据库的应用层协议
DNS的作用是将用户名提供的主机名解析为IP地址。

Q2:DNS服务器类型?
DNS服务器可分为三种,
(1)根DNS服务器,全球目前有13个根服务器
(2)顶级域(TLD)DNS服务器,顶级域包括com,edu,cn.org等
那为什么有的网址是edu.cn?待解答
(3)权威DNS服务器,负责一个域,如mit.edu
(4)本地DNS服务器,每个ISP(如大学,居民区)都有自己的本地DNS服务器,作用是将主机请求转发至DNS上层服务器
三种类型DNS服务器组织的结构如下图所示:
在这里插入图片描述

Q3:DNS解析的过程?

### 使用Wireshark捕获和分析DNS协议数据包 #### 工具简介 Wireshark 是一种强大的网络分析工具,能够实时捕捉网络中的数据包并将这些数据转换成易于理解的形式[^2]。 #### 开始抓取数据包 启动 Wireshark 后可以选择要监控的网络接口。如果目标是无线局域网 (WLAN),则应选择对应的 WLAN 接口进行操作[^3]。 #### 设置过滤条件 为了专注于 DNS 协议的数据流,在开始捕获之前可以设置一个显示过滤器 `dns` 或者更具体的如 `(ip.addr == 192.168.2.112) && dns` 来限定只查看与指定 IP 地址相关的 DNS 数据包。 以下是配置过滤器的一个简单例子: ```bash dns || udp.port == 53 ``` 此命令告诉 Wireshark 只展示那些属于 DNS 查询或者通过 UDP 端口 53 的通信记录。 #### 抓取到的数据解释 当有 DNS 请求发生时,比如客户端尝试解析 www.abc.com.cn 到其对应 IP 地址的过程中,可以看到一系列交互行为被记录下来[^4]: - **查询消息**: 客户端发出请求给本地域名服务器询问特定主机名所关联的 IPv4/IPv6 地址。 - **响应消息**: 域名服务器返回匹配的结果或者是错误指示(例如 NXDOMAIN 表明不存在这样的名字)。 每条 DNS 记录都遵循标准格式定义,包括但不限于头部字段、问题部分以及资源记录等内容[^1]。 #### 示例代码片段 - Python 脚本模拟简单的 DNS 查找 下面提供了一段 python 脚本来演示如何利用 socket 库执行基本的 DNS 解析任务: ```python import socket def resolve_hostname(hostname): try: ip_address = socket.gethostbyname(hostname) print(f"The IP address of {hostname} is {ip_address}") except socket.gaierror as e: print("Could not resolve hostname:", str(e)) resolve_hostname('www.example.com') ``` 上述脚本实现了对 'www.example.com' 主机名称至相应 IP 地址映射关系的功能验证测试。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值