Azure微软云

什么是 Azure 虚拟网络?

Azure 虚拟网络 (VNet) 是 Azure 中专用网络的基本构建块。VNet 使多种类型的 Azure 资源(例如 Azure 虚拟机 (VM))能够安全地相互通信、Internet 和本地网络。VNet 类似于您在自己的数据中心中运行的传统网络,但它带来了 Azure 基础架构的其他优势,例如规模、可用性和隔离性。

为什么使用 Azure 虚拟网络?

Azure 虚拟网络使 Azure 资源能够安全地相互通信、Internet 和本地网络。可以使用虚拟网络完成的关键方案包括 - Azure 资源与 Internet 的通信、Azure 资源之间的通信、与本地资源的通信、过滤网络流量、路由网络流量以及与 Azure 服务的集成。

与互联网交流

默认情况下,VNet 中的所有资源都可以与 Internet 进行出站通信。您可以通过分配公共 IP 地址或公共负载均衡器来与资源进行入站通信。您还可以使用公共 IP 或公共负载均衡器来管理您的出站连接。若要详细了解 Azure 中的出站连接,请参阅出站连接公共 IP 地址负载均衡器

在 Azure 资源之间进行通信

Azure 资源通过以下方式之一安全地相互通信:

  • 通过虚拟网络:您可以将 VM 和其他几种类型的 Azure 资源部署到虚拟网络,例如 Azure 应用服务环境、Azure Kubernetes 服务 (AKS) 和 Azure 虚拟机规模集。若要查看可以部署到虚拟网络中的 Azure 资源的完整列表,请参阅虚拟网络服务集成
  • 通过虚拟网络服务终结点:通过直接连接将虚拟网络专用地址空间和虚拟网络标识扩展到 Azure 服务资源,例如 Azure 存储帐户和 Azure SQL 数据库。服务终结点允许您仅将关键 Azure 服务资源保护到虚拟网络。要了解更多信息,请参阅虚拟网络服务终结点概述
  • 通过 VNet 对等互连:您可以将虚拟网络相互连接,从而使任一虚拟网络中的资源能够使用虚拟网络对等互连相互通信。你连接的虚拟网络可以位于相同或不同的 Azure 区域。要了解更多信息,请参阅虚拟网络对等互连

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

使用虚拟网络对等互连(无论是本地的还是全局的)的好处包括:

  • 不同虚拟网络中资源之间的低延迟、高带宽连接。
  • 一个虚拟网络中的资源与不同虚拟网络中的资源进行通信的能力。
  • 跨 Azure 订阅、Azure Active Directory 租户、部署模型和 Azure 区域的虚拟网络之间传输数据的能力。
  • 通过 Azure 资源管理器创建的对等虚拟网络的能力。
  • 将通过资源管理器创建的虚拟网络与通过经典部署模型创建的虚拟网络对等的能力。若要详细了解 Azure 部署模型,请参阅了解 Azure 部署模型
  • 在创建对等互连时或在创建对等互连之后,任何一个虚拟网络中的资源都不会停机。

对等虚拟网络之间的网络流量是私有的。虚拟网络之间的流量保留在 Microsoft 主干网络上。虚拟网络之间的通信不需要公共 Internet、网关或加密。

Azure可选默认路由类型?

默认

每条路由都包含一个地址前缀和下一跳类型。当离开子网的流量发送到路由地址前缀内的 IP 地址时,包含前缀的路由就是 Azure 使用的路由。详细了解当多个路由包含相同前缀或重叠前缀时Azure 如何选择路由。每当创建虚拟网络时,Azure 都会自动为虚拟网络中的每个子网创建以下默认系统路由:

资源地址前缀下一跳类型
默认虚拟网络独有虚拟网络
默认0.0.0.0/0互联网
默认10.0.0.0/8没有任何
默认172.16.0.0/12没有任何
默认192.168.0.0/16没有任何
默认100.64.0.0/10没有任何

