Amazon Virtual Private Cloud
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS 托管的 VPN 连接

在默认情况下,您在 Virtual Private Cloud (VPC) 中启动的实例无法与您自己的网络进行通信。在 VPC 中附加虚拟专用网关、创建自定义路由表、更新您的安全组规则并创建 AWS 托管的 VPN 连接,可以启用从 VPC 访问您的网络的权限。

尽管术语 VPN 连接是一项泛指性术语,但是在 Amazon VPC 文档中,“VPN 连接”是指在您的 VPC 和您自己的网络之间的连接。AWS 支持 Internet 协议安全 (IPsec) VPN 连接。

AWS 托管的 VPN 连接可以是 AWS Classic VPN 或 AWS VPN。有关更多信息,请参阅 AWS 托管的 VPN 类别

重要

我们目前不支持通过 VPN 连接的 IPv6 流量。

有关在 VPC 中使用 VPN 连接的相关费用的信息,请参见 Amazon VPC 产品页面

VPN 组成部分

一项 VPN 连接由以下部分组成。有关 VPN 限制的更多信息,请参阅 Amazon VPC 限制

虚拟专用网关

虚拟专用网关是 VPN 连接在 Amazon 一端的 VPN 集线器。您可以创建虚拟专用网关,并将其附加到要从中创建 VPN 连接的 VPC。

创建虚拟专用网关时,可以为网关的 Amazon 端指定专用自治系统编号 (ASN)。如果不指定 ASN,则会使用默认 ASN (64512) 创建虚拟专用网关。创建虚拟专用网关后,无法更改 ASN。要检查虚拟专用网关的 ASN,请在 Amazon VPC 控制台中的 Virtual Private Gateways 屏幕上查看其详细信息,或者使用describe-vpn-gateways AWS CLI 命令。

注意

如果您在 2018-06-30 以前创建虚拟专用网关,则默认 ASN 在 亚太区域(新加坡) 区域中是 17493,在 亚太区域(东京) 区域中是 10124,在 欧洲(爱尔兰) 区域中是 9059,在所有其他区域中是 7224。

客户网关

客户网关是指 VPN 连接在您这一端的实体设备或软件应用程序。

要创建 VPN 连接,您必须在 AWS 中创建一个客户网关资源,用以向 AWS 提供有关您的客户网关设备的信息。下表描述了创建客户网关资源所需的信息。

Item 描述

客户网关外部接口的 Internet 可路由 IP 地址 (静态)

公有 IP 地址值必须是静态地址。如果您的客户网关位于为 NAT 遍历 (NAT-T) 而启用的网络地址转换 (NAT) 设备后面,请使用您的 NAT 设备的公有 IP 地址,并调整防火墙规则以取消阻止 UDP 端口 4500。

路由类型 — 静态或动态。

有关更多信息,请参阅 VPN 路由选项

(仅动态路由) 客户网关的边界网关协议 (BGP) 自治系统编号 (ASN)。

您可以使用指定给您的网络的现有 ASN。如果您没有 ASN,您可以使用专用 ASN (在 64512–65534 范围内)。

如果您在控制台中使用 VPC 向导来设置您的 VPC,我们会自动使用 65000 作为 ASN。

如需通过 VPN 连接使用 Amazon VPC,您或您的网络管理员还必须配置客户网关设备或应用程序。当您创建 VPN 连接时,我们会为您提供所需的配置信息,您的网络管理员通常会执行此配置。有关客户网关要求和配置的信息,请参阅 Amazon VPC 网络管理员指南中的您的客户网关

当流量从您的 VPN 连接端生成时,VPN 隧道出现。虚拟专用网关不是启动程序;您的客户网关必须启动隧道。如果 VPN 连接经历一段空闲时间 (通常为 10 秒,具体取决于配置),隧道就会关闭。为防止发生这种情况,您可以使用网络监控工具 (如使用 IP SLA) 来生成保持连接 Ping 信号。

有关已经过 Amazon VPC 测试的客户网关列表,请参见Amazon Virtual Private Cloud 常见问题

AWS 托管的 VPN 类别

