使用 PowerShell 通过 Azure 网络观察程序中的“下一跃点”功能找到下一跃点类型

“下一跃点”是网络观察程序的一项功能,提供基于指定的虚拟机获取下一跃点类型和 IP 地址的功能。 此功能对于确定离开虚拟机的流量是否通过网关、Internet 或虚拟网络到达其目标很有用。

开始之前

在此方案中,将使用 Azure 门户来查找下一跃点类型和 IP 地址。

此方案假定已按照创建网络观察程序中的步骤创建网络观察程序。 此外,本方案假设要使用一个包含有效虚拟机的资源组。

方案

本文中介绍的方案使用“下一跃点”(网络观察程序的一项功能)找出资源的下一跃点类型和 IP 地址。 若要了解有关下一跃点的详细信息,请访问下一跃点概述

检索网络观察程序

第一步是检索网络观察程序实例。 将 $networkWatcher 变量传递给下一跃点验证 cmdlet。

$nw = Get-AzurermResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq "chinaeast" } 
$networkWatcher = Get-AzureRmNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName 

获取虚拟机

“下一跃点”功能将从虚拟机返回下一跃点和下一跃点的 IP 地址。 cmdlet 需要虚拟机的 Id。 如果已知道要使用的虚拟机的 ID,则可以跳过此步骤。

$VM = Get-AzurermVM -ResourceGroupName "testrg" -Name "testvm1"

Note

“下一跃点”功能要求 VM 资源已分配,从而可以运行。

获取网络接口

需要虚拟机上的 NIC 的 IP 地址,在此示例中我们会在虚拟机上检索 NIC。 如果已知道要在虚拟机上测试的 IP 地址,则可以跳过此步骤。

$Nics = Get-AzureRmNetworkInterface | Where {$_.Id -eq $vm.NetworkProfile.NetworkInterfaces.Id.ForEach({$_})}

获取下一跃点

现在我们调用 Get-AzureRmNetworkWatcherNextHop cmdlet。 我们向该 cmdlet 传递网络观察程序、虚拟机 ID、源 IP 地址和目标 IP 地址。 在此示例中,目标 IP 地址属于另一个虚拟网络中的 VM。 在两个虚拟网络之间有一个虚拟网络网关。

Get-AzureRmNetworkWatcherNextHop -NetworkWatcher $networkWatcher -TargetVirtualMachineId $VM.Id -SourceIPAddress $nics[0].IpConfigurations[0].PrivateIpAddress  -DestinationIPAddress 10.0.2.4 

查看结果

完成后,将提供结果。 将返回下一跃点 IP 地址和它所属的资源类型。 在此方案中,它是虚拟网络网关的公共 IP 地址。

NextHopIpAddress NextHopType           RouteTableId 
---------------- -----------           ------------ 
13.78.238.92     VirtualNetworkGateway Gateway Route

以下列表显示当前可用的 NextHopType 值:

下一跃点类型

  • Internet
  • VirtualAppliance
  • VirtualNetworkGateway
  • VnetLocal
  • HyperNetGateway
  • VnetPeering

后续步骤

通过访问使用网络观察程序进行 NSG 审核,了解如何以编程方式查看网络安全组设置