Compartilhar via

教程:使用 Azure 门户诊断虚拟机网络路由问题

在本教程中,你将使用 Azure Network Watcher next hop 工具来排查和诊断 VM 路由问题,从而阻止它与其他资源正确通信。 下一个跃点显示自定义路由导致了路由问题。

该示意图显示了在教程中创建的资源。

在本教程中,你将了解如何执行以下操作:

  • 创建虚拟网络
  • 创建两个虚拟机
  • 使用 Azure Network Watcher 的下一跳功能测试与不同的 IP 的通信
  • 查看有效路由
  • 创建自定义路由
  • 诊断路由问题

如果愿意,可以使用本教程的 Azure CLIAzure PowerShell 版本诊断虚拟机网络路由问题。

如果没有Azure订阅,请在开始前创建试用订阅

先决条件

  • 具有活动订阅的Azure帐户。

创建虚拟网络

在本部分,请创建虚拟网络。

  1. 登录到 Azure 门户

  2. 在门户顶部的搜索框中,输入“虚拟网络”。 在搜索结果中,选择“虚拟网络”。

    截图,演示如何在 Azure 门户中搜索虚拟网络。

  3. 选择+ 新建

  4. 在“创建虚拟网络”的“基本信息”选项卡中,输入或选择以下值

    设置
    项目详细信息
    订阅 选择Azure订阅。
    资源组 选择“新建”。
    名称中输入 myResourceGroup
    选择“确定”
    实例详细信息
    虚拟网络名称 输入“myVNet”。
    区域 选择“中国东部”。
  5. 选择“IP 地址”选项卡,或者选择页面底部的“下一步”按钮两次。

  6. 在“IP 地址”选项卡上,输入以下值

    设置
    IPv4 地址空间 10.0.0.0/16
    子网名称 mySubnet
    子网 IP 地址范围 10.0.0.0 - 10.0.0.255(大小:/24
  7. 选择“查看 + 创建”选项卡,或选择页面底部的“查看 + 创建”按钮。

  8. 检查设置,然后选择创建

创建虚拟机

在本部分中,请创建两个虚拟机:

  • myVM:用于测试通信来源
  • myNVA:用作网络虚拟设备

创建第一个虚拟机

  1. 在门户顶部的搜索框中,输入虚拟机。 在搜索结果中,选择“虚拟机”。

  2. 选择+ 新建

  3. 在“创建虚拟机”中的“基本信息”选项卡上,输入或选择以下值

    设置
    项目详细信息
    订阅 选择Azure订阅。
    资源组 选择“myResourceGroup”。
    实例详细信息
    虚拟机名称 输入myVM
    区域 选择“中国东部”。
    可用性选项 选择“无需基础结构冗余”。
    安全类型 选择“标准” 。
    图像 选择 Windows Server 2022 Datacenter:Azure Edition - x64 Gen2
    大小 选择大小或保留默认设置。
    管理员帐户
    用户名 输入用户名。
    密码 输入密码。
    确认密码 重新输入密码。
  4. 选择“网络”选项卡,或选择“下一步: 磁盘”,然后选择“下一步: 网络”

  5. 在“网络”选项卡上,输入或选择以下值:

    设置
    网络接口
    虚拟网络 选择“myVNet”。
    子网 选择“mySubnet”
    公共 IP 选择 (new) myVM-ip
    NIC 网络安全组 选择基本
    公共入站端口 选择“允许所选端口” 。
    选择入站端口 选择“RDP (3389)”。

    注意

    建议仅在测试情况下将 RDP 端口设置为对 Internet 开放。 在生产环境下,建议仅限某个特定的 IP 地址或 IP 地址范围才能访问 RDP 端口。 还可以阻止对 RDP 端口的 Internet 访问,并使用 Azure Bastion 从 Azure 门户安全地连接到虚拟机。

  6. 选择“查看 + 创建”

  7. 检查设置,然后选择创建

  8. 部署完成后,选择“转到资源”以转到“myVM”的“概述”页面。

  9. 选择连接,然后在本机 RDP下选择选择

  10. 选择“下载 RDP 文件”,然后打开已下载的文件。

  11. 选择”连接“,然后输入在前面步骤中创建的用户名和密码。 如果出现提示,请接受证书。

  12. 登录后,打开 Web 浏览器并转到 www.bing.com 以验证其是否可访问。

    显示 Web 浏览器中的必应页面的屏幕截图。

创建第二个虚拟机

按照前面的步骤 (1-6),使用 myNVA 虚拟机名称来创建第二个虚拟机。

使用 Network Watcher 下一跳测试网络通信

使用 Network Watcher 的下一跃点功能来确定 Azure 使用哪个路由来从 myVM 路由流量,而该虚拟机具有一个 IP 配置的网络接口。

  1. 在门户顶部的搜索框中,输入网络监视工具。 从搜索结果中选择 Network Watcher

  2. 在“网络诊断工具”下选择“下一跳”。 输入或选择下列值:

    设置
    订阅 选择Azure订阅。
    资源组 选择“myResourceGroup”。
    虚拟机 选择“myVM”。
    网络接口 保留默认值。
    源 IP 地址 输入“10.0.0.4”或 VM 的 IP(如果不同于 10.0.0.4)。
    目标 IP 地址 输入13.107.21.200以测试与的通信。
  3. 选择“Next hop”按钮以开始测试。 测试结果显示有关下一个跃点的信息,例如下一个跃点类型、其 IP 地址以及用于路由流量的路由表 ID。 测试结果显示,13.107.21.200的下一跳类型是Internet,路由表ID是System Route,这意味着从myVM发往www.bing.com的流量通过Azure默认系统路由被路由到互联网。

    截图演示如何使用 Microsoft Azure Network Watcher 的下一跳功能测试与 www.bing.com 的通信。

  4. 将“目标 IP 地址”更改为 10.0.0.5(myNVA 虚拟机的 IP 地址),然后选择“下一个跃点”按钮。 结果显示下一跃点类型为 VirtualNetwork,路由表 ID 为 System Route,这意味着从 myVM 发往 10.0.0.5 的流量会在 myVNet 虚拟网络中使用 Azure 默认系统路由进行路由。

    展示在同一虚拟网络内使用 IP 进行测试时的 Network Watcher 下一跃点结果的屏幕截图。

  5. 接下来,将“目标 IP 地址”更改为 10.1.0.5(这是不在 myVNet 虚拟网络地址空间中的专用 IP 地址),然后选择“下一个跃点”按钮。 结果显示下一个跃点类型为“无”,这意味着从 myVM 发往 10.1.0.5 的流量会被删除。

    屏幕截图显示当使用位于虚拟网络地址空间外的专用 IP 进行测试时,Network Watcher 的下一跳结果

查看路由详细信息

若要进一步分析路由情况,请查看 myVM 网络接口的有效路由。

  1. 在门户顶部的搜索框中,输入虚拟机。 在搜索结果中,选择“虚拟机”。

  2. 在“设置”下选择“网络”,然后选择网络接口。

    截图显示如何在 Azure 门户的虚拟机设置中选择网络接口页面。

  3. 在“帮助”下,选择“有效路由”以查看与 myVM 的网络接口关联的所有路由。

    显示与虚拟机网络接口关联的 Azure 默认系统路由的屏幕截图

    在上一部分中,当使用 13.107.21.200 运行测试时,地址前缀为 0.0.0.0/0 的路由用于将流量路由到该地址,因为没有其他路由具有该地址。 默认情况下,未在另一路由的地址前缀中指定的所有地址都会路由到 Internet。

    使用 10.0.0.5 运行测试时,地址前缀为 10.0.0.0/16 的路由用于将流量路由到它。

    但是,使用 10.1.0.5 运行测试时,结果显示下一个跃点类型为“无”,因为此 IP 地址位于 10.0.0.0/8 地址空间中。 Azure 10.0.0.0/8 地址前缀的默认路由下一个希望类型为 None。 如果将包含 10.1.0.5 的地址前缀添加到虚拟网络地址空间,则 10.1.0.5 的下一个跃点类型将从“无”更改为“VirtualNetwork”。

测试由于自定义路由而导致的路由问题

接下来,您创建一个静态自定义路由,以覆盖 Azure 默认的系统路由,从而导致 myVM 虚拟机无法直接与 www.bing.com 通信的问题。 然后,你将使用 Network Watcher 下一跳来进行排查和诊断的问题。

创建自定义路由

在本部分,将在路由表中创建一个静态自定义路由(用户定义的路由),该路由将发往虚拟网络外部的所有流量强制发送到特定 IP 地址。 强制流量发往虚拟网络设备是一种常见情况。

  1. 在门户顶部的搜索框中,输入路由表。 从搜索结果中选择“路由表”

  2. 选择“+ 创建”以创建新的路由表。 在“创建路由表”页面上,输入或选择以下值

    设置
    项目详细信息
    订阅 选择Azure订阅。
    资源组 选择“myResourceGroup”。
    实例详细信息
    区域 选择“中国东部”。
    名称 输入myRouteTable
    传播网关路由 保留默认值。
  3. 选择“查看 + 创建”

  4. 检查设置,然后选择创建

  5. 部署完成后,选择“转到资源”以转到“myRouteTable”的“概述”页面。

  6. 在“设置”下,选择“路由”,然后选择“+ 添加”以添加自定义路由。

  7. 在“添加路由”页上,输入或选择以下值:

    设置
    路由名称 输入myRoute
    目标类型 选择“IP 地址”。
    目标 IP 地址/CIDR 范围 输入 0.0.0.0/0
    下一跳类型 选择“虚拟设备”。
    下一个跃点地址 输入 10.0.0.5
  8. 选择 并添加

将路由表与子网关联

在本部分,要将你在上一部分中创建的路由表与 mySubnet 子网关联。

  1. 在“设置”下,选择“子网”,然后选择“+ 关联”以将 myRouteTable 与 mySubnet 子网关联。

  2. 在“关联子网”页中,选择以下值:

    设置
    虚拟网络 选择“myVNet (myResourcegroup)”。
    子网 选择“MySubnet”。
  3. 选择“确定”

转到 www.bing.com

myVM 中,打开 Web 浏览器并转到 www.bing.com 以验证它是否仍然可访问。 你已创建并将其与 myVM 的子网关联的自定义路由会强制流量发往 myNVA。 流量会被丢弃,因为出于本教程演示路由问题的目的,myNVA 未设置为转发流量。

显示在 Web 浏览器中无法访问必应页面的屏幕截图。

使用“下一跳”测试网络通信

使用 网络观察器下一跃点测试网络通信 部分的方法步骤,用 13.107.21.200 测试与 www.bing.com 的通信。

显示虚拟设备作为应用自定义路由后的下一个跃点的屏幕截图。

查看有效路由

重复你在查看路由详情中使用的步骤,以检查使用导致在访问 www.bing.com 时出现问题的自定义路由后的有效路由。

自定义路由前缀为 0.0.0.0/0 覆盖了 Azure 默认路由,导致所有发往 myVNet 虚拟机外部的流量都被转向到 10.0.0.5。

在用自定义路由重写 Azure 默认系统路由后,截取有效路由的截图。

注意

在本教程中,发往 www.bing.com 的流量被拒绝,因为 myNVA 未被配置为转发流量。 若要了解如何设置虚拟机以转发流量,请参阅启用 IP 转发

清理资源

不再需要 myResourceGroup 资源组时,将其及其包含的所有资源删除:

  1. 在门户顶部的搜索框中输入 myResourceGroup。 从搜索结果中选择“myResourceGroup”。

  2. 选择“删除资源组”。

  3. 在“删除资源组”中,输入 myResourceGroup,然后选择“删除”。

  4. 选择“删除”以确认删除资源组及其所有资源。

下一步

若要了解如何监视两个虚拟机之间的通信,请转到下一篇教程: