您现在访问的是微软AZURE全球版技术文档网站,若需要访问由世纪互联运营的MICROSOFT AZURE中国区技术文档网站,请访问 https://docs.azure.cn.

使用 VPN 扩展本地网络

Bastion
Azure Stack
虚拟机
虚拟网络
VPN 网关

此参考体系结构演示如何使用站点到站点虚拟专用网络 (VPN) 将网络从本地或 Azure Stack 扩展到 Azure 虚拟网络。 流量通过 IPSec VPN 隧道或通过 Azure Stack 多租户 VPN 网关在本地网络与 Azure 之间流动。 部署此解决方案

Hybrid network spanning on-premises and Azure infrastructures

VPN 网关体系结构的关系图。 本地网络通过 VPN 网关连接到 Azure 虚拟网络。 Azure Stack 中的虚拟网络还通过公共 Vip 连接到 VPN 网关。

下载此体系结构的 Visio 文件

体系结构

该体系结构包括以下组件。

  • 本地网络。 组织中运行的专用局域网。

  • Azure Stack。 在组织中运行的 Azure Stack 租户订阅上的网络环境。 Azure Stack VPN 网关通过公共连接将加密流量发送到虚拟 IP (VIP) 地址,并包括以下组件:

    • 网关子网。 Azure Stack 上部署 VPN 网关所需的特殊子网。
    • 本地网络网关。 指示 Azure 中的 VPN 网关的目标 IP 以及 Azure 虚拟网络的地址空间。
    • 站点到站点 VPN 隧道。 连接类型 (IPSec) 以及与 Azure VPN 网关共享的密钥,以对流量进行加密。
  • VPN 设备。 用于与本地网络建立外部连接的设备或服务。 该 VPN 设备可以是硬件设备,也可以是软件解决方案,例如 Windows Server 2012 中的路由和远程访问服务 (RRAS)。 有关支持的 VPN 设备的列表以及有关如何配置它们以连接到 Azure VPN 网关的信息,请参阅关于站点到站点 VPN 网关连接的 VPN 设备一文中针对所选设备的说明。

  • 虚拟网络。 Azure VPN 网关的云应用程序和组件位于同一 虚拟网络中。

  • AZURE VPN 网关Vpn 网关服务使你可以通过 vpn 设备将虚拟网络连接到本地网络,或者通过站点到站点 VPN 隧道连接到 Azure Stack。 有关详细信息,请参阅将本地网络连接到 Microsoft Azure 虚拟网络。 VPN 网关包括以下元素:

    • 虚拟网络网关。 为虚拟网络提供虚拟 VPN 设备的资源。 它负责将流量从本地网络路由到虚拟网络。
    • 本地网络网关。 本地 VPN 设备的抽象。 从云应用程序到本地网络的网络流量通过此网关进行路由。
    • 连接。 该连接包含一些属性,这些属性指定连接类型 (IPSec),以及与本地 VPN 设备共享的、用于加密流量的密钥。
    • 网关子网。 虚拟网络网关保留在自己的子网中,该子网需满足下面“建议”一节中所述的要求。
  • 云应用程序。 Azure 中托管的应用程序。 它可以包含多个层,以及通过 Azure 负载均衡器连接的多个子网。 有关应用程序基础结构的详细信息,请参阅运行 Windows VM 工作负荷运行 Linux VM 工作负荷

  • 内部负载均衡器。 来自 VPN 网关的网络流量通过内部负载均衡器路由到云应用程序。 该负载均衡器位于应用程序的前端子网中。

  • 堡垒。 使用Azure 堡垒,可以通过 SSH 或远程桌面协议 (RDP) 登录到虚拟网络中的 vm,而无需直接向 Internet 公开 vm。 如果通过 VPN 断开连接,仍可使用堡垒管理虚拟网络中的 Vm。

建议

以下建议适用于大多数方案。 除非有优先于这些建议的特定要求,否则请遵循这些建议。

虚拟网络和网关子网

使用足够大的地址空间创建 Azure 虚拟网络,以满足所有所需资源的需求。 如果将来可能需要更多 Vm,请确保虚拟网络地址空间有足够的空间来进行增长。 虚拟网络的地址空间不能与本地网络重叠。 例如,上图对虚拟网络使用地址空间 10.20.0.0/16。

创建一个名为 GatewaySubnet 的子网,使其地址范围为 /27。 此子网是虚拟网络网关所必需的。 向此子网分配 32 个地址将有助于防止将来达到网关大小限制。 此外,避免将此子网置于地址空间中间。 一种很好的做法是,在虚拟网络地址空间的高端设置网关子网的地址空间。 图中所示的示例使用 10.20.255.224/27。 下面是用于计算 CIDR 的快速过程:

  1. 将虚拟网络的地址空间中的可变位数设置为1,最大可为网关子网使用的位数,然后将剩余的位设置为0。
  2. 将得到的位转换为十进制,然后将它表示为前缀长度设置为网关子网大小的地址空间。

例如,对于 IP 地址范围为 10.20.0.0/16 的虚拟网络,应用上述步骤 #1 会成为 10.20.0 b 11111111.0 b 11100000。 将该数字转换为十进制并将它表示为地址空间会生成 10.20.255.224/27。

警告

请勿向网关子网部署任何 VM。 此外,请勿向此子网分配 NSG,因为它会导致网关停止工作。

虚拟网络网关

为虚拟网络网关分配公共 IP 地址。

在网关子网中创建虚拟网络网关,并将新分配的公共 IP 地址分配给它。 使用最符合你要求并且通过 VPN 设备启用的网关类型:

  • 如果需要基于策略条件(如地址前缀)密切控制如何对请求进行路由,请创建基于策略的网关。 基于策略的网关使用静态路由,仅适用于站点到站点连接。

  • 创建 基于路由的网关

    • 使用 RRAS 连接到本地网络。
    • 你支持多站点或跨区域连接,或者
    • 虚拟网络之间存在连接,包括遍历多个虚拟网络的路由。

    基于路由的网关使用动态路由定向网络之间的流量。 它们在网络路径中的容错能力好于静态路由,因为它们可以尝试备用路由。 基于路由的网关还可以减少管理开销,因为路由在网络地址更改时可以无需手动更新。

有关支持的 VPN 设备的列表,请参阅关于站点到站点 VPN 网关连接的 VPN 设备

备注

创建网关后,必须先删除并重新创建网关才能更改网关类型。

选择最符合你吞吐量要求的 Azure VPN 网关 SKU。 有关详细信息,请参阅 网关 sku

备注

基本 SKU 不与 Azure ExpressRoute 兼容。 可以在创建网关之后更改 SKU

为网关子网创建将传入应用程序流量从网关定向到内部负载均衡器,而不是允许请求直接传递到应用程序 VM 的路由规则。

本地网络连接

创建本地网络网关。 指定本地 VPN 设备的公共 IP 地址以及本地网络的地址空间。 请注意,本地 VPN 设备必须具有可由 Azure VPN 网关中的本地网络网关访问的公共 IP 地址。 VPN 设备不能位于网络地址转换 (NAT) 设备后面。

为虚拟网络网关和本地网络网关创建站点到站点连接。 选择站点到站点 (IPSec) 连接类型,并指定共享密钥。 具有 Azure VPN 网关的站点到站点加密基于 IPSec 协议,使用预共享密钥进行身份验证。 创建 Azure VPN 网关时需指定密钥。 必须使用相同密钥配置在本地运行的 VPN 设备。 当前不支持其他身份验证机制。

确保将本地路由基础结构配置为将适用于 Azure 虚拟网络中的地址的请求转发到 VPN 设备。

在本地网络中打开云应用程序所需的任何端口。

测试连接以验证以下事项:

  • 本地 VPN 设备通过 Azure VPN 网关将流量正确路由到云应用程序。
  • 虚拟网络将流量正确路由回本地网络。
  • 正确阻止两个方向上的禁止流量。

Azure Stack 网络连接

