创建、更改或删除路由表

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

准备阶段

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

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

  • PowerShell 用户:使用管理员权限从计算机运行 PowerShell。

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

  • “Azure CLI 用户”:从计算机运行 CLI。 如果在本地运行 Azure CLI,请使用 Azure CLI 2.0.31 或更高版本。 运行 az --version 查找已安装的版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。 另请运行 az login 以创建与 Azure 的连接。

    注意

    在可以在由世纪互联运营的 Microsoft Azure 中使用 Azure CLI 之前,请先运行 az cloud set -n AzureChinaCloud 来更改云环境。 若要切换回 Azure 公有云,请再次运行 az cloud set -n AzureCloud

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

创建路由表

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

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

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

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

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

    Screenshot of the create route table page.

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

创建路由表 - 命令

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

查看路由表

转到 Azure 门户来管理虚拟网络。 搜索并选择“路由表”。 随后将列出订阅中存在的路由表。

Screenshot of the list of route tables in the Azure subscription.

查看路由表 - 命令

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

查看路由表详细信息

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

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

  3. 在路由表页中的“设置”下,查看路由表中的“路由”,或者查看与该路由表关联的“子网”

    Screenshot of the overview page of a route tables in an Azure subscription.

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

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

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

更改路由表

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

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

    Screenshot of the routes in a route table.

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

更改路由表 - 命令

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

将路由表关联到子网

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

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

  • 在路由表中

  • 默认路由

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

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

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

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

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

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

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

    Screenshot of associating a route table to a subnet.

  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. 在“路由表”中选择“无”。

    Screenshot of removing a route table from a subnet.

  6. 选择“保存”。

取消关联路由表 - 命令

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

删除路由表

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

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

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

  3. 选择“删除”,然后在确认对话框中选择“是”。

    Screenshot of the delete button for a route table.

删除路由表 - 命令

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

创建路由

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

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

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

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

  4. 为该路由输入一个在路由表中唯一的路由名称

    Screenshot of add a route page for a route table.

  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. 在路由表菜单栏中,选择“路由”查看路由列表。

    Screenshot of the routes in a route table.

查看路由 - 命令

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

查看路由详细信息

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

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

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

  4. 选择要查看其详细信息的路由。

    Screenshot of a route details page.

查看路由详细信息 - 命令

工具 命令
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. 选择“...”,然后选择“删除”。 在确认对话框中选择“是”。

    Screenshot of the delete button for a route from a route table.

删除路由 - 命令

工具 命令
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. 在网络接口菜单栏中选择“有效路由”。

    Screenshot of the effective routes for a network interface.

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

查看有效路由 - 命令

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

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

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

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

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

  3. 在“网络观察程序 | 下一跃点”页中:

    Screenshot of add a route page for a route table.

    设置
    订阅 选择源 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

权限

若要针对路由表和路由执行任务,必须将你的帐户分配到网络参与者角色或分配有下表中所列的相应操作的自定义角色

操作 名称
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 获取下一跃点

后续步骤