本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
客户网关设备
客户网关设备 是您在本地网络(Site-to-Site VPN 连接的您这一端)中拥有或管理的物理或软件设备。您或您的网络管理员必须将设备配置为使用 Site-to-Site VPN 连接。
下面的示意图显示您的网络、客户网关设备以及通往虚拟私有网关(挂载到您的 VPC)的 VPN 连接。客户网关和虚拟私有网关之间的两条线代表 VPN 连接的隧道。如果里面有设备故障 AWS,你的 VPN 连接会自动故障转移到第二条隧道,这样你的访问就不会中断。 AWS 还会不时对 VPN 连接执行例行维护,这可能会短暂禁用 VPN 连接的两个隧道中的一个。有关更多信息,请参阅 站点到站点 VPN 隧道终端节点替换。因此,当您配置客户网关设备时,务必将设备配置为使用这两条隧道。
![高级客户网关概述](images/cgw-high-level.png)
有关设置 VPN 连接的步骤,请参阅入门 AWS Site-to-Site VPN。在此过程中,您可以在中创建客户网关资源 AWS,该资源可向您的设备提供 AWS 有关您的设备的信息,例如其面向公众的 IP 地址。有关更多信息,请参阅 站点到站点 VPN 连接的客户网关选项。中的客户网关资源 AWS 不配置或创建客户网关设备。您必须自行配置设备。
您还可以在 AWS Marketplace
示例配置文件
创建 VPN 连接后,您还可以选择从 Amazon VPC 控制台或使用 EC2 API 下载 AWS提供的示例配置文件。请参阅步骤 6:下载配置文件了解更多信息。您还可以下载专门用于静态路由和动态路由的示例配置的 .zip 文件:
AWS提供的示例配置文件包含特定于您的 VPN 连接的信息,您可以使用这些信息来配置您的客户网关设备。这些设备特定的配置文件仅适用于 AWS 测试过的设备。如果未列出您的特定客户网关设备,您可以下载一个通用配置文件以开始使用。
重要
配置文件仅为示例,可能与您的目标 Site-to-Site VPN 连接设置完全不符。它规定了大多数地区的 AES128、SHA1 和 Diffie-Hellman 组 2 以及 AWS 地区的 AES128、SHA2 和 Diffie-Hellman 组 14 的站点到站点 VPN 连接的最低要求。 AWS GovCloud 它还指定用于身份验证的预共享密钥。您必须修改示例配置文件以利用其他安全算法、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 安全关联
|
首先使用预共享密钥或 AWS Private Certificate Authority 用作身份验证器的私有证书在虚拟专用网关和客户网关设备之间建立 IKE 安全关联。建立后,IKE 即协商临时密钥,以便对将来的 IKE 消息进行保密。参数之间必须完全一致,包括加密和身份验证参数。 在中创建 VPN 连接时 AWS,您可以为每个隧道指定自己的预共享密钥,也可以让它为您 AWS 生成一个预共享密钥。或者,您可以使用指定用于客户网关设备的私有证书。 AWS Private Certificate Authority 有关配置 VPN 隧道的更多信息,请参阅 站点到站点 VPN 连接的隧道选项。 支持以下版本:IKEv1 和 IKEv2。 对于 IKEv1 只支持主要模式。 Site-to-Site VPN 服务是基于路由的解决方案。如果您使用的是基于策略的配置,则必须将配置限制为单个安全关联 (SA)。 |
|
以隧道模式建立 IPsec 安全关联
|
使用 IKE 临时密钥以便在虚拟私有网关和客户网关设备间建立密钥,从而形成 IPsec 安全关联 (SA)。网关间的流量使用该 SA 进行加密和解密。用来加密 IPsec SA 内流量的该临时密钥由 IKE 进行定期交替,确保通讯的保密性。 |
|
使用 AES 128 位加密或 AES 256 位加密功能 |
加密功能用来确保 IKE 和 IPsec 安全关联这两者的保密性。 |
|
使用 SHA-1 或 SHA-2 (256) 哈希函数 |
该哈希函数用来验证 IKE 和 IPsec 安全关联。 |
|
使用 Diffie-Hellman Perfect Forward Secrecy。 |
IKE 使用 Diffie-Hellman 建立临时密钥,确保客户网关设备和虚拟私有网关之间的所有通讯安全可靠。 支持以下组:
|
|
(动态路由 VPN 连接)使用 IPsec 失效对端检测 |
失效对端检测的运用让 VPN 设备能够快速识别网络条件阻止数据包经由 Internet 传送的情况。发生此情况时,网关将删除该安全关联并尝试建立新关联。在此过程中,若有可能将使用交替 IPsec 隧道。 |
|
(动态路由 VPN 连接)将隧道绑定到逻辑接口(基于路由的 VPN)
|
无 |
您的设备必须能够将 IPsec 隧道绑定到逻辑接口。该逻辑接口包含用来向虚拟私有网关建立 BGP 对等体的 IP 地址。该逻辑接口不应执行额外的封装(例如:GRE 或 IP 中的 IP)。应将接口最大传输单位 (MTU) 设置为 1399 字节。 |
(动态路由 VPN 连接)建立 BGP 对等体
|
对于使用 BGP 的设备,BGP 用于在客户网关设备和虚拟私有网关间交换路由。所有的 BGP 流量均进行加密,并通过 IPsec 安全关联传输。两种网关均需要 BGP 来交换可通过 IPsec SA 取得的 IP 前缀。 |
AWS VPN 连接不支持 Path MTU 发现 (RFC 1
如果您的客户网关设备和 Internet 之间有防火墙,请参阅在 Internet 和客户网关设备之间配置防火墙。
客户网关设备最佳实践
使用 IKEv2
我们强烈建议使用 IKEv2 进行站点到站点 VPN 连接。IKEv2 是一种比 IKEv1 更简单、更强大、更安全的协议。只有当您的客户网关设备不支持 IKEv2 时,才应使用 IKEv1。有关 IKEv1 和 IKEv2 之间区别的更多详细信息,请参阅 RFC7296 的附录 A
重设数据包上的“Don't Fragment (DF)”标记
部分数据包带有一个标记,称为 Don't Fragment (DF) 标记,表示该数据包不应分片。若数据包带有该标记,网关就会生成一条“ICMP Path MTU Exceeded”消息。部分情况中,应用程序不含可处理这些 ICMP 消息和减少每个数据包数据传输量的充分机制。部分 VPN 设备可以忽略该 DF 标记并按要求无条件分片数据包。如果您的客户网关设备拥有该功能,我们建议您酌情使用。有关更多详细信息,请参阅 RFC 791
加密前分片 IP 数据包
如果通过您的站点到站点 VPN 连接发送到的数据包超过 MTU 大小,则必须对其进行分段。为避免性能降低,我们建议您将客户网关设备配置为在数据包加密之前对其进行分段。然后,站点到站点 VPN 将重新组装任何分段的数据包,然后将其转发到下一个目的地,以实现更高的 packet-per-second 网络流量。 AWS 有关更多详细信息,请参阅 RFC 4459
确保目标网络的数据包大小不超过 MTU
由于站点到站点 VPN 在转发到下一个目的地之前会重新组合从您的客户网关设备收到的任何分段数据包,因此请记住,接下来转发这些数据包的目标网络可能会有数据包大小/MTU 注意事项,例如转发这些数据包。 AWS Direct Connect
根据使用的算法调整 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 的明确身份验证算法选择。
禁用 IKE 唯一 ID
一些客户网关设备支持的设置可确保每个隧道配置最多存在一个第 1 阶段安全关联。此设置可能导致 VPN 对等体之间的第 2 阶段状态不一致。如果您的客户网关设备支持此设置,我们建议将其禁用。
在 Internet 和客户网关设备之间配置防火墙
您必须有一个静态 IP 地址才能用作将您的客户网关设备连接到端点的 IPsec 隧道的 AWS Site-to-Site VPN 终端节点。如果在您的客户网关设备 AWS 之间设置了防火墙,则必须遵守下表中的规则才能建立 IPsec 隧道。 AWS-side 的 IP 地址将在配置文件中。
输入规则 I1 |
|
---|---|
源 IP |
Tunnel1 外部 IP |
目的 IP |
客户网关 |
协议 |
UDP |
源端口 |
500 |
目的地 |
500 |
输入规则 I2 |
|
源 IP |
Tunnel2 外部 IP |
目的 IP |
客户网关 |
协议 |
UDP |
源端口 |
500 |
目的地端口 |
500 |
输入规则 I3 |
|
源 IP |
Tunnel1 外部 IP |
目的 IP |
客户网关 |
协议 |
IP 50 (ESP) |
输入规则 I4 |
|
源 IP |
Tunnel2 外部 IP |
目的 IP |
客户网关 |
协议 |
IP 50 (ESP) |
输出规则 O1 |
|
---|---|
源 IP |
客户网关 |
目的 IP |
Tunnel1 外部 IP |
协议 |
UDP |
源端口 |
500 |
目的地端口 |
500 |
输出规则 O2 |
|
源 IP |
客户网关 |
目的 IP |
Tunnel2 外部 IP |
协议 |
UDP |
源端口 |
500 |
目的地端口 |
500 |
输出规则 O3 |
|
源 IP |
客户网关 |
目的 IP |
Tunnel1 外部 IP |
协议 |
IP 50 (ESP) |
输出规则 O4 |
|
源 IP |
客户网关 |
目的 IP |
Tunnel2 外部 IP |
协议 |
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 路由优先级。