排查 Microsoft Azure 中的虚拟网络连接问题
排查 Microsoft Azure 中的虚拟网络连接问题
本文详细介绍了在Microsoft Azure中排查虚拟网络连接问题的多种方法,包括对等互连、VPN网关传输、传递性问题、中心辐射型配置、全球对等互连连接、VNet到VNet连接以及服务链等多个方面的故障排查步骤。
确定是否允许对等机之间的流量
通过对等互连,可以在 Azure 中连接两个或多个虚拟网络。 虚拟网络之间的流量通过 Microsoft 的主干基础结构路由,而不通过网关或公共 Internet。 Azure 中有两种类型的对等互连:
虚拟网络对等互连 - 连接同一个 Azure 区域中的虚拟网络。
全球虚拟网络对等互连 - 连接不同 Azure 区域中的虚拟网络。
全球虚拟网络对等互连具有以下约束:
一个虚拟网络中的资源无法与全局对等互连虚拟网络中基本内部负载均衡器 (ILB) 的前端 IP 地址通信。
使用基本负载均衡器的某些服务无法通过全局虚拟网络对等互连正常工作。
不能跨云进行对等互连。
进行对等互连的虚拟网络的 IP 地址空间不得重叠。
当两个虚拟网络对等互连时,无法从虚拟网络的地址空间添加或删除地址范围。 若要添加或删除地址范围,请删除对等互连,添加或删除地址范围,然后重新创建对等互连。
不能对等互连两个通过经典部署模型创建的虚拟网络。
Azure 内置名称解析不会解析对等互连虚拟网络中的名称。 若要解析其他虚拟网络中的名称,必须使用 Azure 专用区域或自定义 DNS 服务器。
一个虚拟网络可以对等互连到另一个虚拟网络,也可以通过 Azure 虚拟网关连接。 当虚拟网络同时通过对等互连和网关连接时,虚拟网络的流量会根据对等互连配置流动,而不是通过网关流动。
在成功配置虚拟网络对等互连之后,必须重新下载点到站点 VPN 客户端,以确保将新路由下载到客户端。
若要排查对等机之间的连接问题,请执行以下操作:
检查对等互连连接的状态:
已启动表示没有双向链接。 例如,若要将 VNetA 对等互连到 VNetB,必须创建两个链接,一个从 VNetA 到 VNetB,另一个从 VNetB 到 VNetA。 创建这两个链路后,状态会更改为“已连接”。
已断开连接表示其中一个链接已删除。 若要重新建立对等互连连接,需要删除并重新创建两个链接。
检查两个 VNet 是否没有匹配或重叠的地址范围。
排查 VPN 网关传输问题
网关传输是一个对等互连属性,允许一个虚拟网络在对等互连虚拟网络中使用 VPN 网关进行 VNet 到 VNet 的连接。 下图显示了网关传输如何与虚拟网络对等互连配合使用:
当虚拟网络全局对等互连时,以下约束适用:
一个虚拟网络中的资源无法与全球对等互连虚拟网络中基本 ILB 的前端 IP 地址通信。
使用基本负载均衡器的某些服务无法通过全局虚拟网络对等互连正常工作。 有关详细信息,请参阅与全球 VNet 对等互连和负载均衡器相关的约束有哪些?。
若要排查 VPN 网关传输问题,请尝试以下操作:
如果辐射虚拟网络已有 VPN 网关,则由于对等互连限制,辐射虚拟网络不支持“使用远程网关”选项。
对于同一区域中辐射虚拟网络之间的中心辐射型网络连接问题,中心网络必须包含一个 NVA。 在已将 NVA 设置为下一跃点的辐射虚拟网络中配置 UDR,并在中心虚拟网络中启用“允许转发的流量”。
排查对等机之间的传递性问题
可传递对等互连是指:
将 VNetA 对等互连到 VNetB。
将 VNetB 对等互连到 VNetC。
默认情况下,VNetA 不与 VNetC 对等互连。
若要在 VNetA 和 VNetC 之间实现对等互连,必须将它们对等互连。 或者,使用中心辐射型配置,并经过中心的一个 NVA。
排查中心辐射型 VNet 配置问题
在中心辐射型配置中,中心虚拟网络充当与多个辐射虚拟网络的连接的中心点。 中心还可以是到本地数据中心的连接点。 分支虚拟网络与中心对等互连,可用于隔离工作负载。
下面介绍了如何排查中心辐射型虚拟网络与本地资源之间的连接问题。
如果网络使用第三方 NVA,请检查以下内容:
软件更新。
服务帐户设置和功能。
虚拟网络子网上的用户定义的路由 (UDR),用于将流量定向到 NVA。
虚拟网络子网上的 UDR,用于定向来自 NVA 的流量。
NVA 内的路由表和规则(例如,从 NIC1 到 NIC2)。
在 NVA NIC 上进行跟踪以验证网络流量的接收和发送。
使用标准 SKU 和公共 IP 时,必须创建一个 NSG,并有明确的规则允许将流量路由到 NVA。
Azure 上 NVA 的最低配置。
如果网络使用 VPN 网关,请检查以下内容:
如果网络不使用第三方 NVA 或 VPN 网关,中心虚拟网络和辐射虚拟网络是否具有 VPN 网关? 如果辐射虚拟网络已有 VPN 网关,则辐射虚拟网络不支持“使用远程网关”选项。 这是因为虚拟网络对等互连存在限制。
对于站点到站点连接或 Azure ExpressRoute 连接,请检查以下原因,这些原因会导致从本地连接到远程虚拟网络时出现问题:
如果虚拟网络有网关,请验证是否选中了“允许转发的流量”复选框。
如果虚拟网络没有网关,请验证是否选中了“使用远程网关”复选框。
让网络管理员检查你的本地设备,验证是否为所有这些设备添加了远程虚拟网络地址空间。
对于点到站点连接:
在具有网关的虚拟网络上,验证是否选中了“允许转发的流量”复选框。
在没有网关的虚拟网络上,验证是否选中了“使用远程网关”复选框。
下载并重新安装点到站点客户端包。 新对等互连的虚拟网络路由不会自动将路由添加到点到站点客户端。
排查全球对等互连连接问题
排查对等互连虚拟网络之间的连接问题:
使用具有必要角色和权限的帐户登录到 Azure 门户。
选择虚拟网络,选择“对等互连”,然后选择“状态”字段。
如果状态为“已断开连接”,请删除这两个虚拟网络中的对等互连,然后重新创建。
如果状态为“已连接”,请检查流量流。
在源 VM 到目标 VM 之间进行连接故障排除和 IP 流验证,确定是否某个 NSG 或 UDR 导致流量流受到干扰。
如果使用防火墙或 NVA,请执行以下操作:
记录 UDR 参数,以便在完成此步骤后可以还原这些参数。
从源 VM 子网或 NIC 中删除指向 NVA(充当下一跃点)的 UDR。 验证绕过 NVA 的从源 VM 到目标的直接连接。
进行网络跟踪:
- 在目标 VM 上启动网络跟踪。 对于 Windows,可以使用 Netsh 。 对于 Linux,请使用 TCPDump 。
- 运行从源到目标 IP 的 TcpPing 或 PsPing 。 这是 TcpPing 命令的一个示例:
tcping64.exe -t <destination VM address> 3389
完成 TcpPing 后,停止目标上的网络跟踪。 如果从源传入的数据包抵达目标,则表示没有网络问题。 检查 VM 防火墙以及侦听该端口的应用程序以找出配置问题。
备注
无法通过全球虚拟网络对等互连(虚拟网络位于不同的区域中)连接到以下资源类型:
基本 ILB SKU 后面的 VM
Redis 缓存(使用基本 ILB SKU)
应用程序网关(使用基本 ILB SKU)
规模集(使用基本 ILB SKU)
Service Fabric 群集(使用基本 ILB SKU)
SQL Server Always-on(使用基本 ILB SKU)
应用服务环境(使用基本 ILB SKU)
API 管理(使用基本 ILB SKU)
Microsoft Entra 域服务(使用基本 ILB SKU)
有关详细信息,请参阅全局对等互连的要求和约束。
排查 VNet 到 VNet 连接问题
请执行以下操作:
检查是否使用动态路由而不是静态路由配置了网关。 不支持静态路由。
检查 VPN 连接数。 对于基本和标准动态路由网关,特定 VNet 可以连接到的最大 VPN 连接和 VNet 数当前为 10。 对于高性能网关,该值为 30。
检查这两个 VNet 上的地址前缀,以确保两个 VNet 之间没有地址空间重叠。
对服务链进行故障排除
服务链是指通过用户定义的路由将流量从一个虚拟网络发送到对等互连网络中的 NVA。 在对等互连网络中,可将指向虚拟机的用户定义的路由配置为下一跃点 IP 地址。 需要设置路由表并将其关联到子网。 有关路由网络流量的分步说明,请参阅教程:在 Azure 门户中使用路由表路由网络流量。
使用 PowerShell,可以使用 tracert 测试流量的路由:
tracert myvmprivate
这将显示跟踪路由,你将看到流量是否正在经过预期路由。 tracert 的响应类似于:
Tracing route to myvmprivate.q04q2hv50taerlrtdyjz5nza1f.bx.internal.cloudapp.net [10.0.1.4] over a maximum of 30 hops:
1 1 ms * 2 ms myvmnva.internal.cloudapp.net [10.0.2.4]
2 2 ms 1 ms 1 ms myvmprivate.internal.cloudapp.net [10.0.1.4]
Trace complete.