Wireshark 是一种开源工具,可对线程栈中的网络协议进行解码,例如 IEEE 802.15.4、6LoWPAN、IPv6、MLE(网格链接建立)、UDP 和 CoAP。
Pyspinel n 探器工具会连接到线程 NCP 或 RCP 设备,并将其转换为混杂的数据包 探器,从而生成 pcap(数据包捕获)流,以便直接保存或传输给 Wireshark。
如需将 Wireshark 与 Pyspinel 配合使用,请参阅下一步中的安装建议。您还需要配置 Wireshark 才能正确显示线程数据包并接收 RSSI 测量结果。
安装 Wireshark
Linux
打开终端并运行以下命令以下载并安装 Wireshark:
sudo add-apt-repository ppa:wireshark-dev/stable
sudo apt-get update
sudo apt-get install wireshark
我们建议您以非 root
用户的身份运行 Wireshark。为此,请重新配置该软件包:
sudo dpkg-reconfigure wireshark-common
当您看到提示“是否应该让非超级用户可以获取数据包?”的对话框时,请选择是,然后添加 wireshark
用户并更新文件权限:
sudo adduser $USER wireshark
sudo chmod +x /usr/bin/dumpcap
macOS 和 Windows
下载并安装 Wireshark。如需优化操作系统的安全性,请参阅 Wireshark — 关于捕获权限的平台特定信息。
配置 Wireshark 协议
要配置协议,请在 Wireshark 中选择偏好设置...,然后展开协议部分。
6 人
从协议列表中选择 6LoWPAN,验证或更改以下设置:
- 取消选中根据 RFC 4944 派生 ID。
- 使用目标线程网络的 Mesh 本地前缀更新 Context 0。
Wireshark 使用上下文配置来解析压缩的 IPv6 地址,并正确显示 IPv6 源地址和目标地址。
如需显示网关上配置的其他网格前缀的地址,请使用这些前缀更新其他上下文 ID。
如需获取特定网格前缀的上下文 ID,请查看任何 MLE 数据响应消息中的线程网络数据 TLV。例如:
Context 1: fd00:7d03:7d03:7d03::/64
CoAP
从协议列表中选择 CoAP,并将 CoAP UDP Port 设置为 61631。这可确保显示 TMF 消息(例如地址请求)。
IEEE 802.15.4
从协议列表中选择 IEEE 802.15.4,然后验证或更改以下设置:
- 将 802.15.4 以太网类型(采用十六进制格式)设置为“0x809a”。
- 将安全套件设置为“AES-128 加密,32 位完整性保护”。
点击解密密钥旁边的修改...按钮,您可以在其中添加用于解密数据包的线程网络主密钥。
- 点击 + 以添加解密密钥。
- 在解密密钥列中输入线程网络主密钥。
- 输入“1”作为解密密钥索引。
从密钥哈希列列表框中选择线程哈希。
点击 OK 以保存解密密钥。
会话
从协议列表中选择 Thread,验证或更改以下设置:
- 对于线程序列计数器,请输入“00000000”。
- 取消选中使用 PAN ID 作为主密钥的前两个八位字节。
- 选中自动获取线程顺序计数器。
点击确定按钮以保存任何协议更改。
某些线程流量可能被视为 ZigBee 协议。要正确显示这两个协议,请在 Wireshark 中修改已启用的协议:
- 在 Wireshark 中,转到 Analyze,然后点击 Enabled Protocols(已启用的协议)。
取消选中以下协议:
- LwMesh
- ZigBee
- ZigBee Green 电源
配置 Wireshark RSSI
如需在 Wireshark 中显示 RSSI,请执行以下操作:
- 选择 Preferences...(偏好设置...)并展开 Protocols(协议)部分,然后点击 IEEE 802.15.4。
设置 FCS 格式:
点击 OK 以保存并返回 Preferences 菜单。
在偏好设置中,选择外观,然后选择列。
添加新条目:
- 标题:RSSI
- 类型:自定义
- 字段:wpan.rssi