Azure 网络观察程序的工作原理
在订阅的 Azure 区域中创建虚拟网络时,网络观察程序将自动可用。 可以通过在搜索栏中键入网络观察程序,直接在 Azure 门户中访问网络观察程序。
网络监视器拓扑工具
Azure 网络观察程序的拓扑功能允许查看虚拟网络中的所有以下资源。 包括与虚拟网络中的资源关联的资源以及资源之间的关系。
- 子网
- 网络接口
- 网络安全组
- 负载均衡器
- 负载均衡器运行状况探测
- 公共 IP 地址
- 虚拟网络对等互连
- 虚拟网络网关
- VPN 网关连接
- 虚拟机
- 虚拟机规模集
拓扑中返回的所有资源具有以下属性:
- 名称:资源的名称。
- ID:资源的 URI。
- 位置:资源所在的 Azure 区域。
-
关联:与所引用对象的关联列表。 每个关联具有以下属性:
-
AssociationType:引用子对象与父对象之间的关系。 有效值为
Contains和Associated。 - 名称:引用的资源的名称。
- ResourceId:关联中引用的资源的 URI。
-
AssociationType:引用子对象与父对象之间的关系。 有效值为
连接监视器工具
连接监视器在 Azure 网络观察程序中提供统一的端到端连接监视。 连接监视器支持混合部署和 Azure 云部署。 可以使用连接监视器工具测量资源之间的延迟。 连接监视器可以检测影响连接的更改,例如网络配置更改或修改 NSG 规则。 可以将连接监视器配置为定期探测 VM,以查找失败或更改。 连接监视器可以诊断问题,并提供有关问题发生的原因以及修复问题所要执行的步骤的说明。
若要使用连接监视器进行监视,需要在监视的主机上安装监视代理。 连接监视器使用轻型可执行文件运行连接检查,无论是主机位于 Azure 虚拟网络中还是本地网络。 使用 Azure VM,可以安装网络观察程序代理 VM,也称为网络观察程序扩展。
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:故障排除结束的时间。
-
代码:如果存在单个诊断失败,此值为
UnHealthy。 -
结果:连接或虚拟网络网关上返回的结果集合。
- id:错误类型。
- 摘要:错误摘要。
- 详细:故障的详细说明。
- recommendedActions:建议的操作集合。
- actionText:描述要执行的动作的文本。
- actionUri:描述应采取行动的文档的 URI。
- actionUriText:操作文本的简短说明。