Azure 自动在 Azure 子网、虚拟网络与本地网络之间路由流量。 若要更改 Azure 的默认路由,可以创建一个路由表。 如果你不熟悉虚拟网络中的路由,可在虚拟网络流量路由中了解详细信息,或者通过完成一个教程了解详细信息。
你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
创建、更改或删除路由表
先决条件
如果你没有 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 资源管理器。
在 Azure 门户菜单或“主页”页上,选择“创建资源” 。
在搜索框中,输入“路由表”。 当“路由表”出现在搜索结果中时,请选择它。
在“路由表”页中,选择“创建”。
在“创建路由表”对话框中:
设置 值 名称 输入路由表的名称。 订阅 选择要在其中部署路由表的订阅。 资源组 选择现有的资源组,或选择“新建”以创建新的资源组。 位置 选择要在其中部署路由表的区域。 传播网关路由 如果你计划将路由表与通过 VPN 网关连接到本地网络的虚拟网络中的子网相关联,并且不希望将本地路由传播到子网中的网络接口,请将“虚拟网络网关路由传播”设置为“已禁用”。 选择“查看 + 创建”,然后选择“创建”以创建新的路由表。
创建路由表 - 命令
工具 命令 Azure CLI az network route-table create PowerShell New-AzRouteTable
查看路由表
要管理虚拟网络,请访问 Azure 门户并使用搜索功能查找“路由表”。在这里,可找到订阅中可用的所有路由表的列表。
转到 Azure 门户来管理虚拟网络。
搜索并选择“路由表”。 随后将列出订阅中存在的路由表。
查看路由表 - 命令
工具 命令 Azure CLI az network route-table list PowerShell Get-AzRouteTable
查看路由表详细信息
遵循以下步骤:
转到 Azure 门户来管理虚拟网络。 搜索并选择“路由表”。
在路由表列表中,选择要查看其详细信息的路由表。
在路由表页中的“设置”下,查看路由表中的“路由”,或者查看与该路由表关联的“子网”。
若要详细了解常见的 Azure 设置,请参阅以下信息:
查看路由表详细信息 - 命令
工具 命令 Azure CLI az network route-table show PowerShell Get-AzRouteTable
更改路由表
遵循以下步骤:
转到 Azure 门户来管理虚拟网络。 搜索并选择“路由表”。
在路由表列表中,选择要更改的路由表。
最常见的更改是添加路由、删除路由、将路由表关联到子网,或者从子网取消关联路由表。
更改路由表 - 命令
工具 命令 Azure CLI az network route-table update PowerShell Set-AzRouteTable
将路由表关联到子网
可以选择性地将路由表关联到子网。 一个路由表可与零个或多个子网相关联。 路由表不是与虚拟网络关联, 必须将路由表与每个要关联的子网相关联。
Azure 根据你创建的路由对离开子网的所有流量进行路由:
在路由表中
如果虚拟网络连接到 Azure 虚拟网络网关(ExpressRoute 或 VPN),则为从本地网络传播的路由。
只能将路由表关联到该路由表所在的同一 Azure 位置和订阅中的虚拟网络内的子网。
转到 Azure 门户来管理虚拟网络。 搜索并选择“虚拟网络”。
在虚拟网络列表中,选择包含要将路由表关联到的子网的虚拟网络。
在虚拟网络菜单栏中选择“子网”。
选择要将路由表关联到的子网。
在“路由表”中,选择要关联到子网的路由表。
选择“保存” 。
如果虚拟网络已连接到 Azure VPN 网关,请不要将路由表与包含目标为 0.0.0.0/0 的路由的网关子网相关联。 这样做可能会阻止网关正常工作。 有关在路由中使用 0.0.0.0/0 的详细信息,请参阅虚拟网络流量路由。
关联路由表 - 命令
工具 命令 Azure CLI az network vnet subnet update PowerShell Set-AzVirtualNetworkSubnetConfig
从子网取消关联路由表
从子网取消关联路由表后,Azure 会根据流量的默认路由来路由流量。
转到 Azure 门户来管理虚拟网络。 搜索并选择“虚拟网络”。
在虚拟网络列表中,选择包含要与路由表取消关联的子网的虚拟网络。
在虚拟网络菜单栏中选择“子网”。
选择要从中取消关联路由表的子网。
在“路由表”中选择“无”。
选择“保存” 。
取消关联路由表 - 命令
工具 命令 Azure CLI az network vnet subnet update PowerShell Set-AzVirtualNetworkSubnetConfig
删除路由表
不能删除已关联到任何子网的路由表。 在尝试删除路由表之前,请从所有子网取消关联该路由表。
转到 Azure 门户来管理路由表。 搜索并选择“路由表”。
在路由表列表中,选择要删除的路由表。
选择“删除”,然后在确认对话框中选择“是”。
删除路由表 - 命令
工具 命令 Azure CLI az network route-table delete PowerShell Remove-AzRouteTable
创建路由
在每个 Azure 位置和订阅中,可为每个路由表创建的路由数目有限制。 有关详细信息,请参阅网络限制 - Azure 资源管理器。
转到 Azure 门户来管理路由表。 搜索并选择“路由表”。
在路由表列表中,选择要将路由添加到的路由表。
在路由表菜单栏中,选择“路由”,然后选择“+ 添加”。
为该路由输入一个在路由表中唯一的路由名称。
以无类域间路由 (CIDR) 表示法输入要将流量路由到的地址前缀。 该前缀不能在路由表的多个路由中重复,不过,可以包含在另一个前缀中。 例如,如果在一个路由中定义了 10.0.0.0/16 作为前缀,仍可使用 10.0.0.0/22 地址前缀定义另一个路由。 Azure 根据最长的前缀匹配项选择流量的路由。 有关详细信息,请参阅 Azure 如何选择路由。
选择一个“下一跃点类型”。 若要详细了解下一跃点类型,请参阅虚拟网络流量路由。
如果为“下一跃点类型”选择了“虚拟设备”,请为“下一跃点地址”输入一个 IP 地址。
选择“确定” 。
创建路由 - 命令
工具 命令 Azure CLI az network route-table route create PowerShell New-AzRouteConfig
查看路由
一个路由表包含零个或多个路由。 若要详细了解在查看路由时所列出的信息,请参阅虚拟网络流量路由。
转到 Azure 门户来管理路由表。 搜索并选择“路由表”。
在路由表列表中,选择要查看其路由的路由表。
在路由表菜单栏中,选择“路由”查看路由列表。
查看路由 - 命令
工具 命令 Azure CLI az network route-table route list PowerShell Get-AzRouteConfig
查看路由详细信息
遵循以下步骤:
转到 Azure 门户来管理路由表。 搜索并选择“路由表”。
在路由表列表中,选择包含你要查看其详细信息的路由的路由表。
在路由表菜单栏中,选择“路由”查看路由列表。
选择要查看其详细信息的路由。
查看路由详细信息 - 命令
工具 命令 Azure CLI az network route-table route show PowerShell Get-AzRouteConfig
更改路由
遵循以下步骤:
转到 Azure 门户来管理路由表。 搜索并选择“路由表”。
在路由表列表中,选择包含你要更改的路由的路由表。
在路由表菜单栏中,选择“路由”查看路由列表。
选择要更改的路由。
将现有设置更改为新设置,然后选择“保存”。
更改路由 - 命令
工具 命令 Azure CLI az network route-table route update PowerShell Set-AzRouteConfig
删除路由
遵循以下步骤:
转到 Azure 门户来管理路由表。 搜索并选择“路由表”。
在路由表列表中,选择包含你要删除的路由的路由表。
在路由表菜单栏中,选择“路由”查看路由列表。
选择要删除的路由。
选择“...”,然后选择“删除”。 在确认对话框中选择“是”。
删除路由 - 命令
工具 命令 Azure CLI az network route-table route delete PowerShell Remove-AzRouteConfig
查看有效路由
附加到 VM 的每个网络接口的有效路由是你已创建的路由表、Azure 的默认路由,以及通过 Azure 虚拟网络网关和边界网关协议 (BGP) 从本地网络传播的任何路由的组合。 排查路由问题时,了解网络接口的有效路由非常有用。 可以查看已附加到运行中 VM 的任何网络接口的有效路由。
转到 Azure 门户来管理 VM。 搜索并选择“虚拟机”。
在虚拟机列表中,选择要查看其有效路由的 VM。
在 VM 菜单栏中选择“网络”。
选择网络接口的名称。
在网络接口菜单栏中选择“有效路由”。
查看有效路由的列表,以了解你要将流量路由到的目标地址是否存在适当的路由。 在虚拟网络流量路由中详细了解此列表中列出的下一跃点类型。
查看有效路由 - 命令
工具 命令 Azure CLI az network nic show-effective-route-table PowerShell Get-AzEffectiveRouteTable
验证两个终结点之间的路由
可以确定虚拟机与另一 Azure 资源的 IP 地址、本地资源或 Internet 上某个资源之间的下一跃点类型。 排查路由问题时,确定 Azure 的路由很有帮助。 若要完成此任务,必须使用现有的网络观察程序。 如果没有网络观察程序,可以完成创建网络观察程序实例中的步骤来创建一个。
转到 Azure 门户来管理网络观察程序。 搜索并选择“网络观察程序”。
在网络观察程序菜单栏中选择“下一跃点”。
在“网络观察程序 | 下一各跃点”页中:
设置 值 订阅 选择源 VM 所在的订阅。 资源组 选择包含 VM 的资源组。 虚拟机 选择要用于测试的 VM。 Linux 选择要从中测试下一跃点的网络接口。 源 IP 地址 已为你选择了默认源 IP。 如果网络接口有多个 IP,则你可以更改源 IP。 目标 IP 地址 输入想要查看 VM 的下一跃点的目标 IP。 选择“下一跃点”。
片刻之后,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 获取下一跃点