实现 IaaS 虚拟机 IP 路由

已完成

作为 Contoso 的网络系统工程师,你特别关注 Azure 资源内部和周围、Internet 之间以及本地基础结构中的网络流量流。 你决定研究 Azure 路由,了解如何实现路由以满足 Contoso 的需求。 你了解到,对于 Azure VNet 中的每个子网,Azure 都会创建一个路由表,并使用系统默认路由来填充它。 通过添加到默认路由,你可创建自己的自定义路由。

系统路由

不能创建系统路由,也不能替代现有的系统路由。 但可以通过定义自定义路由来更改路由行为。

注意

Azure 根据子网的路由表中的路由,从子网路由流量。

默认

创建路由时,必须定义其地址前缀和下一个跃点。 将离开子网的流量发送到某个定义的路由的地址前缀中的 IP 地址时,包含前缀的该路由是 Azure 使用的路由。 如果多个路由包含相同的地址前缀,Azure 会根据以下顺序选择路由:

  1. 首先使用用户定义的路由。
  2. 接下来使用边界网关协议 (BGP) 路由。
  3. 如果不存在其他备选项,则使用系统路由。

创建 VNet 时,Azure 会自动创建多个默认路由,如下表所述。

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

下表描述 Azure 如何解释下一个跃点类型。

下一个跃点类型 Azure 如何确定路由
虚拟网络 在 VNet 的地址空间中的地址范围之间路由流量。 Azure 会创建一个带有地址前缀的路由,地址前缀对应于 VNet 的地址空间中定义的每个地址范围。 如果 VNet 地址空间定义了多个地址范围,Azure 会为每个地址范围创建单个路由。 Azure 使用为每个地址范围创建的路由在子网之间自动路由流量。
Internet 将地址前缀指定的流量路由到 Internet。 系统默认路由指定 0.0.0.0/0 地址前缀。 Azure 会将未由 VNet 中的地址范围指定的任何地址的流量路由到 Internet,但其他 Azure 服务的流量除外。 如果目标地址是某项 Azure 服务的地址,Azure 会将流量通过 Azure 的主干网络直接路由到该服务,而不是将流量路由到 Internet。
路由到“无”下一个跃点类型的流量不会路由到子网外,而是会删除。

提示

可使用自定义路由替代 0.0.0.0/0 地址前缀的 Azure 默认系统路由。

提示

不需为 Azure 定义在子网之间路由流量的网关。

可选的默认值

如果你添加特定的 Azure 功能,Azure 会创建附加的默认规则。 若要创建这些可选的默认规则,必须启用这些 Azure 功能。 下表对这些规则进行说明。

来源 前缀 下一个跃点类型 Azure 向其添加路由的 VNet 中的子网
默认 对于 VNet 是唯一的,例如 10.2.0.0/16 VNet 对等互连 全部
虚拟网络网关 从本地通过 BGP 播发的前缀,或者在本地网关中配置的前缀 虚拟网络网关 全部
默认 多个 VirtualNetworkServiceEndpoint 仅为其启用服务终结点的子网

下表描述 Azure 如何解释下一个跃点类型。

下一个跃点类型 Azure 路由方式
VNet 对等互连 在两个 VNet 之间创建 VNet 对等互连时,Azure 会为每个 VNet(已为其创建对等互连)的地址空间中的每个地址范围添加一个路由。
虚拟网络网关 向虚拟网络添加 VNet 网关时,Azure 会添加一个或多个将 VNet 网关作为下一个跃点类型列出的路由。 源也是 VNet 网关,因为网关向子网添加路由。 如果本地网关与 Azure 虚拟网关交换了边界网关协议 (BGP) 路由,则会为每个从本地网关传播的路由添加一个路由。
VirtualNetworkServiceEndpoint 当你启用特定服务的服务终结点时,Azure 会将服务的公共 IP 地址添加到路由表中。 为 VNet 中的各个子网启用服务终结点,使路由仅添加到为其启用服务终结点的子网的路由表。

注意

Azure 服务的公共 IP 地址定期更改。 当地址更改时,Azure 会自动管理路由表中的地址。

自定义路由

可以在 Azure 中创建用户定义的自定义路由,也可以通过与本地网络基础结构和 Azure VNet 网关交换 BGP 路由来生成自定义路由。

Azure 门户中“创建路由表”页的屏幕截图。管理员已将“名称”定义为 ContosoRouteTable,并为虚拟网关路由传播值选择了“启用”。

用户定义

可在 Azure 中创建用户定义的自定义路由来替代 Azure 的默认系统路由。 在 Azure 中,你可以创建路由表,然后将该路由表与零个或多个虚拟网络子网相关联。 每个子网可以有一个与之关联的路由表,也可以没有。 如果创建了一个路由表并将其与子网相关联,则表中的路由将与 Azure 默认添加到子网的默认路由组合在一起,或者替代这些默认路由。

Azure 门户中“添加路由”页的屏幕截图。管理员已将路由名称定义为 Internet,地址前缀定义为 0.0.0.0/0,下一个跃点类型为 Internet。

下表定义了创建自定义路由时可选择使用的下一跃点类型。

下一个跃点类型 说明
虚拟设备 将流量发送到网络应用程序(例如防火墙)时,请选择此项。 使用“虚拟设备”跃点类型创建路由时,也指定下一跃点 IP 地址。 IP 地址可以是附加到 VM 的网络接口的专用 IP 地址,也可以是 Azure 内部负载均衡器的专用 IP 地址。
虚拟网络网关 需要将目标为特定地址前缀的流量路由到 VNet 网关时,请选择此项。
需要将已定义前缀的网络流量删除时,请选择此项。
VNet 需要替代 VNet 中的默认路由,请选择此项。
Internet 需要将目标为某个地址前缀的流量显式路由到 Internet 时,或者需要将流量的目标设定为 Azure 服务,且公共 IP 地址始终位于 Azure 主干网络内时,请选择此项。

附加阅读材料

若要了解详细信息,请查看以下文档: