Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
本文介绍如何使用 Azure Network Watcher next hop 工具来排查和诊断虚拟机(VM)路由问题,从而阻止它与其他资源正确通信。
先决条件
具有活动订阅的Azure帐户。 创建试用版订阅。
Azure PowerShell。
可以在本地安装 Azure PowerShell 来运行 cmdlet。 若要查找已安装的版本,请运行 Get-Module -ListAvailable Az。 如果在本地运行 PowerShell,请使用 Connect-AzAccount -Environment AzureChinaCloud cmdlet 登录到Azure。
创建虚拟机
在创建 VM 之前,必须创建该 VM 所属的资源组。 使用 New-AzResourceGroup 创建资源组。 以下示例在“chinaeast”位置创建名为“myResourceGroup”的资源组。
New-AzResourceGroup -Name myResourceGroup -Location ChinaEast
使用 New-AzVM 创建 VM。 运行此步骤时,会提示输入凭据。 输入的值将配置为用于 VM 的用户名和密码。
$vM = New-AzVm `
-ResourceGroupName "myResourceGroup" `
-Name "myVm" `
-Location "China East"
创建 VM 需要几分钟时间。 在创建好 VM 且 PowerShell 返回输出之前,请勿继续执行剩余的步骤。
测试网络通信
若要测试与Network Watcher的网络通信,必须先在要测试的 VM 所在的区域中启用network watcher,然后使用Network Watcher的下一跃点功能测试通信。
启用网络观察程序
如果已在中国东部区域启用了网络观察程序,请使用 Get-AzNetworkWatcher 检索网络观察程序。 以下示例检索位于 NetworkWatcherRG 资源组中的NetworkWatcher_chinaeast的现有网络观察程序:
$networkWatcher = Get-AzNetworkWatcher `
-Name NetworkWatcher_chinaeast `
-ResourceGroupName NetworkWatcherRG
如果尚未在中国东部区域启用网络观察程序,请使用 New-AzNetworkWatcher 在中国东部区域创建网络观察程序:
$networkWatcher = New-AzNetworkWatcher `
-Name "NetworkWatcher_chinaeast" `
-ResourceGroupName "NetworkWatcherRG" `
-Location "China East"
使用下一个跃点
Azure自动创建到默认目标的路由。 可以创建自定义路由来覆盖默认路由。 有时,自定义路由可能会导致通信故障。 要测试来自 VM 的路由,请使用 Get-AzNetworkWatcherNextHop 命令确定流量发送到特定地址时的下一个路由跃点。
测试从 VM 发往 www.bing.com 的某个 IP 地址的出站通信:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 13.107.21.200
数秒钟后,输出结果指示 NextHopType 为“Internet” ,RouteTableId 为“系统路由” 。 此结果指示存在通往目标的有效路由。
测试从 VM 发往 172.31.0.100 的出站通信:
Get-AzNetworkWatcherNextHop `
-NetworkWatcher $networkWatcher `
-TargetVirtualMachineId $VM.Id `
-SourceIPAddress 192.168.1.4 `
-DestinationIPAddress 172.31.0.100
输出结果指示“NextHopType”为“无”,“RouteTableId”仍为“系统路由”。 此结果表明,虽然存在有效的系统路由通往目标,但没有可将流量路由到目标的下一跃点。
查看路由详细信息
若要进一步分析路由情况,请使用 Get-AzEffectiveRouteTable 命令查看网络接口的有效路由:
Get-AzEffectiveRouteTable `
-NetworkInterfaceName myVm `
-ResourceGroupName myResourceGroup |
Format-table
将返回包含以下文本的输出:
Name State Source AddressPrefix NextHopType NextHopIpAddress
---- ----- ------ ------------- ----------- ----------------
Active Default {192.168.0.0/16} VnetLocal {}
Active Default {0.0.0.0/0} Internet {}
Active Default {10.0.0.0/8} None {}
Active Default {100.64.0.0/10} None {}
Active Default {172.16.0.0/12} None {}
正如在之前的输出中所看到的,具有 AddressPrefix 为 0.0.0.0/0 的路由会将所有未归入其他路由地址前缀内的流量通过 Internet 这一下一跳进行路由。 同时还可在输出结果中看到,虽然有一个到 172.16.0.0/12 前缀的默认路由(其中包括地址 172.31.0.100),但nextHopType为None。 Azure创建到 172.16.0.0/12 的默认路由,但在有原因之前不会指定下一跳类型。 例如,如果将 172.16.0.0/12 地址范围添加到虚拟网络的地址空间,Azure将 nextHopType 更改为路由的 Virtual network。 此时进行检查会将“nextHopType”显示为“虚拟网络” 。
清理资源
如果不再需要资源组及其包含的所有资源,请使用 Remove-AzResourceGroup 将其删除:
Remove-AzResourceGroup -Name myResourceGroup -Force
后续步骤
本文介绍了如何创建 VM 并根据该 VM 诊断网络路由问题。 你了解到,Azure创建多个默认路由并测试了到两个不同的目标的路由。 详细了解 Azure 中的路由以及如何创建自定义路由。
对于出站 VM 连接,还可以使用 Network Watcher 的 连接故障排除功能来确定 VM 与终结点之间的延迟和允许和拒绝的网络流量。 可以使用 Network Watcher 连接监视器功能监视 VM 与终结点(如 IP 地址或 URL)之间的通信情况变化。 有关详细信息,请参阅监视网络连接。