此参考体系结构演示如何通过 Azure Stack 多租户 VPN 网关将 Azure Stack 部署中的虚拟网络连接到 Azure 中的虚拟网络。 常见的一种情况是,在 Azure Stack 中隔离关键操作和敏感数据,并利用 Azure 来实现公共事务和暂时性、不敏感的操作。

在此体系结构中,网络流量在 Azure Stack 上使用多租户网关流过 VPN 隧道。 或者,流量可以通过 Internet 在 Azure Stack 和 Azure 之间通过租户 Vip、Azure ExpressRoute 或充当 VPN 终结点的网络虚拟设备进行流式传输。

Azure Stack 虚拟网络网关容量

Azure VPN 网关和 Azure Stack VPN 网关都支持边界网关协议在 Azure 和 Azure Stack 之间交换路由信息 (BGP) 。 Azure Stack 不支持多租户网关的静态路由。

创建一个 Azure Stack 的虚拟网络,该网络具有已分配的 IP 地址空间,足以容纳所有所需的资源。 虚拟网络的地址空间不得与要连接到此虚拟网络的任何其他网络重叠。

在部署 Azure Stack 的过程中,会将公共 IP 地址分配给多租户网关。 它是从公共 VIP 池获取的。 Azure Stack 运算符无法控制所使用的 IP 地址,但可以确定其分配。

注意

工作负荷 Vm 无法部署在 Azure Stack 网关子网中。 此外,请勿向此子网分配 NSG,因为它会导致网关停止工作。

可伸缩性注意事项

可以通过从基本或标准 VPN 网关 SKU 升级到高性能 VPN SKU,来实现有限纵向可缩放性。

对于需要大量 VPN 流量的虚拟网络,请考虑将不同的工作负荷分发到不同的小型虚拟网络,并为每个虚拟网络配置 VPN 网关。

可以水平或垂直对虚拟网络进行分区。 若要水平分区,请将每个层中的一些 VM 实例移到新的虚拟网络的子网中。 结果是每个虚拟网络具有相同的结构和功能。 若要进行垂直分区,请重新设计每个层,以将功能划分为不同逻辑区域(如处理订单、开发票、客户帐户管理等)。 然后,可以将每个功能区域置于其自己的虚拟网络中。

在虚拟网络中复制本地 Active Directory 域控制器以及在虚拟网络中实施 DNS,有助于减少从本地到云的一些安全相关和管理流量。 有关详细信息,请参阅将 Active Directory 域服务 (AD DS) 扩展到 Azure

可用性注意事项

如果需要确保本地网络对 Azure VPN 网关保持可用,请为本地 VPN 网关实现故障转移群集。

如果你的组织有多个本地站点,请创建与一个或多个 Azure 虚拟网络的 多站点连接 。 此方法需要动态(基于路由的)路由,因此请确保本地 VPN 网关支持此功能。

有关服务级别协议的详细信息,请参阅 VPN 网关的 SLA

在 Azure Stack 上,你可以展开 VPN 网关,包括多个 Azure Stack stamp 和 Azure 部署的接口。

DevOps 注意事项

使用基础结构作为代码 (IaC) 过程来部署基础结构。 在此体系结构中,我们使用了一组使用 Azure 门户部署的 Azure 构建基块 自定义模板。 若要自动化基础结构部署,可使用 Azure DevOps Services 或其他 CI/CD 解决方案。 部署过程也是幂等的。

对于给定的资源,可能有部署资源之前必须存在的其他资源。 Azure 构建基块模板还适用于依赖项跟踪,因为它们允许你为在同一模板中部署的资源定义依赖项。

所有 (虚拟机规模集、VPN 网关、Azure 堡垒) 的主资源都位于同一虚拟网络中,因此它们隔离于相同的基本工作负载中。 这样就可以更轻松地将工作负荷的特定资源关联到团队,使团队能够独立管理这些资源的所有方面。 这种隔离使 DevOps 能够 (CI/CD) 执行持续集成和持续交付。

监视

监视来自本地 VPN 设备的诊断信息。 此过程取决于 VPN 设备提供的功能。 例如,如果在 Windows Server 2012 上使用路由和远程访问服务,则可使用 RRAS 日志记录

使用 Azure VPN 网关诊断可捕获有关连接问题的信息。 这些日志可以用于跟踪信息,如连接请求的源和目标、使用的协议以及连接的建立方式(或尝试失败的原因)。

使用 Azure 门户中提供的审核日志监视 Azure VPN 网关的操作日志。 为本地网络网关、Azure 网络网关和连接分别提供了单独的日志。 此信息可以用于跟踪对网关进行的任何更改,并且在以前正常运行的网关由于某种原因而停止工作时可能会十分有用。

Audit logs in the Azure portal

Azure 门户的屏幕截图,显示按日期筛选的审核日志事件。

监视连接,并跟踪连接失败事件。 可以使用监视包(如 Nagios)捕获并报告此信息。

若要排查连接问题,请参阅排查混合 VPN 连接问题

如果从本地网络到 Azure 的网关连接已关闭,你仍可以通过 Azure 堡垒访问 Azure 虚拟网络中的 Vm。

安全注意事项

为每个 VPN 网关生成不同的共享密钥。 使用强共享密钥可帮助抵御暴力攻击。

对于 Azure Stack 连接,为每个 VPN 隧道生成不同的共享密钥。 使用强共享密钥可帮助抵御暴力攻击。

备注

当前无法使用 Azure Key Vault 为 Azure VPN 网关预共享密钥。

确保本地 VPN 设备使用的加密方法与 Azure VPN 网关兼容。 对于基于策略的路由,Azure VPN 网关支持 AES256、AES128 和 3DES 加密算法。 基于路由的网关支持 AES256 和 3DES。

如果本地 VPN 设备位于在外围网络 (DMZ) 与 Internet 之间具有防火墙的外围网络中,则可能必须配置其他防火墙规则以允许实现站点到站点 VPN 连接。

如果虚拟网络中的应用程序将数据发送到 Internet,请考虑 实施强制隧道 来通过本地网络路由所有 Internet 绑定的流量。 此方法使你可以审核应用程序从本地基础结构进行的传出请求。

备注

强制隧道可能会影响与 Azure 服务(例如存储服务)和 Windows 许可证管理器之间的连接。

成本注意事项

使用 Azure 定价计算器估算成本。 有关一般注意事项,请参阅 Microsoft Azure Well-Architected 框架中的 "成本" 部分。

此体系结构中使用的服务按如下方式收费:

Azure VPN 网关

此体系结构的主要组件是 VPN 网关服务。 会基于预配和提供网关的时间量进行收费。

所有入站流量都是免费的,所有出站流量都是收费的。 Internet 带宽费用适用于 VPN 出站流量。

有关详细信息,请参阅 VPN 网关定价

Azure 虚拟网络

Azure 虚拟网络是免费的。 允许每个订阅在所有区域中最多创建 50 个虚拟网络。

虚拟网络边界内发生的所有流量都是免费的。 因此,同一虚拟网络中的两个虚拟机之间的通信是免费的。

Azure Bastion

Azure 堡垒通过 RDP 和 SSH 安全连接到虚拟网络中的虚拟机,而无需在虚拟机上配置公共 IP。 你将需要在每个包含要连接到的虚拟机的虚拟网络中的堡垒。 此解决方案比使用跳转框更经济、更安全。

有关示例,请参阅 Azure 堡垒定价

虚拟机和内部负载均衡器

在此体系结构中,内部负载均衡器用于对虚拟网络内的流量进行负载均衡。 位于同一虚拟网络中的虚拟机之间的基本负载均衡是免费的。

虚拟机规模集适用于所有 Linux 和 windows VM 大小。 只需为部署的 Azure Vm 和使用的底层基础结构资源(如存储和网络)付费。 虚拟机规模集服务无增量收费。

有关详细信息,请参阅 AZURE VM 定价

部署解决方案

若要部署此参考体系结构,请参阅 GitHub 自述文件

后续步骤

尽管可以使用 Vpn 连接 Azure 中的虚拟网络,但并不总是最佳选择。 有关详细信息,请参阅 在 Azure 中选择虚拟网络对等互连和 VPN 网关