你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

创建、更改或删除路由表

Azure 自动在 Azure 子网、虚拟网络与本地网络之间路由流量。 若要更改 Azure 的默认路由,可以创建一个路由表。 如果你不熟悉虚拟网络中的路由,可在虚拟网络流量路由中了解详细信息,或者通过完成一个教程了解详细信息。

先决条件

如果你没有 Azure 帐户,请使用有效的订阅设置一个帐户。 免费创建帐户。 然后在开始执行本文任一部分中的步骤之前完成以下任务之一:

  • 门户用户:使用 Azure 帐户登录到 Azure 门户

  • PowerShell 用户:在 Azure Cloud Shell 中运行命令,或在计算机上运行 PowerShell。 Azure Cloud Shell 是免费的交互式 shell,可以使用它运行本文中的步骤。 它预安装有常用 Azure 工具并将其配置与帐户一起使用。 在 Azure Cloud Shell 浏览器标签页中,找到“选择环境”下拉列表,然后选择“PowerShell”(如果尚未选择) 。

    如果在本地运行 PowerShell,请使用 Azure PowerShell 模块 1.0.0 或更高版本。 运行 Get-Module -ListAvailable Az.Network 查找已安装的版本。 如果需要进行升级,请参阅 Install Azure PowerShell module(安装 Azure PowerShell 模块)。 另请运行 Connect-AzAccount 以创建与 Azure 的连接。

  • Azure CLI 用户:通过 Azure Cloud Shell 运行命令,或在本地运行 Azure CLI。 如果在本地运行 Azure CLI,请使用 Azure CLI 2.0.31 或更高版本。 运行 az --version 查找已安装的版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。 另请运行 az login 以创建与 Azure 的连接。

    分配具有相应权限网络参与者角色自定义角色

创建路由表

在每个 Azure 位置和订阅中可创建的路由表数目有限制。 有关详细信息,请参阅网络限制 - Azure 资源管理器

  1. Azure 门户菜单或“主页”页上,选择“创建资源” 。

  2. 在搜索框中,输入“路由表”。 当“路由表”出现在搜索结果中时,请选择它。

  3. 在“路由表”页中,选择“创建”

  4. 在“创建路由表”对话框中:

    “创建路由表”页的屏幕截图。

    设置
    名称 输入路由表的名称。
    订阅 选择要在其中部署路由表的订阅。
    资源组 选择现有的资源组,或选择“新建”以创建新的资源组。
    位置 选择要在其中部署路由表的区域。
    传播网关路由 如果你计划将路由表与通过 VPN 网关连接到本地网络的虚拟网络中的子网相关联,并且不希望将本地路由传播到子网中的网络接口,请将“虚拟网络网关路由传播”设置为“已禁用”
  5. 选择“查看 + 创建”,然后选择“创建”以创建新的路由表。

    创建路由表 - 命令

    工具 命令
    Azure CLI az network route-table create
    PowerShell New-AzRouteTable

查看路由表

要管理虚拟网络,请访问 Azure 门户并使用搜索功能查找“路由表”。在这里,可找到订阅中可用的所有路由表的列表。

Azure 订阅中路由表列表的屏幕截图。

  1. 转到 Azure 门户来管理虚拟网络。

  2. 搜索并选择“路由表”。 随后将列出订阅中存在的路由表。

    查看路由表 - 命令

    工具 命令
    Azure CLI az network route-table list
    PowerShell Get-AzRouteTable

查看路由表详细信息

遵循以下步骤:

  1. 转到 Azure 门户来管理虚拟网络。 搜索并选择“路由表”。

  2. 在路由表列表中,选择要查看其详细信息的路由表。

  3. 在路由表页中的“设置”下,查看路由表中的“路由”,或者查看与该路由表关联的“子网”Azure 订阅中路由表的概述页面的屏幕截图。

    若要详细了解常见的 Azure 设置,请参阅以下信息:

    查看路由表详细信息 - 命令

    工具 命令
    Azure CLI az network route-table show
    PowerShell Get-AzRouteTable

更改路由表

遵循以下步骤:

  1. 转到 Azure 门户来管理虚拟网络。 搜索并选择“路由表”。

  2. 在路由表列表中,选择要更改的路由表。 路由表中的路由的屏幕截图。

    最常见的更改是添加路由、删除路由、将路由表关联到子网,或者从子网取消关联路由表。

    更改路由表 - 命令

    工具 命令
    Azure CLI az network route-table update
    PowerShell Set-AzRouteTable

将路由表关联到子网

可以选择性地将路由表关联到子网。 一个路由表可与零个或多个子网相关联。 路由表不是与虚拟网络关联, 必须将路由表与每个要关联的子网相关联。

