标识 Azure 虚拟网络的路由功能

已完成

若要控制虚拟网络中的流量流,必须了解自定义路由的用途和优点。 还必须了解如何配置路由,以使流量流通过网络虚拟设备 (NVA)。

Azure 路由

Azure 中的网络流量自动在 Azure 子网、虚拟网络和本地网络之间传送。 系统路由控制此路由。 默认情况下,它们被分配给虚拟网络中的每个子网。 通过这些系统路由,部署到虚拟网络中的任何 Azure 虚拟机都可以与网络的任何其他 Azure 虚拟机进行通信。 这些虚拟机还可能通过混合网络或 Internet 从本地访问。

无法创建或删除系统路由,但可以通过添加自定义路由来替代系统路由,以控制到下一跃点的流量流。

每个子网都有以下默认系统路由:

地址前缀 下一跃点类型
对虚拟网络唯一 虚拟网络
0.0.0.0/0 Internet
10.0.0.0/8
172.16.0.0/12
192.168.0.0/16
100.64.0.0/10

“下一跃点类型”列显示发送到每个地址前缀的流量所采用的网络路径。 路径可以是以下跃点类型之一:

  • 虚拟网络:路由在地址前缀中创建。 前缀表示在虚拟网络级别上创建的每个地址范围。 如果指定了多个地址范围,则为每个地址范围创建多个路由。
  • Internet:默认系统路由 0.0.0.0/0 将任何地址范围路由到 Internet,除非使用自定义路由替代 Azure 的默认路由。
  • :任何路由到此跃点类型的流量都将被丢弃,而不会在子网外部路由。 默认情况下,将创建以下 IPv4 专用地址前缀:10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16。 还为共享地址空间添加了前缀 100.64.0.0/10。 这些地址范围都不是全球可路由的。

下图显示了系统路由的概览以及默认情况下流量在子网和 Internet 之间的流动方式。 从关系图中可以看出,流量在两个子网和 Internet 之间自由流动。

示意图显示流量在子网和 Internet 之间流动。

在 Azure 中,还有其他系统路由。 如果启用以下功能,Azure 会创建这些路由:

  • 虚拟网络对等互连
  • 服务链
  • 虚拟网络网关
  • 虚拟网络服务终结点

虚拟网络对等互连和服务链

通过虚拟网络对等互连和服务链,Azure 内的虚拟网络可连接到另一虚拟网络。 通过此连接,虚拟机可以在相同区域内或跨区域进行相互通信。 此通信进而会在默认路由表中创建更多路由。 借助服务链,可以通过在对等互连的网络之间创建用户定义路由来替代这些路由。

下图显示了已配置对等互连的两个虚拟网络。 用户定义路由配置为通过 NVA 或 Azure VPN 网关路由流量。

示意图显示通过用户定义的路由实现虚拟网络对等互连。

虚拟网络网关

使用虚拟网络网关通过 Internet 在 Azure 和本地之间发送加密流量,并在 Azure 网络之间发送加密流量。 虚拟网络网关包含路由表和网关服务。

示意图显示虚拟网关的结构。

虚拟网络服务终结点

虚拟网络终结点通过提供对 Azure 资源的直接连接来扩展 Azure 中的专用地址空间。 此连接将限制流量流,Azure 虚拟机可直接从专用地址空间访问存储帐户,并拒绝从公共虚拟机进行访问。 启用服务终结点时,Azure 会在路由表中创建路由以定向此流量。

自定义路由

通过系统路由,可以轻松地快速启动和运行环境。 但是在许多场景中,你需要更密切地控制网络中的流量流。 例如,可能需要通过 NVA 或通过其他人的防火墙来路由流量。 此控制可以通过自定义路由来实现。

有两种实现自定义路由的方式:创建用户定义路由,或使用边界网关协议 (BGP) 在 Azure 与本地网络之间交换路由。

用户定义路由

可以使用用户定义路由来替代默认系统路由,以便可以通过防火墙或 NVA 路由流量。

例如,假设有一个包含两个子网的网络,并且想要在外围网络中添加虚拟机以用作防火墙。 可以创建用户定义的路由,使流量通过防火墙,而不会直接在子网之间传输。

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

  • 虚拟设备:虚拟设备通常是一种防火墙设备,用于分析或筛选进入或离开网络的流量。 可以指定附加到虚拟机的网络接口卡 (NIC) 的专用 IP 地址,以便能够启用 IP 转发。 或者,可以提供内部负载均衡器的专用 IP 地址。
  • 虚拟网络网关:用于指示何时需要将特定地址的路由路由到虚拟网络网关。 虚拟网络网关会被指定为下一跃点类型的 VPN。
  • 虚拟网络:用于替代虚拟网络中的默认系统路由。
  • Internet:用于将流量路由到已路由到 Internet 的指定地址前缀。
  • :用于丢弃已发送到指定地址前缀的流量。

通过用户定义路由,无法将下一跃点类型指定为表示虚拟网络对等互连的 VirtualNetworkServiceEndpoint。

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

可将服务标记指定为用户定义的路由的地址前缀,而不是显式 IP 范围。 服务标记代表给定 Azure 服务中的一组 IP 地址前缀。 Microsoft 会管理服务标记包含的地址前缀,并会在地址发生更改时自动更新服务标记。 从而最大限度地减少对用户定义的路由进行频繁更新的复杂性,并减少你需要创建的路由数量。

边界网关协议

本地网络中的网络网关可以通过 BGP 与 Azure 中的虚拟网络网关交换路由。 BGP 是通常用于在两个或更多网络之间交换路由信息的标准路由协议。 BGP 用于在 Internet 上的自治系统(如不同的主机网关)之间传输数据和信息。

当通过 Azure ExpressRoute 连接到 Azure 数据中心时,通常使用 BGP 将本地路由播发到 Azure。 如果通过使用 VPN 站点到站点连接来连接到 Azure 虚拟网络,也可以配置 BGP。

下图显示了具有可在 Azure VPN 网关和本地网络之间传输数据的路径的拓扑:

演示使用边界网关协议的示例的关系图。

BGP 可提供网络稳定性,因为在连接路径出现故障时,路由器可以快速更改连接以发送数据包。

路由选择和优先级

如果路由表中有多个可用路由,Azure 将使用具有最长前缀匹配的路由。 例如,消息被发送到 IP 地址 10.0.0.2,但有两个路由可用,分别具有 10.0.0.0/16 和 10.0.0.0/24 前缀。 Azure 选择具有 10.0.0.0/24 前缀的路由,因为它更具体。

路由前缀越长,通过该前缀的可用 IP 地址列表就越短。 通过使用较长的前缀,路由算法可以更快地选择预期地址。

无法配置多个具有同一地址前缀的用户定义路由。

如果多个路由具有同一地址前缀,则 Azure 会根据其类型按以下优先级顺序选择路由:

  1. 用户定义路由
  2. BGP 路由
  3. 系统路由

知识检查

1.

为什么要在虚拟网络中使用自定义路由?

2.

为什么要使用虚拟网络对等互连?