AWS 托管的 VPN 连接可以是 AWS Classic VPN 连接或 AWS VPN 连接。您新建的所有 VPN 连接都是 AWS VPN 连接。仅有 AWS VPN 连接支持以下功能:

  • NAT 遍历

  • 4 字节 ASN (除 2 字节 ASN 之外)

  • CloudWatch 指标

  • 您的客户网关的可重用 IP 地址。

  • 其他加密选项,包括 AES 256 位加密、SHA-2 哈希,以及其他 Diffie-Hellman 组

  • 可配置的隧道选项

  • BGP 会话的 Amazon 端的自定义专用 ASN

您可以通过使用 Amazon VPC 控制台或命令行工具,查明 AWS 托管 VPN 连接的类别。

使用控制台确定 VPN 类别

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,选择 VPN Connections

  3. 选择 VPN 连接,在详细信息窗格中检查 Category 的值。值 VPN 表示 AWS VPN 连接。值 VPN-Classic 表示 AWS Classic VPN 连接。

使用命令行工具确定 VPN 类别

  • 您可以使用 describe-vpn-connections AWS CLI 命令。在返回的输出中,记下Category 值。值 VPN 表示 AWS VPN 连接。值 VPN-Classic 表示 AWS Classic VPN 连接。

    在下面的示例中,VPN 连接是 AWS VPN 连接。

    aws ec2 describe-vpn-connections --vpn-connection-ids vpn-1a2b3c4d
    { "VpnConnections": [ { "VpnConnectionId": "vpn-1a2b3c4d", ... "State": "available", "VpnGatewayId": "vgw-11aa22bb", "CustomerGatewayId": "cgw-ab12cd34", "Type": "ipsec.1", "Category": "VPN" } ] }

或者,使用以下命令之一:

迁移到 AWS VPN

如果您现有的 VPN 连接是 AWS Classic VPN 连接,则可以通过创建新的虚拟专用网关和 VPN 连接,将旧的虚拟专用网关从您的 VPC 中断开,并将新的虚拟专用网关连接到 VPC,来迁移到 AWS VPN 连接。

如果现有的虚拟专用网关与多个 VPN 连接关联,则必须为新的虚拟专用网关重新创建各自的 VPN 连接。如果有多个 AWS Direct Connect 专用虚拟接口连接到虚拟专用网关,您必须为新的虚拟专用网关重新创建各自的专用虚拟接口。有关更多信息,请参阅 AWS Direct Connect 用户指南中的创建虚拟接口

如果现有的 AWS 托管 VPN 连接是 AWS VPN 连接,则您无法迁移到 AWS Classic VPN 连接。

注意

在此过程中,如果您禁用路由传播并将旧的虚拟专用网关与您的 VPC 分离,通过当前 VPC 连接进行的连接会中断。当新的虚拟专用网关连接到您的 VPC 并且新的 VPN 连接处于活动状态时,将会恢复连接。确保您为预期的停机时间做了计划。

迁移到 AWS VPN 连接

  1. 打开 Amazon VPC 控制台 https://console.amazonaws.cn/vpc/

  2. 在导航窗格中,依次选择 Virtual Private GatewaysCreate Virtual Private Gateway,然后创建虚拟专用网关。

  3. 在导航窗格中,依次选择 VPN ConnectionsCreate VPN Connection。指定以下信息,然后选择 Yes, Create

    • Virtual Private Gateway:选择您在上一步中创建的虚拟专用网关。

    • Customer Gateway:选择 Existing,然后选择当前 AWS Classic VPN 连接的现有客户网关。

    • 根据需要指定路由选项。

  4. 选择新的 VPN 连接,然后选择 Download Configuration。为您的客户网关设备下载适当的配置文件。

  5. 使用配置文件在客户网关设备上配置 VPN 隧道。例如,查看 Amazon VPC 网络管理员指南。还不要启用隧道。如果需要一直禁用新配置的隧道,请与供应商联系获得指导。

  6. (可选) 创建测试 VPC 并将虚拟专用网关连接到测试 VPC。根据需要更改加密域/源目标地址,并测试从本地网络中的主机到测试 VPC 中的测试实例的连接性。

  7. 如果您正在对路由表使用路由传播,请在导航窗格中选择 Route Tables。为您的 VPC 选择路由表,然后依次选择 Route PropagationEdit。清除旧的虚拟专用网关的复选框,然后选择 Save

    注意

    从此步骤开始,连接将被中断,直到与新的虚拟专用网关连接,并且新的 VPN 连接处于活动状态为止。

  8. 在导航窗格中,选择 Virtual Private Gateways。选择旧的虚拟专用网关,然后依次选择 Detach from VPCYes, Detach。选择新的虚拟专用网关,然后选择 Attach to VPC。为您的 VPN 连接指定 VPC,然后选择 Yes, Attach

  9. 在导航窗格中,选择 Route Tables。为您的 VPC 选择路由表,然后执行下列操作之一:

    • 如果您正在使用路由传播,请依次选择 Route PropagationEdit。选择与 VPC 连接的新虚拟专用网关,然后选择 Save

    • 如果您正在使用静态路由,请依次选择 RoutesEdit。将路由修改为指向新的虚拟专用网关,然后选择 Save

  10. 在客户网关设备上启用新隧道,并禁用旧隧道。要开启隧道,则必须从本地网络启动连接。

    请检查路由表以确保路由正被传播 (如果适用)。当 VPN 隧道的状态为 UP 时,路由会传播到路由表。

    注意

    如果需要恢复到以前的配置,请断开新的虚拟专用网关,然后执行步骤 8 和 9 以重新连接旧的虚拟专用网关并更新您的路由。

  11. 如果您不再需要 AWS Classic VPN 连接,并且不想继续为其付费,请从客户网关设备中删除以前的隧道配置,然后删除该 VPN 连接。要执行此操作,请转到 VPN Connections,选择所需 VPN 连接,然后选择 Delete

    重要

    删除 AWS Classic VPN 连接后,便不能将新的 AWS VPN 连接恢复为或迁移回 AWS Classic VPN 连接。

