mDNS(Multicast DNS)抓包与分析指南
mDNS(多播DNS)是零配置网络(如Bonjour、Avahi)的核心协议,常用于局域网设备发现(如打印机、IoT设备)。以下是使用Wireshark捕获和分析mDNS流量的方法:
1. 抓包设置
(1) 选择正确的网卡
- 物理机:选择连接局域网的接口(如
eth0
、wlan0
)。 - 虚拟机:若需捕获虚拟机的mDNS流量,确保虚拟机网络模式为桥接(Bridged)。
(2) 过滤条件
在Wireshark中输入以下过滤表达式:
udp.port == 5353
或更精确的mDNS协议过滤:
mdns
2. mDNS关键字段解析
字段 | 说明 |
---|---|
Standard Query |
设备查询服务(如 _http._tcp.local ) |
Standard Query Response |
响应提供的服务信息 |
PTR Record |
服务类型指针(如打印机服务名称) |
A/AAAA Record |
IPv4/IPv6地址记录 |
TXT Record |
服务的附加文本信息 |
3. 常见场景分析
(1) 设备发现请求
Source: 192.168.1.100 → Destination: 224.0.0.251 (mDNS组播地址)
Protocol: MDNS Standard Query PTR _services._dns-sd._udp.local
- 含义:设备询问局域网内可用的服务类型。
(2) 服务响应示例
Source: 192.168.1.149 → Destination:224 .0 .0 .251
Protocol: MDNS Standard Query Response PTR _printer._tcp.local A192 .168 .1149 TXT""
- 含义:IP为
192.168.1.149
的设备声明自己是一台打印机。
4. Linux/macOS命令行工具
(1) 发送mDNS查询
# Linux (Avahi)
avahi-browse -a -r
# macOS (Bonjour)
dns-sd -B _services._dns-sd._udp local
(2) 监听mDNS流量
# tcpdump直接捕获5353端口
sudo tcpdump -i eth0 -n udp port5353
5.Wireshark高级技巧
- 统计图表:
点击Statistics → I/O Graph
,筛选udp.dstport==5353
,观察流量频率。 - 服务列表导出:
右键某个PTR记录 →Follow → UDP Stream
,查看完整服务描述。
6.Note注意事项
如果无法捕获到 mdn s数据包,请检查:
✅确认防火墙允许组播(224.x.x.x):
sudo iptables -L | grep ACCEPT | grep224
✅Windows需启用”网络发现”功能.
✅路由器可能阻止了跨VLAN的组播(需IGMP snooping配置).
如果需要分析特定设备的交互过程,可以提供抓包文件进一步解读!
内容由零声教学AI助手提供,问题来源于学员提问