Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
本文介绍如何使用 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)之间的通信情况变化。 有关详细信息,请参阅监视网络连接。