计划和实施用户定义的路由 (UDR)

已完成

可以在 Azure 中创建自定义或用户定义(静态)路由,以便替代 Azure 的默认系统路由,或者向子网的路由表添加更多路由。 可以在 Azure 中创建一个路由表,然后将该路由表关联到零个或零个以上的虚拟网络子网。 每个子网可以有一个与之关联的路由表,也可以没有。 若要了解可以添加到路由表的最大路由数,以及可以为每个 Azure 订阅创建的最大用户定义路由表数,请参阅 Azure 限制。 在你创建路由表并将其与子网关联时,该表的路由将与子网的默认路由组合。 如果存在冲突的路由分配,则用户定义的路由将替代默认路由。

可以在创建用户定义路由时指定下面的下一跃点类型:

  • 虚拟设备:虚拟设备是通常情况下运行防火墙等网络应用程序的虚拟机。 若要了解各种可在虚拟网络中部署的预配置网络虚拟设备,请参阅 Azure 市场。 使用“虚拟设备”跃点类型创建路由时,也指定下一跃点 IP 地址。 IP 地址可以是:

    • 附加到虚拟机的网络接口的专用 IP 地址。 如果网络接口附加到虚拟机,而虚拟机将网络流量转发到不是自己地址的地址,则该网络接口必须为其启用 Azure 选项“启用 IP 转发”。 此设置禁止 Azure 在源和目标中检查网络接口。 详细了解如何为网络接口启用 IP 转发。 详细了解如何为网络接口启用 IP 转发。 虽然“启用 IP 转发”是一项 Azure 设置,但你也可能需要在虚拟机的操作系统中启用 IP 转发,否则设备无法在分配到 Azure 网络接口的专用 IP 地址之间转发流量。 如果设备需要将流量路由到公共 IP 地址,则它必须代理流量或执行网络地址转换 (NAT),方向为从源的专用 IP 地址到自己的专用 IP 地址。 然后,Azure 先对公共 IP 地址执行 NAT,然后再将流量发送到 Internet。 若要确定虚拟机中的必需设置,请参阅操作系统或网络应用程序的文档。 若要了解 Azure 中的出站连接,请参阅了解出站连接
    • Azure 内部负载均衡器的专用 IP 地址。 负载均衡器通常作为网络虚拟设备的高可用性策略的一部分使用。

可以定义一个地址前缀为 0.0.0.0/0 的路由和虚拟设备的下一个跃点类型。 此配置允许设备检查流量,并确定是转发还是丢弃流量。 若要创建包含 0.0.0.0/0 地址前缀的用户定义路由,请先阅读 0.0.0.0/0 地址前缀。

  • 虚拟网络网关:需要将目标为特定地址前缀的流量路由到虚拟网络网关时,请指定此项。 创建虚拟网关时,类型必须为“VPN”。 不能在用户定义路由中指定将虚拟网关创建为“ExpressRoute”类型,因为类型为 ExpressRoute 时,必须对自定义路由使用 BGP。 如果有 VPN 和 ExpressRoute 共存的连接,则不能指定虚拟网络网关。 可以定义一个路由,让其将目标为 0.0.0.0/0 地址前缀的流量定向到基于路由的虚拟网关。 可以在本地设置一个设备,让其检查流量并决定是转发还是丢弃流量。 若要创建地址前缀为 0.0.0.0/0 的用户定义路由,请先阅读 0.0.0.0/0 地址前缀。 可以通过 BGP 播发前缀为 0.0.0.0/0 的路由,而不必配置地址前缀为 0.0.0.0/0 的用户定义路由,前提是为 VPN 虚拟网关启用 BGP。
  • 无:需要丢弃流向某个地址前缀的流量,而不是将该流量转发到目标时,请指定此项。 如果某项功能尚未完全配置好,Azure 可能会针对部分可选的系统路由列出“无”。 例如,如果看到“无”作为“下一跃点 IP 地址”列出,且“下一跃点类型”为“虚拟网关”或“虚拟设备”,则可能是因为设备未运行或未完全配置好。 Azure 为保留的地址前缀创建系统默认路由,使用“无”作为下一跃点类型。
  • 虚拟网络:需要替代虚拟网络中的默认路由时,请指定虚拟网络选项。
  • Internet:需要将目标为某个地址前缀的流量显式路由到 Internet 时,或者需要将流量的目标设定为 Azure 服务,且公共 IP 地址始终位于 Azure 主干网络内时,请指定 Internet 选项。 请参阅路由示例,通过示例了解为何需创建跃点类型。

不能在用户定义的路由中指定“虚拟网络对等互连”或“VirtualNetworkServiceEndpoint”作为下一个跃点类型。 下一个跃点类型为“虚拟网络对等互连”或“VirtualNetworkServiceEndpoint”的路由只能在配置虚拟网络对等互连或服务终结点时通过 Azure 创建。

用户定义的路由的服务标记

现可将服务标记指定为用户定义的路由的地址前缀,而不是显式 IP 范围。 服务标记代表给定 Azure 服务中的一组 IP 地址前缀。 Microsoft 会管理服务标记包含的地址前缀,并会在地址发生更改时自动更新服务标记。 从而最大限度地减少对用户定义的路由进行频繁更新的复杂性,并减少你需要创建的路由数量。 当前可在每个路由表中创建不超过 25 个带服务标记的路由。 在此版本中,还支持在容器的路由方案中使用服务标记。

完全匹配

如果在具有显式 IP 前缀的路由和具有服务标记的路由之间存在精确的前缀匹配,系统将优先考虑具有显式前缀的路由。 如果带服务标记的多个路由具有匹配的 IP 前缀,会按以下顺序评估路由:

  1. 区域性标记(例如 Storage.EastUS、AppService.AustraliaCentral)
  2. 顶级标记(例如存储、AppService)
  3. AzureCloud 区域性标记(例如 AzureCloud.canadacentral、AzureCloud.eastasia)
  4. AzureCloud 标记

若要使用此功能,请在路由表命令中指定地址前缀参数的服务标记名称。 例如,在 PowerShell 中,你可以使用以下代码创建新路由,将发送到 Azure 存储 IP 前缀的流量定向到虚拟设备:

Azure PowerShell

$param = @{ Name = 'StorageRoute' AddressPrefix = 'Storage' NextHopType = 'VirtualAppliance' NextHopIpAddress = '10.0.100.4' } New-AzRouteConfig @param




CLI 的相同命令如下所示:

Azure CLI

az network route-table route create \ --resource-group MyResourceGroup \ --route-table-name MyRouteTable \ --name StorageRoute \ --address-prefix Storage \ --next-hop-type VirtualAppliance \ --next-hop-ip-address 10.0.100.4