VPN 配置示例

下图展示的是单一和多 VPN 连接。VPC 有附属的虚拟专用网关,您的网络内包括一个客户网关,您必须配置以启用 VPN 连接。您可以设置路由,以使从您的 VPC 通向您的网络的数据流可以被路由到虚拟专用网关中。

当您为单一 VPC 创建多项 VPN 连接时,您可以配置第二客户网关,以创建到同一外部地点的冗余连接。您还可以使用它来创建到多个地理位置的 VPN 连接。

单一 VPN 连接

VPN 布局

多 VPN 连接

多 VPN 布局

VPN 路由选项

在创建 VPN 连接时,您必须执行以下操作:

  • 指定您计划使用的路由的类型 (动态或静态)

  • 更新子网的路由表

静态和动态路由

您选择的路由类型可由您的 VPN 设备构造和型号决定。如果您的 VPN 支持边界网关协议 (BGP),您可以在配置 VPN 连接时指定动态路由方式。如果您的设备不支持 BGP,您便需要指定静态路由。有关已经过 Amazon VPC 测试的静态和动态路由设备列表,请参阅 Amazon Virtual Private Cloud 常见问题

当您使用 BGP 设备时,您不需要为 VPN 连接指定静态路由,因为设备会使用 BGP 将其路由通告虚拟专用网关。如果您的设备不支持 BGP,您必须选择静态路由,并输入您的网络的路径 (IP 前缀),以便与虚拟专用网关建立通信。

我们建议您在适用的情况下使用支持 BGP 的设备,因为 BGP 协议可提供稳健的活性探测检查,可以在第一条隧道出现故障时协助对第二条 VPN 隧道进行故障转移。不支持 BGP 的设备也可执行健康检查,以便在需要时协助故障转移到第二条隧道。

路由表和 VPN 路由优先级

路由表决定了将网络流量定向到何处。在您的路由表中,您必须为您的网络添加路由,并将虚拟专用网关指定为目标。这将使传送到您的网络的流量能够通过虚拟专用网关和其中一个 VPN 隧道进行路由。您可以为路由表启用路由传播,从而自动将您的网络路由传播到表。

只有虚拟专用网关已知的 IP 前缀可接收来自您的 VPC 的数据流量 (无论是通过 BGP 通告还是静态路由条目)。虚拟专用网关不路由任何不以收到的 BGP 通告、静态路由条目或其附加 VPC CIDR 为目标的其他流量。

在虚拟专用网关收到路由信息时,它使用路径选择来决定如何将流量路由到您的网络。将应用最长前缀匹配;否则,将应用以下规则:

  • 如果来自 VPN 连接或 AWS Direct Connect 连接的任何传播路由与 VPC 的本地路由重叠,则本地路由的优先级最高,即使传播路由更特定也是如此。

  • 如果来自 VPN 连接或 AWS Direct Connect 连接的任何传播路由的目标 CIDR 块与其他现有静态路由的相同 (无法应用最长前缀匹配),我们将设置其目标为 Internet 网关、虚拟专用网关、网络接口、实例 ID、VPC 对等连接、NAT 网关或 VPC 终端节点的静态路由的优先级。