上表中列出的下一跃点类型表示 Azure 如何路由以所列地址前缀为目标的流量。下一个跃点类型的说明如下:

  • 虚拟网络:在地址空间内的地址范围之间路由流量的虚拟网络。Azure 创建一个路由,其地址前缀对应于在虚拟网络的地址空间中定义的每个地址范围。如果虚拟网络地址空间定义了多个地址范围,Azure 会为每个地址范围创建一个单独的路由。Azure 使用为每个地址范围创建的路由自动在子网之间路由流量。无需为 Azure 定义网关即可在子网之间路由流量。尽管虚拟网络包含子网,并且每个子网都有定义的地址范围,但 Azure 不会为子网地址范围创建默认路由。这是因为每个子网地址范围都在虚拟网络地址空间的地址范围内。

  • Internet:将地址前缀指定的流量路由到 Internet。系统默认路由指定 0.0.0.0/0 地址前缀。如果不覆盖 Azure 的默认路由,Azure 会将虚拟网络中地址范围未指定的任何地址的流量路由到 Internet,但有一个例外。如果目标地址用于 Azure 的一项服务,Azure 会通过 Azure 的骨干网络将流量直接路由到服务,而不是将流量路由到 Internet。Azure 服务之间的流量不会通过 Internet,无论虚拟网络存在于哪个 Azure 区域,或者 Azure 服务的实例部署在哪个 Azure 区域。您可以覆盖 0.0.0.0 的 Azure 默认系统路由。

  • :路由到下一跃点类型的流量被丢弃,而不是路由到子网外部。Azure 自动为以下地址前缀创建默认路由:

    • 10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16:在 RFC 1918 中保留供私人使用。
    • 100.64.0.0/10:在 RFC 6598 中保留。

    如果您在虚拟网络的地址空间中分配任何先前的地址范围,Azure 会自动将路由的下一个跃点类型从None更改为Virtual network。如果将地址范围分配给包含四个保留地址前缀之一但不相同的虚拟网络的地址空间,Azure 会删除该前缀的路由并为您添加的地址前缀添加一个路由,以虚拟网络作为下一跳类型。

Azure 为不同的 Azure 功能添加了更多默认系统路由,但前提是你启用了这些功能。根据功能,Azure 将可选的默认路由添加到虚拟网络中的特定子网或虚拟网络中的所有子网。启用不同功能时 Azure 可能添加的其他系统路由和下一跃点类型包括:

资源地址前缀下一跳类型路由添加到的虚拟网络中的子网
默认虚拟网络独有,例如:10.1.0.0/16VNet 对等互连全部
虚拟网关通过 BGP 从本地通告的前缀,或在本地网关中配置的前缀虚拟网关全部
默认虚拟网络服务端点仅启用服务端点的子网。
  • 虚拟网络 (VNet) 对等互连:在两个虚拟网络之间创建虚拟网络对等互连时,将为创建对等互连的每个虚拟网络的地址空间内的每个地址范围添加一条路由。了解有关虚拟网络对等互连的更多信息。

  • 虚拟网络网关:将虚拟网络网关添加到虚拟网络时,会添加一个或多个路由,其中​​虚拟网络网关列为下一跃点类型。源也是虚拟网络网关,因为网关将路由添加到子网。如果您的本地网络网关交换边界网关协议 ( BGP) 路由与 Azure 虚拟网络网关,为从本地网络网关传播的每个路由添加一个路由。建议您将本地路由汇总到可能的最大地址范围,以便将最少数量的路由传播到 Azure 虚拟网络网关。可以传播到 Azure 虚拟网络网关的路由数量存在限制。有关详细信息,请参阅Azure 限制

  • VirtualNetworkServiceEndpoint:当您为服务启用服务终结点时,Azure 会将某些服务的公共 IP 地址添加到路由表中。为虚拟网络中的各个子网启用服务终结点,因此路由仅添加到启用服务终结点的子网的路由表中。Azure 服务的公共 IP 地址会定期更改。当地址更改时,Azure 会自动管理路由表中的地址。详细了解虚拟网络服务端点,以及您可以为其创建服务端点的服务。

    笔记

    VNet 对等互连和VirtualNetworkServiceEndpoint一跃点类型仅添加到通过 Azure 资源管理器部署模型创建的虚拟网络内的子网路由表中。下一个跃点类型不会添加到与通过经典部署模型创建的虚拟网络子网关联的路由表中。详细了解 Azure部署模型

Azure 工具中的下一跃点类型 

Azure 门户和命令行工具以及 Azure 资源管理器和经典部署模型之间显示和引用的下一跃点类型的名称不同。下表列出了用于引用具有不同工具和部署模型的每个下一跃点类型的名称:

下一跳类型Azure CLI 和 PowerShell(资源管理器)Azure 经典 CLI 和 PowerShell(经典)
虚拟网关虚拟网络网关VPN网关
虚拟网络VNetLocalVNETLocal(在服务管理模式下的经典 CLI 中不可用)
互联网互联网Internet(在服务管理模式下的经典 CLI 中不可用)
虚拟设备虚拟设备虚拟设备
没有任何没有任何Null(在服务管理模式下的经典 CLI 中不可用)
虚拟网络对等VNet 对等互连不适用
虚拟网络服务端点虚拟网络服务端点不适用

Azure 如何选择路由(路由类型及其优先级)

从子网发送出站流量时,Azure 使用最长前缀匹配算法根据目标 IP 地址选择路由。例如,一个路由表有两条路由:一条路由指定 10.0.0.0/24 地址前缀,而另一条路由指定 10.0.0.0/16 地址前缀。Azure 将发往 10.0.0.5 的流量路由到具有 10.0.0.0/24 地址前缀的路由中指定的下一个跃点类型,因为 10.0.0.0/24 是比 10.0.0.0/16 更长的前缀,即使 10.0.0.5位于两个地址前缀内。Azure 将发往 10.0.1.5 的流量路由到具有 10.0.0.0/16 地址前缀的路由中指定的下一个跃点类型,因为 10.0.1.5 不包含在 10.0.0.0/24 地址前缀中,因此具有10.0.0.0/16 地址前缀是匹配的最长前缀。

如果多个路由包含相同的地址前缀,Azure 会根据以下优先级选择路由类型:

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

笔记

与虚拟网络、虚拟网络对等互连或虚拟网络服务终结点相关的流量的系统路由是首选路由,即使 BGP 路由更具体。

笔记

与虚拟网络、虚拟网络对等互连或虚拟网络服务终结点相关的流量的系统路由是首选路由,即使 BGP 路由更具体。

例如,路由表包含以下路由:

资源地址前缀下一跳类型
默认0.0.0.0/0互联网
用户0.0.0.0/0虚拟网关

当流量的目的地是路由表中任何其他路由的地址前缀之外的 IP 地址时,Azure 会选择具有用户源的路由,因为用户定义的路由的优先级高于系统默认路由。

0.0.0.0/0 地址前缀?

具有 0.0.0.0/0 地址前缀的路由指示 Azure 如何路由发往不在子网路由表中任何其他路由的地址前缀内的 IP 地址的流量。创建子网时,Azure 会使用Internet下一跃点类型创建到 0.0.0.0/0 地址前缀的默认路由。如果不覆盖此路由,Azure 会将所有发往未包含在任何其他路由的地址前缀中的 IP 地址的流量路由到 Internet。例外情况是到 Azure 服务的公共 IP 地址的流量仍保留在 Azure 主干网络上,并且不会路由到 Internet。如果您覆盖此路由,则使用自定义路由,发往不在路由表中任何其他路由的地址前缀内的地址的流量将被发送到网络虚拟设备或虚拟网络网关,具体取决于您在自定义路由中指定的内容。

当您覆盖 0.0.0.0/0 地址前缀时,除了来自子网的出站流量流经虚拟网关或虚拟设备外,Azure 的默认路由还会发生以下更改:

  • Azure 将所有流量发送到路由中指定的下一个跃点类型,包括发往 Azure 服务公共 IP 地址的流量。当地址前缀为 0.0.0.0/0 的路由的下一跃点类型为Internet时,从子网到 Azure 服务的公共 IP 地址的流量永远不会离开 Azure 的骨干网络,无论 Azure 区域是虚拟网络还是 Azure 服务资源存在。但是,当您使用虚拟网络网关虚拟设备下一跃点类型创建用户定义或 BGP 路由时,所有流量,包括发送到 Azure 服务的公共 IP 地址的流量,您尚未启用服务终结点for, 被发送到路由中指定的下一跳类型。如果您为服务启用了服务端点,则到服务的流量不会路由到地址前缀为 0.0.0.0/0 的路由中的下一个跃点类型,因为服务的地址前缀是在路由中指定的Azure 在您启用服务终结点时创建,并且服务的地址前缀长于 0.0.0.0/0。

  • 您不再能够从 Internet 直接访问子网中的资源。如果入站流量通过地址前缀为 0.0.0.0/0 的路由的下一跃点类型指定的设备,然后到达虚拟网络中的资源,则可以从 Internet 间接访问子网中的资源。如果路由包含以下下一跳类型的值:

    • 虚拟设备:设备必须:

      • 可从 Internet 访问
      • 有一个分配给它的公共 IP 地址,
      • 没有与之关联的阻止与设备通信的网络安全组规则
      • 不拒绝沟通
      • 能够进行网络地址转换和转发,或将流量代理到子网中的目标资源,并将流量返回到 Internet。
    • 虚拟网络网关:如果网关是 ExpressRoute 虚拟网络网关,则本地连接 Internet 的设备可以通过 ExpressRoute 的专用对等互连将网络地址转换和转发,或将流量代理到子网中的目标资源。

 


版权声明:本文为qq_39173848原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。