客户网关设备 - AWS Site-to-Site VPN

客户网关设备

客户网关设备 是您在本地网络(Site-to-Site VPN 连接的您这一端)中拥有或管理的物理或软件设备。您或您的网络管理员必须将设备配置为使用 Site-to-Site VPN 连接。

下面的示意图显示您的网络、客户网关设备以及通往虚拟私有网关(连接到您的 VPC)的 VPN 连接。客户网关设备和虚拟私有网关之间的两条线代表 VPN 连接的隧道。如果 AWS 中发生设备故障,您的 VPN 连接会自动故障转移到第二条隧道,防止您的访问被打断。有时,AWS 还会对 VPN 连接进行例行维护,这可能会暂时禁用 VPN 连接的两个隧道之一。有关更多信息,请参阅站点到站点 VPN 隧道终端节点替换。因此,在您配置客户网关设备时,务必配置这两条隧道。


            高级客户网关概述

有关设置 VPN 连接的步骤,请参阅开始使用。在此过程中,您将在 AWS 中创建客户网关资源,该资源向 AWS 提供有关您的设备的信息,例如设备面向公众的 IP 地址。有关更多信息,请参阅站点到站点 VPN 连接的客户网关选项。AWS 中的客户网关资源不会配置或创建客户网关设备。您必须自行配置设备。

您还可以在 AWS Marketplace 上查找软件 VPN 设备。

示例配置文件

创建 VPN 连接后,您还可以选择从 Amazon VPC 控制台或使用 EC2 API 下载 AWS 提供的示例配置文件。参阅 下载配置文件 了解更多信息。您还可以下载专门用于静态路由和动态路由的示例配置的 .zip 文件:

下载 .zip 文件

AWS 提供的示例配置文件包含 VPN 连接的特定信息,这些信息可用于配置您的客户网关设备。这些设备特定的配置文件仅适用于 AWS 测试过的设备。如果未列出您的特定客户网关设备,您可以下载一个通用配置文件以开始使用。

重要

配置文件仅为示例,可能与您的目标 Site-to-Site VPN 连接设置完全不符。该文件指定了大多数 AWS 区域中的 AES128、SHA1 和 Diffie-Hellman 组 2 以及 AWS GovCloud 区域中的 AES128、SHA2 和 Diffie-Hellman 组 14 对 Site-to-Site VPN 连接的最低要求。它还指定用于身份验证的预共享密钥。您必须修改示例配置文件以利用其他安全算法、Diffie-Hellman 组、私有证书和 IPv6 流量。

注意

这些设备特定的配置文件由 AWS 尽最大努力提供。虽然它们已经过 AWS 的测试,但这种测试是有限的。如果您遇到配置文件问题,可能需要与特定供应商联系以获得更多支持。

下表包含具有可供下载的示例配置文件的设备列表,该文件已更新为支持 IKEv2。我们在许多常用客户网关设备的配置文件中引入了 IKEv2 支持,并将随着时间的推移继续添加其他文件。随着更多示例配置文件的添加,此列表将更新。

供应商 平台 软件

检查点

Gaia

R80.10+

Cisco Meraki

MX 系列

15.12+ (WebUI)

Cisco Systems, Inc.

ASA 5500 系列

ASA 9.7+ VTI

Cisco Systems, Inc.

CSRv AMI

IOS 12.4+

Fortinet

Fortigate 40+ 系列

FortiOS 6.4.4+ (GUI)

Juniper Networks, Inc.

J 系列路由器

JunOS 9.5+

Juniper Networks, Inc.

SRX 路由器

JunOS 11.0+

Mikrotik

RouterOS

6.44.3

Palo Alto Networks

PA 系列

PANOS 7.0+

SonicWall

NSA、TZ

OS 6.5

Sophos

Sophos 防火墙

v19+

Strongswan

Ubuntu 16.04

Strongswan 5.5.1+

Yamaha

RTX 路由器

Rev.10.01.16+

客户网关设备的要求

如果您的设备不在上述示例列表中,那么本节说明设备必须满足的要求,以供您用于建立 Site-to-Site VPN 连接。

客户网关设备的配置有四个主要部分。以下符号表示配置的各个部分。

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

IPsec 安全关联。此项用于处理隧道的加密、身份验证等。

隧道接口。此项用于接收来往隧道的流量。

(可选)建立边界网关协议 (BGP) 对等体。对于使用 BGP 的设备,这会在客户网关设备和虚拟私有网关之间交换路由。

下表列出了对客户网关设备的要求、相关的 RFC(用于参考)和有关该要求的备注。

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

默认情况下,当生成流量并且从 VPN 连接的一端启动 IKE 协商时,VPN 隧道将启动。您可以将 VPN 连接配置为从连接的 AWS 端启动 IKE 协商。有关更多信息,请参阅站点到站点 VPN 隧道启动选项

VPN 终端节点支持重新加密,如果客户网关设备没有发送任何重新商通信,则当阶段 1 即将到期时,可以启动谈判。

要求 RFC 注释

建立 IKE 安全关联

RFC 2409

RFC 7296

首先使用预共享密钥或使用 AWS Certificate Manager Private Certificate Authority 作为身份验证器的私有证书,在虚拟私有网关和客户网关之间建立 IKE 安全关联。建立后,IKE 即协商临时密钥,以便对将来的 IKE 消息进行保密。参数之间必须完全一致,包括加密和身份验证参数。

当您在 AWS 中创建 VPN 连接时,可以为每个隧道指定您自己的预共享密钥,也可以让 AWS 为您生成一个。或者,您可以使用 AWS Certificate Manager Private Certificate Authority 指定私有证书以用于客户网关设备。有关配置 VPN 隧道的更多信息,请参阅 站点到站点 VPN 连接的隧道选项

支持以下版本:IKEv1 和 IKEv2。

对于 IKEv1 只支持主要模式。

Site-to-Site VPN 服务是基于路由的解决方案。如果您使用的是基于策略的配置,则必须将配置限制为单个安全关联 (SA)。

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

RFC 4301

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

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

RFC 3602

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

使用 SHA-1 或 SHA-2 (256) 哈希函数

RFC 2404

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

使用 Diffie-Hellman Perfect Forward Secrecy。

RFC 2409

IKE 使用 Diffie-Hellman 建立临时密钥,确保客户网关设备和虚拟私有网关之间的所有通讯安全可靠。

支持以下组:

  • 第 1 阶段组:2、14-24

  • 第 2 阶段组:2、5、14-24

(动态路由 VPN 连接)使用 IPsec 失效对端检测

RFC 3706

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

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

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

(动态路由 VPN 连接)建立 BGP 对等体

RFC 4271

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

AWS VPN 连接不支持路径 MTU 发现 (RFC 1191)。

如果您的客户网关设备和 Internet 之间有防火墙,请参阅在 Internet 和客户网关设备之间配置防火墙

客户网关设备最佳实践

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

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

加密前分片 IP 数据包

强烈建议首先对数据包进行分段,然后在进行加密以避免性能不佳的问题。数据包太大而无法传输时,则必须分片。如果必须分段,我们建议首先配置 VPN 设备以进行数据包分段,然后用 VPN 标头进行打包。有关更多详细信息,请参阅 RFC 4459

根据使用的算法调整 MTU 和 MSS 大小

TCP 数据包往往是经由 IPsec 隧道传输的通用类型数据包。Site-to-Site VPN 支持 1446 字节的最大传输单元(MTU),对应的最大分段大小(MSS)为 1406 字节。但加密算法的标头大小各异,可能会导致无法实现这些最大值。要通过避免碎片化获得最佳性能,我们建议您特别根据所使用的算法设置 MTU 和 MSS。

使用下表来设置 MTU/MSS 以避免碎片化问题并实现最佳性能:

加密算法 哈希算法 NAT 遍历 MTU MSS (IPv4) MSS (IPv6-in-IPv4)

AES-GCM-16

不适用

disabled

1446

1406

1386

AES-GCM-16

不适用

已启用

1438

1398

1378

AES-CBC

SHA1/SHA2-256

disabled

1438

1398

1378

AES-CBC

SHA1/SHA2-256

已启用

1422

1382

1362

AES-CBC

SHA2-384

disabled

1422

1382

1362

AES-CBC

SHA2-384

已启用

1422

1382

1362

AES-CBC

SHA2-512

disabled

1422

1382

1362

AES-CBC

SHA2-512

已启用

1406

1366

1346

注意

AES-GCM 算法涵盖加密和身份验证,因此不存在会影响 MTU 的明确身份验证算法选择。

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

您必须将静态 IP 地址用作端点,以便 IPsec 隧道将您的客户网关设备连接到 AWS Site-to-Site VPN 端点。如果 AWS 和您的客户网关设备之间有防火墙,则必须应用下表中的规则以建立 IPsec 隧道。AWS 端的 IP 地址将位于配置文件中。

输入规则 I1

源 IP

虚拟专用网关 1

目的 IP

客户网关

协议

UDP

源端口

500

目的地

500

输入规则 I2

源 IP

虚拟专用网关 2

目的 IP

客户网关

协议

UDP

源端口

500

目的地端口

500

输入规则 I3

源 IP

虚拟专用网关 1

目的 IP

客户网关

协议

IP 50 (ESP)

输入规则 I4

源 IP

虚拟专用网关 2

目的 IP

客户网关

协议

IP 50 (ESP)

输出规则 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 流量也能够在您的网络和 AWS Site-to-Site VPN 端点之间传输。检查您的设备是否通告 NAT-T。

多个 VPN 连接方案

在以下方案中,您将创建具有一个或多个客户网关设备的多个 VPN 连接。

使用同一客户网关设备的多个 VPN 连接

您可以使用相同的客户网关设备,创建从您的本地位置到其他 VPC 的额外 VPN 连接。您可以为这些 VPN 连接中的每一个重复使用相同的客户网关 IP 地址。

使用第二个客户网关设备的冗余 VPN 连接

如需避免因您的客户网关设备不可用而造成连接中断,您可以使用第二个客户网关设置第二个 VPN 连接。有关更多信息,请参阅使用冗余站点到站点 VPN 连接以提供故障转移。在单个位置建立了冗余客户网关设备后,两个设备均会通告相同的 IP 地址。

多个客户网关设备到单个虚拟私有网关 (AWS VPN CloudHub)

您可以从多个客户网关建立多个 VPN 连接到单个虚拟私有网关。这使您能够将多个位置连接到 AWS VPN CloudHub。有关更多信息,请参阅使用 VPN CloudHub 在各个站点之间建立安全通信。您在多个地理位置布置了客户网关设备后,各个设备应通告该位置专有的唯一 IP 地址集。

客户网关设备的路由

AWS 建议通告具体的 BGP 路由,以影响虚拟私有网关中的路由决策。请查阅供应商文档,了解您的设备特有的命令。

创建多个 VPN 连接后,虚拟专用网关将使用静态分配的路由或 BGP 路由通告将网络流量发送到适当的 VPN 连接。使用哪一个路由取决于配置 VPN 连接的方式。在虚拟专用网关中存在相同路由的情况下,优先选择静态分配的路由,而非 BGP 通告路由。如果选择使用 BGP 通告的选项,则无法指定静态路由。

有关路由优先级的更多信息,请参阅路由表和 VPN 路由优先级