Azure 根据你创建的路由对离开子网的所有流量进行路由:

  • 在路由表中

  • 默认路由

  • 如果虚拟网络连接到 Azure 虚拟网络网关(ExpressRoute 或 VPN),则为从本地网络传播的路由。

只能将路由表关联到该路由表所在的同一 Azure 位置和订阅中的虚拟网络内的子网。

  1. 转到 Azure 门户来管理虚拟网络。 搜索并选择“虚拟网络”。

  2. 在虚拟网络列表中,选择包含要将路由表关联到的子网的虚拟网络。

  3. 在虚拟网络菜单栏中选择“子网”。

  4. 选择要将路由表关联到的子网。

  5. 在“路由表”中,选择要关联到子网的路由表。

    屏幕截图显示了将路由表关联到子网。

  6. 选择“保存” 。

    如果虚拟网络已连接到 Azure VPN 网关,请不要将路由表与包含目标为 0.0.0.0/0 的路由的网关子网相关联。 这样做可能会阻止网关正常工作。 有关在路由中使用 0.0.0.0/0 的详细信息,请参阅虚拟网络流量路由

    关联路由表 - 命令

    工具 命令
    Azure CLI az network vnet subnet update
    PowerShell Set-AzVirtualNetworkSubnetConfig

从子网取消关联路由表

从子网取消关联路由表后,Azure 会根据流量的默认路由来路由流量。

  1. 转到 Azure 门户来管理虚拟网络。 搜索并选择“虚拟网络”。

  2. 在虚拟网络列表中,选择包含要与路由表取消关联的子网的虚拟网络。

  3. 在虚拟网络菜单栏中选择“子网”。

  4. 选择要从中取消关联路由表的子网。

  5. 在“路由表”中选择“无”。

    屏幕截图显示了从子网中删除路由表。

  6. 选择“保存” 。

    取消关联路由表 - 命令

    工具 命令
    Azure CLI az network vnet subnet update
    PowerShell Set-AzVirtualNetworkSubnetConfig

删除路由表

不能删除已关联到任何子网的路由表。 在尝试删除路由表之前,请从所有子网取消关联该路由表。

  1. 转到 Azure 门户来管理路由表。 搜索并选择“路由表”。

  2. 在路由表列表中,选择要删除的路由表。

  3. 选择“删除”,然后在确认对话框中选择“是”。 路由表的“删除”按钮的屏幕截图。

    删除路由表 - 命令

    工具 命令
    Azure CLI az network route-table delete
    PowerShell Remove-AzRouteTable

创建路由

在每个 Azure 位置和订阅中,可为每个路由表创建的路由数目有限制。 有关详细信息,请参阅网络限制 - Azure 资源管理器

  1. 转到 Azure 门户来管理路由表。 搜索并选择“路由表”。

  2. 在路由表列表中,选择要将路由添加到的路由表。

  3. 在路由表菜单栏中,选择“路由”,然后选择“+ 添加”。

  4. 为该路由输入一个在路由表中唯一的路由名称路由表“添加路由”页的屏幕截图。

  5. 以无类域间路由 (CIDR) 表示法输入要将流量路由到的地址前缀。 该前缀不能在路由表的多个路由中重复,不过,可以包含在另一个前缀中。 例如,如果在一个路由中定义了 10.0.0.0/16 作为前缀,仍可使用 10.0.0.0/22 地址前缀定义另一个路由。 Azure 根据最长的前缀匹配项选择流量的路由。 有关详细信息,请参阅 Azure 如何选择路由

  6. 选择一个“下一跃点类型”。 若要详细了解下一跃点类型,请参阅虚拟网络流量路由

  7. 如果为“下一跃点类型”选择了“虚拟设备”,请为“下一跃点地址”输入一个 IP 地址。

  8. 选择“确定” 。

    创建路由 - 命令

    工具 命令
    Azure CLI az network route-table route create
    PowerShell New-AzRouteConfig

查看路由

一个路由表包含零个或多个路由。 若要详细了解在查看路由时所列出的信息,请参阅虚拟网络流量路由

  1. 转到 Azure 门户来管理路由表。 搜索并选择“路由表”。

  2. 在路由表列表中,选择要查看其路由的路由表。

  3. 在路由表菜单栏中,选择“路由”查看路由列表。 路由表中的路由的屏幕截图。

    查看路由 - 命令

    工具 命令
    Azure CLI az network route-table route list
    PowerShell Get-AzRouteConfig

查看路由详细信息

遵循以下步骤:

  1. 转到 Azure 门户来管理路由表。 搜索并选择“路由表”。

  2. 在路由表列表中,选择包含你要查看其详细信息的路由的路由表。

  3. 在路由表菜单栏中,选择“路由”查看路由列表。

  4. 选择要查看其详细信息的路由。 资源详细信息页的屏幕截图

    查看路由详细信息 - 命令

    工具 命令
    Azure CLI az network route-table route show
    PowerShell Get-AzRouteConfig

