Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
本文介绍如何使用 Azure Network Watcher next hop 工具来排查和诊断 VM 路由问题,防止它与其他资源正确通信。
先决条件
具有活动订阅的Azure帐户。 创建试用版订阅。
Azure CLI。
可以在本地安装Azure CLI来运行命令。 本文需要 Azure CLI 2.0 或更高版本。 运行 az --version 命令查找安装的版本。 如果在本地运行Azure CLI,请使用 az login 命令登录到Azure。
创建资源组
使用 az group create 创建资源组。 以下示例在“chinaeast”位置创建名为“myResourceGroup”的资源组:
az group create --name myResourceGroup --location chinaeast
创建网络安全组
使用 az network nsg create 创建网络安全组。 网络安全组中的默认规则阻止来自 Internet 的所有入站访问。
az network nsg create \
--resource-group myResourceGroup \
--name myNSG
注释
网络安全组的默认规则阻止来自 Internet 的所有入站访问,包括 SSH。 若要连接到虚拟机,请使用Azure Bastion。 有关详细信息,请参阅 Quickstart:使用默认设置部署Azure Bastion。
创建虚拟机
使用 az vm create 创建 VM。 以下示例创建名为 myVm 的 VM。 如果默认密钥位置中尚不存在 SSH 密钥,该命令会创建它们。
az vm create \
--resource-group myResourceGroup \
--name myVm \
--image Ubuntu2204 \
--nsg myNSG \
--public-ip-address "" \
--generate-ssh-keys
创建 VM 需要几分钟时间。 在创建 VM 并Azure CLI返回输出之前,请勿继续执行剩余步骤。
测试网络通信
若要测试与Network Watcher的网络通信,必须先在要测试的 VM 所在的区域中启用network watcher,然后使用Network Watcher的下一跃点功能测试通信。
启用网络观察程序
如果已在中国东部区域启用了网络观察程序,请跳到 “使用下一跃点”。 使用 az network watcher configure 命令在“中国东部”区域中创建网络观察程序:
az network watcher configure \
--resource-group NetworkWatcherRG \
--locations chinaeast \
--enabled
使用下一个跃点
Azure自动创建到默认目标的路由。 可以创建自定义路由来覆盖默认路由。 有时,自定义路由可能会导致通信故障。 要测试来自 VM 的路由,请使用 az network watcher show-next-hop 确定流量发送到特定地址时的下一个路由跃点。
测试从 VM 发往 www.bing.com 的某个 IP 地址的出站通信:
az network watcher show-next-hop \
--dest-ip 13.107.21.200 \
--resource-group myResourceGroup \
--source-ip 10.0.0.4 \
--vm myVm \
--nic myVmVMNic \
--out table
数秒钟后,输出结果指示 nextHopType 为“Internet”,routeTableId 为“系统路由” 。 此结果指示存在通往目标的有效路由。
测试从 VM 发往 172.31.0.100 的出站通信:
az network watcher show-next-hop \
--dest-ip 172.31.0.100 \
--resource-group myResourceGroup \
--source-ip 10.0.0.4 \
--vm myVm \
--nic myVmVMNic \
--out table
输出结果告知“nextHopType”为“None”,同时“routeTableId”也是“系统路由”。 此结果表明,虽然存在有效的系统路由通往目标,但没有可将流量路由到目标的下一跃点。
查看路由详细信息
若要进一步分析路由情况,请使用 az network nic show-effective-route-table 命令查看网络接口的有效路由:
az network nic show-effective-route-table \
--resource-group myResourceGroup \
--name myVmVMNic
返回的输出中包含以下文本:
{
"additionalProperties": {
"disableBgpRoutePropagation": false
},
"addressPrefix": [
"0.0.0.0/0"
],
"name": null,
"nextHopIpAddress": [],
"nextHopType": "Internet",
"source": "Default",
"state": "Active"
},
使用 az network watcher show-next-hop 命令在使用下一跃点 环节中测试发送到 13.107.21.200 的出站通信时,地址前缀为 0.0.0.0/0** 的路由用于将流量路由到该地址,因为输出中没有其他路由包含该地址。 默认情况下,未在另一路由的地址前缀中指定的所有地址都会路由到 Internet。
但是,使用 az network watcher show-next-hop 命令测试发送到 172.31.0.100 的出站通信时,结果显示没有下一跃点类型。 返回的输出中包含以下文本:
{
"additionalProperties": {
"disableBgpRoutePropagation": false
},
"addressPrefix": [
"172.16.0.0/12"
],
"name": null,
"nextHopIpAddress": [],
"nextHopType": "None",
"source": "Default",
"state": "Active"
},
从 az network watcher nic show-effective-route-table 命令的输出结果中可以看到,虽然有一个到 172.16.0.0/12 前缀的默认路由(其中包括地址 172.31.0.100),但“nextHopType”为“无” 。 Azure创建到 172.16.0.0/12 的默认路由,但在有原因之前不会指定下一跳类型。 例如,如果将 172.16.0.0/12 地址范围添加到虚拟网络的地址空间,Azure将 nextHopType 更改为路由的 Virtual network。 此时进行检查会将“nextHopType”显示为“虚拟网络” 。
清理资源
如果不再需要资源组及其包含的所有资源,可以使用 az group delete 将其删除:
az group delete --name myResourceGroup --yes
后续步骤
本文介绍了如何创建 VM 并根据该 VM 诊断网络路由问题。 你了解到,Azure创建多个默认路由并测试了到两个不同的目标的路由。 详细了解 Azure 中的路由以及如何创建自定义路由。
对于出站 VM 连接,还可以使用 Network Watcher 的 连接故障排除功能来确定 VM 与终结点之间的延迟和允许和拒绝的网络流量。 可以使用 Network Watcher 连接监视器功能监视 VM 与终结点(如 IP 地址或 URL)之间的通信情况变化。 有关详细信息,请参阅监视网络连接。