检查和分析网络观察程序数据包捕获文件
使用 Azure 网络观察程序的数据包捕获功能,可在 Azure 虚拟机 (VM) 和虚拟机规模集上启动和管理捕获会话,方式如下:
- 通过 Azure 门户、PowerShell 和 Azure CLI。
- 通过 SDK 和 REST API 以编程方式进行。
借助数据包捕获,可通过以随时可用的格式提供信息,来解决需要数据包级数据的方案。 利用免费工具检查数据,可以检测传入和传出 VM 或规模集的通信并洞察网络流量。 数据包捕获数据的示例用途包括:调查网络或应用程序问题、检测网络滥用和入侵企图,以及保持合规性。
本文介绍如何使用流行的开源工具打开网络观察程序提供的数据包捕获文件。 此外,本文还举例说明了如何计算连接延迟、识别异常流量,以及检查网络统计信息。
先决条件
通过网络观察程序创建的数据包捕获文件。 有关详细信息,请参阅使用 Azure 门户管理虚拟机的数据包捕获。
Wireshark。 有关详细信息,请参阅 Wireshark 网站。
计算网络延迟
本示例说明如何查看两个终结点之间发生的传输控制协议 (TCP) 对话的初始往返时间 (RTT)。
建立 TCP 连接后,在连接中发送的前三个数据包遵循一种称为“三次握手”的模式。 通过检查此握手中发送的前两个数据包(客户端发出的初始请求以及服务器发出的响应),我们可以计算延迟。 此延迟即为 RTT。 有关 TCP 协议和三次握手的详细信息,请参阅通过 TCP/IP 进行三次握手的说明。
启动 WireShark。
从数据包捕获会话加载 .cap 文件。
在捕获中选择 [SYN] 数据包。 此数据包是客户端发送的第一个数据包,用于启动 TCP 连接。
右键单击数据包,选择“关注”,然后选择“TCP 流”。
展开 [SYN] 数据包的“传输控制协议”部分,然后展开“标志”部分。
确认“Syn”位设置为 1,然后右键单击它。
选择“应用为筛选器”,然后选择“...并选择”以显示 TCP 流中“Syn”位设置为 1 的数据包。
TCP 握手中涉及的前两个数据包是 [SYN]和 [SYN, ACK] 数据包。 握手中不需要最后一个数据包,即 [ACK] 数据包。 客户端发送 [SYN] 数据包。 服务器收到 [SYN] 数据包后,将发送 [ACK] 数据包,表示确认收到客户端发来的 [SYN] 数据包。
选择 [SCK] 数据包。
展开“SEQ/ACK 分析”部分以显示初始 RTT(以秒为单位)。
查找不需要的协议
可以在 Azure 虚拟机上运行许多应用程序。 其中的许多应用程序有时可能在未得到明确许可的情况下通过网络通信。 使用数据包捕获来记录网络通信,可以调查应用程序如何通过网络进行通信。 该调查有助于识别和解决任何潜在问题。
在本示例中,我们会分析数据包捕获以查找是否存在不需要的协议,这类协议可能表示虚拟机上运行的应用程序正在进行未经授权的通信。
打开 Wireshark。
从数据包捕获会话加载 .cap 文件。
在“统计信息”菜单上,选择“协议层次结构”。
“协议层次结构统计信息”窗口列出在捕获会话期间使用的所有协议,以及为协议传输和接收的数据包数目。 在查找虚拟机或网络上不需要的网络流量时,此视图可能很有用。
此示例显示了用于对等文件共享的 BitTorrent 协议的流量。 作为管理员,如果你不希望此虚拟机上出现 BitTorrent 流量,则可以:
- 删除此虚拟机上安装的对等软件。
- 使用网络安全组或防火墙阻止该流量。
查找目标和端口
在监视网络上的应用程序和资源或者对其进行故障排除时,了解流量类型、终结点以及通信端口非常重要。 通过分析数据包捕获文件,可以了解与虚拟机通信的顶级目标以及它们使用的端口。
启动 WireShark。
从数据包捕获会话加载 .cap 文件。
在“统计信息”菜单上,选择“IPv4 统计信息”,然后选择“目标和端口”。
“目标和端口”窗口列出在捕获会话期间 VM 与之通信的顶级目标和端口。 使用筛选器,仅显示通过特定协议进行的通信。 例如,通过在“显示筛选器”框中输入 rdp,可以查看是否有任何通信使用了远程桌面协议 (RDP)。
同样,可以筛选你感兴趣的其他协议。
下一步
若要了解网络观察程序的其他网络诊断工具,请参阅: