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

您的客户网关

客户网关是什么?

Amazon VPC VPN 将您的数据中心或 (或网络) 链接到您的 Amazon VPC 虚拟私有云 (VPC)。客户网关是连接中您那一端使用的定位标记。它可以是物理或软件设备。VPN 连接中的 AWS 一端称为虚拟专用网关

下面的示意图显示您的网络、客户网关、通往虚拟专用网关的 VPN 连接以及 VPC。在客户网关和虚拟私有网关之间有两条线路,因为 VPN 连接由两条隧道组成,以便为 Amazon VPC 服务提供更高的可用性。如果 AWS 中发生设备故障,您的 VPN 连接会自动故障转移到第二条隧道,防止您的访问被打断。有时,AWS 还会对虚拟私有网关进行例行维护,这可能会暂时禁用两条 VPN 连接隧道之一。该维护执行期间您的 VPN 连接会自动故障转移到第二条隧道。因此,在您配置客户网关时,务必配置这两条隧道。

 基本 VPN 图

您可以使用相同的客户网关设备向其他 VPC 添加额外 VPN 连接。您可以为这些 VPN 连接中的每一个重复使用相同的客户网关 IP 地址。

如果创建 VPN 连接,在 VPN 连接您这一端生成流量时,VPN 隧道就会启动。虚拟专用网关不是启动程序;您的客户网关必须启动隧道。

有关 VPN 连接的组件的更多信息,请参阅 Amazon VPC 用户指南 中的 VPN 连接

为防止在您的客户网关变得不可用时失去连接,可再设置一个 VPN 连接。有关详细信息,请参阅使用冗余 VPN 连接以提供故障转移

您的角色

在整个指南中,我们都会谈到贵公司的整合团队,亦即贵公司中将贵公司的基础设施与 Amazon VPC 进行整合的人员。此团队 (可能包括您,也可能不包括您) 必须使用 AWS Management Console 来创建 VPN 连接并获取配置客户网关所需的信息。贵公司可能分别由不同团队执行各项任务 (使用 AWS 管理控制台的整合团队以及可访问网络设备并配置客户网关的网络工程团队)。本指南假定您是网络工程团队中的一员,可从贵公司的整合团队接收消息,以便随后用以配置客户网关设备。

设置 VPN 连接概述

Amazon VPC 用户指南 中讲述了在 AWS 中设置 VPN 连接的过程。总体过程中的一项任务是配置客户网关。要创建 VPN 连接,AWS 需要有关客户网关的信息,并且您必须配置客户网关设备本身。

要创建 VPN 连接,请执行以下常规步骤:

  1. 指定一个设备作为您的客户网关。有关更多信息,请参阅我们已测试的客户网关设备您的客户网关的要求

  2. 获取必要的 Network Information,并向在 AWS 中创建 VPN 连接的团队提供此信息。

  3. 在 AWS 中创建 VPN 连接并获得客户网关的配置文件。有关更多信息,请参阅 Amazon VPC 用户指南中的设置 AWS VPN 连接

  4. 使用配置文件中的信息配置客户网关。本指南中提供了一些示例。

  5. 从您的 VPN 连接端生成通信,以产生 VPN 隧道。

Network Information

要在 AWS 中创建 VPN 连接,您需要以下信息。

项目 注释
客户网关供应商 (例如 Cisco)、平台 (例如 ISR 系列路由器) 和软件版本 (例如 IOS 12.4) 此信息用于为客户网关生成配置文件。
客户网关设备外部接口的可在 Internet 上路由的 IP 地址。 该值必须为静态。您的客户网关可以位于执行网络地址转换 (NAT) 的设备之后。
(可选) 客户网关的边界网关协议 (BGP) 自治系统编号 (ASN)。 您可以使用指定给您的网络的现有 ASN。如果您没有 ASN,您可以使用专用 ASN (在 64512–65534 范围内)。否则,我们假定该客户网关的 BGP ASN 为 65000。

(可选) BGP 会话中 Amazon 端的 ASN。

在创建虚拟专用网关时指定。如果您未指定值,则会应用默认 ASN。有关更多信息,请参阅虚拟专用网关

(可选) 每个 VPN 隧道的隧道信息

您可以为 VPN 连接指定以下隧道信息:

  • 隧道内部 CIDR

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

有关更多信息,请参阅为您的 VPN 连接配置 VPN 隧道

AWS VPN CloudHub 和冗余客户网关

您可以从多个客户网关建立多个 VPN 连接到单个虚拟专用网关。该配置可通过不同的方式使用;您在数据中心和 VPC 之间可以有冗余客户网关,也可以有连接到 AWS VPN CloudHub 的多个位置。

如果您有冗余客户网关,每个客户网关都会公布相同的前缀 (例如 0.0.0.0/0) 给虚拟专用网关。我们使用 BGP 路由确定流量的路径。如果一个客户网关发生故障,则虚拟专用网关会将所有流量定向到正常工作的客户网关。

如果使用 AWS VPN CloudHub 配置,那么多个站点均可访问您的 VPC 或使用简单的枢纽辐射型模式安全地互相访问。您配置各个客户网关以公布具体站点相关的前缀 (例如 10.0.0.0/24、10.0.1.0/24) 给虚拟专用网关。虚拟专用网关将所有流量导向适当的站点,并将该站点的可到达性公布给所有其他站点。

如需配置 AWS VPN CloudHub,可以使用 Amazon VPC 控制台创建多个客户网关,每个网关都使用该网关的公有 IP 地址。您可以为每个网关使用相同的边界网关协议 (BGP) 自治系统编号 (ASN);如果您愿意,也可以为每个网关使用唯一的 ASN。然后从各个客户网关创建通往普通 VPN 网关的 VPN 连接。使用随后的指导来配置各个客户网关,以便连接到虚拟专用网关。

如需让 VPC 中的实例能够到达虚拟专用网关 (然后到达您的客户网关),您就必须在 VPC 的路由表中配置路由。有关完整的指导,请参阅 Amazon VPC 用户指南。对于 AWS VPN CloudHub,您可以在 VPC 路由表中配置聚合路由 (例如:10.0.0.0/16),然后在客户网关和虚拟专用网关间使用更具体的前缀。

配置通往您的 VPC 的多个 VPN 连接

您可以为 VPC 创建高达十个 VPN 连接。您可以使用多个 VPN 连接来将您的远程办公室关联到相同的 VPC。例如,如果您在洛杉矶、芝加哥、纽约和迈阿密分别设有办公室,您可以将这些办公室连接到您的 VPC。您可以使用多个 VPN 连接,从单个地点建立冗余客户网关。

注意

如果您需要十个以上的 VPN 连接,请完整填写 Amazon VPC 限额提高申请表,申请提高限额。

根据 VPN 连接配置方式的不同,创建多个 VPN 连接后,虚拟专用网关使用静态分配的路由或 BGP 通告将网络流量发送到适当的 VPN 连接。在虚拟专用网关中存在相同路由的情况下,优先选择静态分配的路由,而非 BGP 通告路由。

您在多个地理位置布置了客户网关后,各个客户网关应通告该位置专有的唯一 IP 地址集。在单个位置建立了冗余客户网关后,两个网关均会通告相同的 IP 地址。

虚拟专用网关从所有客户网关接收路由信息,然后使用 BGP 最佳路径选定算法计算首选路径集。应用于 VPC 的情况下,该算法的规则是:

  1. 首选更具体的 IP 地址前缀 (例如 10.0.0.0/24 优先于 10.0.0.0/16). 有关更多信息,请参阅 Amazon VPC 用户指南 中的路由优先级

  2. 前缀相同的情况下,若存在静态配置的 VPN 连接,则首选此类连接。对于各个 VPN 连接使用 BGP 的情况下的匹配前缀,对 AS PATH 进行比较并首选最短的 AS PATH。另外,您也可以预先挂起 AS_PATH,以便降低该路径的优先度。

  3. 各个 AS PATH 长度相等时,则比较路径来源。有内部网关协议 (IGP) 来源的前缀优先于外部网关协议 (EGP) 来源,而后者又优先于未知来源。

下面的示意图显示多个 VPN 的配置。

多 VPN 布局

我们已测试的客户网关设备

您的客户网关可以是物理或软件设备。

有关已测试的具体路由器的信息,请参阅哪些客户网关设备已知可以用于 Amazon VPC?(在 Amazon VPC 常见问题中)。

本指南介绍如何配置以下设备:

  • 运行 R77.10 (或更高版本) 软件的检查点安全网关

  • 运行 Cisco ASA 8.2 (或更高版本) 软件的 Cisco ASA

  • 运行 Cisco IOS 12.4 (或更高版本) 软件的 Cisco IOS

  • 运行 SonicOS 5.9 (或更高版本) 软件的 Dell SonicWALL

  • 运行 FortiOS 4.0 (或更高版本) 软件的 Fortinet Fortigate 40+ Series

  • 运行 JunOS 9.5 (或更高版本) 软件的 Juniper J-Series

  • 运行 JunOS 11.0 (或更高版本) 软件的 Juniper SRX

  • 运行 ScreenOS 6.1 或 6.2 (或更高版本) 软件的 Juniper SSG

  • 运行 ScreenOS 6.1 或 6.2 (或更高版本) 软件的 Juniper ISG

  • 运行 OS 2.2.5 (或更高版本) 软件的 Netgate pfSense。

  • Palo Alto Networks PANOS 4.1.2 (或更高版本) 软件

  • Yamaha RT107e、RTX1200、RTX1210、RTX1500、RTX3000 和 SRT100 路由器

  • Microsoft Windows Server 2008 R2 (或更高版本) 软件

  • Microsoft Windows Server 2012 R2 (或更高版本) 软件

如果您有这些设备中的任意一种,但是按不同于本指南中所提供的方式进行 IPsec 配置,请放心更改我们建议的配置,以满足您的具体需求。

您的客户网关的要求

您的客户网关配置有四个主要部分。在整个本指南中,我们对每个部分使用一个符号,以便您理解需要执行的事项。下表显示了这四个部分以及相应的符号。

IKE 安全关联 (交换用来建立 IPsec 安全关联的密钥所需)

IPsec 安全关联 (处理隧道加密、身份验证等。)

隧道接口 (接收传到或传出隧道的流量)

可选

适用于使用 BGP 的设备的 BGP 对等体 (交换客户网关和虚拟专用网关间的路由)

如果您的设备不在上述已测试设备列表中,那么本部分也说明了设备必须满足的要求,以供您用于 Amazon VPC。下表列出了客户网关必须遵守的要求、相关的 RFC (用于参考) 和有关该要求的备注。如果您的设备不属于已测试 Cisco 或 Juniper 设备中的一种,相关配置信息请参见 示例:使用边界网关协议的通用客户网关

每个 VPN 连接包含 2 个单独的隧道。每条隧道均包含 IKE 安全关联、IPsec 安全关联和 BGP 对等体。每条隧道只有 1 个唯一的安全关联 (SA) 对 (1 个入站和 1 个出站),因此 2 条隧道共有 2 个唯一的 SA 对 (4 个 SA)。某些设备使用基于策略的 VPN,并将创建与 ACL 条目数量相同的 SA。因此,可能需要合并您的规则,然后再进行筛选,以使您不允许多余的流量通过。

当流量从您的 VPN 连接端生成时,VPN 隧道出现。AWS 终端节点不是启动程序;您的客户网关必须启动隧道。

要求 RFC 注释

使用预共享密钥建立 IKE 安全关联

RFC 2409

首先将预共享密钥用作身份验证器,在虚拟专用网关和客户网关间建立 IKE 安全关联。建立后,IKE 即协商临时密钥,以便对将来的 IKE 消息进行保密。IKE 安全关联的正确建立需要各个参数间的完全一致,包括加密和身份验证参数。

当您在 AWS 中创建 VPN 连接时,可以为每个隧道指定您自己的预共享密钥,也可以让 AWS 为您生成一个。有关更多信息,请参阅为您的 VPN 连接配置 VPN 隧道

以隧道模式建立 IPsec 安全关联

RFC 4301

使用 IKE 临时密钥以便在虚拟专用网关和客户网关间建立密钥,从而形成 IPsec 安全关联 (SA)。网关间的流量使用该 SA 进行加密和解密。用来加密 IPsec SA 内流量的该临时密钥由 IKE 进行定期交替,确保通讯的保密性。

使用 AES 128 位加密或 AES 256 位加密功能

RFC 3602

加密功能用来确保 IKE 和 IPsec 安全关联这两者的保密性。

使用 SHA-1 或 SHA-256 哈希函数

RFC 2404

该哈希函数用来验证 IKE 和 IPsec 安全关联。

利用 Diffie-Hellman Perfect Forward Secrecy。支持以下组:

  • 第 1 阶段组:2、14-18、22、23 和 24

  • 第 2 阶段组:2、5、14-18、22、23 和 24

RFC 2409

IKE 使用 Diffie-Hellman 建立临时密钥,从而给客户网关和 VPN 网关之间所有的通讯保密。

利用 IPsec 失效对端检测

RFC 3706

失效对端检测的运用让 VPN 设备能够快速识别网络条件阻止数据包经由 Internet 传送的情况。发生此情况时,网关将删除该安全关联并尝试建立新关联。此过程中,若有可能将利用交替 IPsec 隧道。

将隧道绑定到逻辑接口 (基于路由的 VPN)

您的网关必须支持将 IPsec 隧道绑定到逻辑接口的功能。该逻辑接口包含用来向虚拟专用网关建立 BGP 对等体的 IP 地址。该逻辑接口不应执行额外的封装 (例如:GRE、IP 中的 IP)。应将接口最大传输单位 (MTU) 设置为 1399 字节。

加密前分片 IP 数据包

RFC 4459

数据包太大而无法传输时,则必须分片。我们不会重组分片的加密数据包。因此,您的 VPN 设备必须在使用 VPN 标头进行封装将数据包分片。这些片段各自传输到远程主机,然后进行重组。有关分片的更多信息,请参阅 IP 分片维基百科文章。

(可选) 建立 BGP 对等体

RFC 4271

BGP 用来为使用 BGP 的设备在客户网关和虚拟专用网关间交换路由。所有的 BGP 流量均进行加密,并通过 IPsec 安全关联传输。两种网关均需要 BGP 来交换可通过 IPsec SA 取得的 IP 前缀。

我们建议您使用下表列出的方法,尽量减少可通过 IPsec 隧道传输的数据量相关的问题。由于连接使用额外网络标头封装数据包 (包括 IPsec),可在单个数据包中传输的数据量即有所降低。

方法 RFC 注释

调整进入 VPN 隧道的 TCP 数据包的最大段长度

RFC 4459

TCP 数据包往往是经由 IPsec 隧道传输的主导类型数据包。部分网关有更改 TCP 最大段长度参数的功能。这就会导致 TCP 终端节点 (客户端、服务器) 降低每个数据包发送的数据量。这是一种理想的方法,因为到达 VPN 设备的数据包足够小,便于封装和传输。

重设数据包上的“Don't Fragment”标记

RFC 791

部分数据包带有一个标记,称为 Don't Fragment (DF) 标记,表示该数据包不应分片。若数据包带有该标记,网关就会生成一条“ICMP Path MTU Exceeded”消息。部分情况中,应用程序不含可处理这些 ICMP 消息和减少每个数据包数据传输量的充分机制。部分 VPN 设备有忽略该 DF 标记并按要求无条件分片数据包的功能。如果您的客户网关拥有该功能,我们建议您酌情使用。

如果您的客户网关和 Internet 之间有防火墙,请查看 在 Internet 和客户网关之间配置防火墙

在 Internet 和客户网关之间配置防火墙

如需使用该服务,您必须拥有可在 Internet 上路由的 IP 地址用作终端节点,供 IPsec 隧道将您的客户网关连接到虚拟专用网关。若防火墙已存在于 Internet 和您的网关间,必须将下表中的规则布置到位,以建立 IPsec 隧道。虚拟专用网关地址在您从整合团队收到的配置信息中。

传入 (从 Internet)

输入规则 I1

源 IP

虚拟专用网关 1

目的 IP

客户网关

协议

UDP

源端口

500

Destination

500

输入规则 I2

源 IP

虚拟专用网关 2

目的 IP

客户网关

协议

UDP

源端口

500

目的地端口

500

输入规则 I3

源 IP

虚拟专用网关 1

目的 IP

客户网关

协议

IP 50 (ESP)

输入规则 I4

源 IP

虚拟专用网关 2

目的 IP

客户网关

协议

IP 50 (ESP)

传出 (向 Internet)

输出规则 O1

源 IP

客户网关

目的 IP

虚拟专用网关 1

协议

UDP

源端口

500

目的地端口

500

输出规则 O2

源 IP

客户网关

目的 IP

虚拟专用网关 2

协议

UDP

源端口

500

目的地端口

500

输出规则 O3

源 IP

客户网关

目的 IP

虚拟专用网关 1

协议

IP 50 (ESP)

输出规则 O4

源 IP

客户网关

目的 IP

虚拟专用网关 2

协议

IP 50 (ESP)

规则 I1、I2、O1、和 O2 启用 IKE 数据包的传输。规则 I3、I4、O3 和 O4 启用包含加密网络流量的 IPsec 数据包的传输。

如果在设备上使用 NAT 遍历 (NAT-T),则必须包含允许通过端口 4500 进行 UDP 访问的规则。检查您的设备是否通告 NAT-T。