如果 VPN 连接内存在重叠路由,且最长前缀匹配不适用,则我们在 VPN 连接内按以下规则排序路由,从最高优先级到最低优先级:

  • 来自 AWS Direct Connect 连接的 BGP 传播路由

  • 为 VPN 连接手动添加的静态路由

  • 来自 VPN 连接的 BGP 传播路由

在该示例中,路由表包含一条到 Internet 网关 (您手动添加的) 的静态路由和一条到虚拟专用网关的传播路由。这两条路由的目的地均为 172.31.0.0/24。在这种情况下,目的地为 172.31.0.0/24 的所有流量均路由到 Internet 网关 — 这是静态路由,因此,其优先级高于传播路由。

目的地 目标
10.0.0.0/16 本地
172.31.0.0/24 vgw-1a2b3c4d (传播)
172.31.0.0/24 igw-11aa22bb

为您的 VPN 连接配置 VPN 隧道

您使用 VPN 连接以将您的网络连接到 VPC。每项 VPN 连接都有两条隧道,每条隧道都会使用一个独特的虚拟专用网关公有 IP 地址。配置两条隧道以提供冗余能力是重要的步骤。当一条隧道无法使用时 (例如,因维护而关闭),网络流量会自动路由到指定 VPN 连接的其他可用隧道。

下图展示了 VPN 连接的两条隧道。

当您创建 VPN 连接时,将会下载一个特定于客户网关设备的配置文件,其中包含有关配置设备的信息,包括有关配置每个隧道的信息。在创建 VPN 连接时,您可以选择自己指定某些隧道选项。否则,AWS 会提供默认值。

下表描述了您可以配置的隧道选项。

Item 描述 AWS 提供的默认值

隧道内部 CIDR

VPN 隧道的内部 IP 地址范围。您可以指定 169.254.0.0/16 范围中大小为 /30 的 CIDR 块。对于使用同一虚拟专用网关的所有 VPN 连接,CIDR 块必须是唯一的。

以下 CIDR 块由系统保留,不能使用:

  • 169.254.0.0/30

  • 169.254.1.0/30

  • 169.254.2.0/30

  • 169.254.3.0/30

  • 169.254.4.0/30

  • 169.254.5.0/30

  • 169.254.169.252/30

169.254.0.0/16 范围中大小为 /30 的 CIDR 块。

预共享密钥 (PSK)

预共享密钥 (PSK),用于在虚拟专用网关和客户网关之间建立初始 IKE 安全关联。

PSK 的长度必须在 8 到 64 个字符之间,而且不能以零 (0) 开头。允许的字符是字母数字字符、句点 (.) 和下划线 (_)。

32 个字符的字母数字字符串。

创建 VPN 连接后,便无法修改隧道选项。要更改现有连接的隧道内部 IP 地址或 PSK,必须删除 VPN 连接并创建一个新连接。您无法为 AWS Classic VPN 连接配置隧道选项。

使用冗余 VPN 连接以提供故障转移

如上所述,VPN 连接配有两条隧道以帮助确保连接性,以防止出现 VPN 连接不可用的情况。要避免因您的客户网关不可用而造成连接中断,您可使用第二个客户网关来为您的 VPC 和虚拟专用网关设置另一个 VPN 连接。通过使用冗余 VPN 连接和网关,您可以在对其中一个客户网关进行维护时保证数据流量可以继续流经第二个客户网关的 VPN 连接。要在您的网络中建立冗余 VPN 连接和客户网关,您需要设置另一个 VPN 连接。第二个 VPN 连接的客户网关 IP 地址必须可以公开访问。

下图展示了每个 VPN 连接的两条隧道和两个客户网关。

动态路由的 VPN 连接使用边界网关协议 (BGP) 在您的客户网关和虚拟专用网关之间交换路由信息。静态路由的 VPN 连接要求您输入在您这一端的客户网关的网络静态路由。通告 BGP 和静态输入的路由信息可以帮助两端的网关在出现故障时判断可用隧道,进而重新路由流量。我们建议您配置您的网络,使其使用 BGP 提供的路由信息 (若适用) 以选择可用路径。精确配置取决于您的网络架构。