更改路由

遵循以下步骤:

  1. 转到 Azure 门户来管理路由表。 搜索并选择“路由表”。

  2. 在路由表列表中,选择包含你要更改的路由的路由表。

  3. 在路由表菜单栏中,选择“路由”查看路由列表。

  4. 选择要更改的路由。

  5. 将现有设置更改为新设置,然后选择“保存”。

    更改路由 - 命令

    工具 命令
    Azure CLI az network route-table route update
    PowerShell Set-AzRouteConfig

删除路由

遵循以下步骤:

  1. 转到 Azure 门户来管理路由表。 搜索并选择“路由表”。

  2. 在路由表列表中,选择包含你要删除的路由的路由表。

  3. 在路由表菜单栏中,选择“路由”查看路由列表。

  4. 选择要删除的路由。

  5. 选择“...”,然后选择“删除”。 在确认对话框中选择“是”。 路由表中的路由的“删除”按钮的屏幕截图。

    删除路由 - 命令

    工具 命令
    Azure CLI az network route-table route delete
    PowerShell Remove-AzRouteConfig

查看有效路由

附加到 VM 的每个网络接口的有效路由是你已创建的路由表、Azure 的默认路由,以及通过 Azure 虚拟网络网关和边界网关协议 (BGP) 从本地网络传播的任何路由的组合。 排查路由问题时,了解网络接口的有效路由非常有用。 可以查看已附加到运行中 VM 的任何网络接口的有效路由。

  1. 转到 Azure 门户来管理 VM。 搜索并选择“虚拟机”。

  2. 在虚拟机列表中,选择要查看其有效路由的 VM。

  3. 在 VM 菜单栏中选择“网络”。

  4. 选择网络接口的名称。

  5. 在网络接口菜单栏中选择“有效路由”。 网络接口的生效路由的屏幕截图。

  6. 查看有效路由的列表,以了解你要将流量路由到的目标地址是否存在适当的路由。 在虚拟网络流量路由中详细了解此列表中列出的下一跃点类型。

    查看有效路由 - 命令

    工具 命令
    Azure CLI az network nic show-effective-route-table
    PowerShell Get-AzEffectiveRouteTable

验证两个终结点之间的路由

可以确定虚拟机与另一 Azure 资源的 IP 地址、本地资源或 Internet 上某个资源之间的下一跃点类型。 排查路由问题时,确定 Azure 的路由很有帮助。 若要完成此任务,必须使用现有的网络观察程序。 如果没有网络观察程序,可以完成创建网络观察程序实例中的步骤来创建一个。

  1. 转到 Azure 门户来管理网络观察程序。 搜索并选择“网络观察程序”。

  2. 在网络观察程序菜单栏中选择“下一跃点”。

  3. 在“网络观察程序 | 下一各跃点”页中:路由表“添加路由”页的屏幕截图。

    设置
    订阅 选择源 VM 所在的订阅。
    资源组 选择包含 VM 的资源组。
    虚拟机 选择要用于测试的 VM。
    Linux 选择要从中测试下一跃点的网络接口。
    源 IP 地址 已为你选择了默认源 IP。 如果网络接口有多个 IP,则你可以更改源 IP。
    目标 IP 地址 输入想要查看 VM 的下一跃点的目标 IP。
  4. 选择“下一跃点”。

    片刻之后,Azure 即会告知路由了流量的路由的下一跃点类型和 ID。 在虚拟网络流量路由中详细了解返回的下一跃点类型。

    验证两个终结点之间的路由 - 命令

    工具 命令
    Azure CLI az network watcher show-next-hop
    PowerShell Get-AzNetworkWatcherNextHop

权限

要对路由表和路由执行任务,必须将帐户分配给

  1. 网络参与者角色

  2. 或分配给为其分配了下表中列出的适当操作的自定义角色

    操作 名称
    Microsoft.Network/routeTables/read 读取路由表
    Microsoft.Network/routeTables/write 创建或更新路由表
    Microsoft.Network/routeTables/delete 删除路由表
    Microsoft.Network/routeTables/join/action 将路由表关联到子网
    Microsoft.Network/routeTables/routes/read 读取路由
    Microsoft.Network/routeTables/routes/write 创建或更新路由
    Microsoft.Network/routeTables/routes/delete 删除路由
    Microsoft.Network/networkInterfaces/effectiveRouteTable/action 为网络接口获取有效路由表
    Microsoft.Network/networkWatchers/nextHop/action 从 VM 获取下一跃点