Azure 网络观察程序的工作原理

已完成

当你在订阅所在的 Azure 区域中创建虚拟网络时,系统将自动提供网络观察程序。 可以通过在“搜索”栏中键入“网络观察程序”来直接在 Azure 门户访问网络观察程序。

Screenshot that shows how to search for Network Watcher in the Azure portal.

网络观察程序拓扑工具

通过 Azure 网络观察程序的拓扑功能,可查看虚拟网络中的所有以下资源。 包括可查看与虚拟网络中的资源关联的资源及其相互关系。

  • 子网
  • 网络接口
  • 网络安全组
  • 负载均衡器
  • 负载均衡器运行状况探测
  • 公共 IP 地址
  • 虚拟网络对等互连
  • 虚拟网络网关
  • VPN 网关连接
  • 虚拟机
  • 虚拟机规模集

在拓扑中返回的所有资源具有以下属性:

  • 名称:资源的名称。
  • ID:资源的 URI。
  • 位置:资源所处的 Azure 区域。
  • 关联:引用对象的关联列表。 每个关联包含以下属性:
    • AssociationType:引用子对象和父对象之间的关系。 有效值为 ContainsAssociated
    • 名称:引用资源的名称。
    • ResourceId:在关联中引用的资源的 URI。

连接监视器工具

连接监视器在 Azure 网络观察程序中提供统一的端到端连接监视。 连接监视器支持混合和 Azure 云部署。 可以使用连接监视器工具测量资源之间的延迟。 连接监视器可检测会影响连接性的更改,例如网络配置更改或对 NSG 规则的修改。 可以将连接监视器配置为定期探测 VM 以查找故障或更改。 连接监视器可以诊断问题,解释问题发生的原因,并提供可用于修复问题的步骤。

Diagram that shows how Connection Monitor interacts with Azure Virtual Machines, non-Azure hosts, endpoints, and data storage locations.

若要使用连接监视器进行监视,需要在你监视的主机上安装监视代理。 连接监视器使用轻型可执行文件来运行连接性检查,而无论主机是位于 Azure 虚拟网络还是本地网络中。 可以使用 Azure VM 安装网络观察程序代理 VM(也称为网络观察程序扩展)。 对于本地计算机,可以通过安装 Log Analytics 代理来启用此功能。

IP 流验证

IP 流验证工具使用基于 5 元组数据包参数的验证机制来检测 VM 是允许还是拒绝数据包入站或出站。 在该工具中,可指定本地和远程端口、协议(TCP 或 UDP)、本地 IP、远程 IP、VM 和 VM 的网络适配器。

下一跃点

来自 IaaS VM 的流量将根据与网络接口 (NIC) 关联的有效路由发送到目标。 “下一个跃点”功能可获取来自特定 VM 和 NIC 的数据包的下一跃点类型和 IP 地址。 了解下一个跃点可帮助你确定流量是否定向到预定目标,或流量是否无处发送。 路由配置不正确(流量定向到本地位置或虚拟设备)可能会导致连接性问题。 “下一跃点”功能也返回与下一跃点关联的路由表。 如果路由定义为用户定义的路由,则将返回该路由。 否则,下一跃点返回 System Route

有效安全规则

网络安全组 (NSG) 根据数据包的源和目标 IP 地址及端口号筛选数据包。 多个 NSG 可应用于 Azure 虚拟网络上的 IaaS 资源。 通过考虑应用于资源的所有 NSG 中应用的所有规则,有效安全规则工具让你能够确定某些流量可能被拒绝或允许的原因。

数据包捕获

数据包捕获是通过网络观察程序远程启动的虚拟机扩展。 此功能通过使用操作系统工具或第三方实用工具,减轻了在特定虚拟机上手动运行数据包捕获的负担。 可通过门户、PowerShell、Azure CLI 或 REST API 来触发数据包捕获。 网络观察程序可用来为捕获会话配置筛选器,从而确保捕获要监视的流量。 筛选器基于 5 元组(协议、本地 IP 地址、远程 IP 地址、本地端口和远程端口)信息。 捕获的数据存储在本地磁盘或存储 Blob 中。

排查连接问题

连接故障排除工具可检查源和目标 VM 之间的 TCP 连接性。 可使用 FQDN、URI 或 IP 地址指定目标 VM。 如果连接成功,则会显示有关通信的信息,其中包括:

  • 延迟(毫秒)。
  • 已发送的探测数据包数。
  • 到达目标的完整路由中的跃点数。

如果连接失败,该工具将显示有关错误的详细信息。 你可能会看到以下错误类型:

  • CPU:由于 CPU 使用率高,连接失败。
  • 内存:由于内存使用率高,连接失败。
  • GuestFirewall:连接被 Azure 外部的防火墙阻止。
  • DNSResolution:无法解析目标 IP 地址。
  • NetworkSecurityRule:连接被 NSG 阻止。
  • UserDefinedRoute:路由表中存在不正确的用户路由。

VPN 故障排除

网络观察程序提供对网关和连接进行故障排除的功能。 可通过门户、PowerShell、Azure CLI 或 REST API 调用该功能。 调用时,网络观察程序会诊断网关或连接的运行状况,然后返回相应结果。 该请求是一个长时间运行的事务。 返回的初步结果提供了资源的总体运行状况。

以下列表描述了通过调用 VPN 故障排除 API 返回的值:

  • startTime:故障排除开始的时间。
  • endTime:故障排除结束的时间。
  • code:如果单次诊断失败,此值为 UnHealthy
  • 结果:连接或虚拟网络网关上返回的结果集合。
    • ID:错误类型。
    • summary:错误摘要。
    • detailed:对错误的详细说明。
    • recommendedActions:要执行的建议操作集合。
    • actionText:描述要采取的操作的文本。
    • actionUri:描述要采取的操作的文档的 URI。
    • actionUriText:操作文本的简短说明。