

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS Site-to-Site VPN 客户网关设备的静态和动态配置文件
<a name="example-configuration-files"></a>

创建 VPN 连接后，您还可以选择从 Amazon VPC 控制台或使用 EC2 API 下载 AWS提供的配置文件示例。请参阅[步骤 6：下载配置文件](SetUpVPNConnections.md#vpn-download-config)了解更多信息。还可以从各个页面下载专门用于静态和动态路由的配置的 .zip 文件示例。

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

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

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

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


| Vendor | 平台 | 软件 | 
| --- | --- | --- | 
|  AXGATE  |  NF  |  AOS 3.2\$1  | 
|  AXGATE  |  UTM  |  AOS 2.1\$1  | 
|  检查点  |  Gaia  |  R80.10\$1  | 
|  Cisco Meraki  |  MX 系列  |  15.12\$1 (WebUI)  | 
|  Cisco Systems, Inc。  |  ASA 5500 系列  |  ASA 9.7\$1 VTI  | 
|  Cisco Systems, Inc。  |  CSRv AMI  |  IOS 12.4\$1  | 
|  Fortinet  |  Fortigate 40\$1 系列  |  FortiOS 6.4.4\$1 (GUI)  | 
|  Juniper Networks, Inc。  |  J 系列路由器  |  JunOS 9.5\$1  | 
|  Juniper Networks, Inc。  |  SRX 路由器  |  JunOS 11.0\$1  | 
|  Mikrotik  |  RouterOS  |  6.44.3  | 
|  Palo Alto Networks  |  PA 系列  |  PANOS 7.0\$1  | 
|  SonicWall  |  NSA、TZ  |  OS 6.5  | 
|  Sophos   |  Sophos 防火墙  |  v19\$1  | 
|  Strongswan  |  Ubuntu 16.04  |  Strongswan 5.5.1\$1  | 
|  Yamaha  |  RTX 路由器  |  Rev.10.01.16\$1  | 

# AWS Site-to-Site VPN 客户网关设备的可下载静态路由配置文件
<a name="cgw-static-routing-examples"></a>

要下载包含特定于您的 Site-to-Site VPN 连接配置值的示例配置文件，请使用 Amazon VPC 控制台、 AWS 命令行或 Amazon EC2 API。有关更多信息，请参阅 [步骤 6：下载配置文件](SetUpVPNConnections.md#vpn-download-config)。

您也可以下载不包含特定于您的 Site-to-Site VPN 连接配置值的静态路由的通用示例配置文件：[static-routing-examples.](samples/static-routing-examples.zip) zip 

这些文件对某些组件使用占位符值。例如，它们使用：
+ VPN 连接 ID、客户网关 ID 和虚拟私有网关 ID 的示例值
+ 远程（外部）IP 地址 AWS 端点的占位符（*AWS\$1ENDPOINT\$11*和*AWS\$1ENDPOINT\$12*）
+ 客户网关设备上可路由互联网的外部接口 IP 地址的占位符 () *your-cgw-ip-address*
+ 预共享密钥值的占位符 () pre-shared-key
+ IP 地址内的隧道的示例值。
+ MTU 设置的示例值。

**注意**  
示例配置文件中提供的 MTU 设置仅供示例之用。有关根据自己的情况设置最佳 MTU 值的信息，请参阅[AWS Site-to-Site VPN 客户网关设备的最佳实践](cgw-best-practice.md)。

除了提供占位符值外，这些文件还指定了大多数地区的、和 Diffie-Hellman 组 2 的 Site-to-Site VPN 连接的最低要求，以及 AWS 区域中的 AES128 SHA1 AES128 SHA2、和 Diffie-Hellman 组 14 的最低要求。 AWS GovCloud它们还指定用于[身份验证](vpn-tunnel-authentication-options.md)的预共享密钥。您必须修改示例配置文件以利用其他安全算法、Diffie-Hellman 组、私有证书和流量。 IPv6 

下图概述了在客户网关设备上配置的各种组件。它包括隧道接口 IP 地址的示例值。

![\[带静态路由的客户网关设备\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/cgw-static-routing.png)


# 为 AWS Site-to-Site VPN 客户网关设备配置静态路由
<a name="cgw-static-routing-example-interface"></a>

以下是使用客户网关设备的用户界面（如果可用）配置该设备的一些示例过程。

------
#### [ Check Point ]

如果您的设备是运行 R77.10 或更高版本的 Check Point Security Gateway 设备，则使用 Gaia 操作系统和 Check Point 配置客户网关设备的步骤。 SmartDashboard你也可以参阅 Check Point 支持中心上的 [Check Point Secur IPsec ity Gateway VPN to Amazon Web Services VPC](https://support.checkpoint.com/results/sk/sk100726) 的文章。

**配置隧道接口**

第一步是创建 VPN 隧道并为每条隧道提供客户网关和虚拟专用网关的私有（内部）IP 地址。要创建第一条隧道，请使用配置文件的 `IPSec Tunnel #1` 部分下提供的信息。要创建第二条隧道，请使用配置文件的 `IPSec Tunnel #2` 部分中提供的值。

1. 打开检查点安全网关设备的 Gaia 门户。

1. 选择 **Network Interfaces**、**Add**、**VPN tunnel**。

1. 在对话框中，配置如下设置，然后在配置完成后选择 **OK**：
   + 对于 **VPN Tunnel ID**，输入任何唯一值，例如 1。
   + 对于 **Peer**，输入隧道的唯一名称，例如 `AWS_VPC_Tunnel_1` 或 `AWS_VPC_Tunnel_2`。
   + 确保已选择 **Numbered (编号)**，对于 **Local Address (本地地址)**，输入配置文件中为 `CGW Tunnel IP` 指定的 IP 地址，例如，`169.254.44.234`。
   + 对于 **Remote Address**，输入配置文件中为 `VGW Tunnel IP` 指定的 IP 地址，例如，`169.254.44.233`。  
![\[“Check Point Add VPN Tunnel (检查点添加 VPN 隧道)”对话框\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/check-point-create-tunnel.png)

1. 通过 SSH 连接到您的安全网关。如果您使用的是非默认 Shell，请通过运行以下命令来更改为 clish：`clish`

1. 对于隧道 1，请运行以下命令。

   ```
   set interface vpnt1 mtu 1436
   ```

   对于隧道 2，请运行以下命令。

   ```
   set interface vpnt2 mtu 1436
   ```

1. 重复这些步骤以使用配置文件的 `IPSec Tunnel #2` 部分下的信息创建另一条隧道。

**配置静态路由**

在此步骤中，将为每条隧道指定到 VPC 中子网的静态路由以便能够通过隧道接口发送流量。第二条隧道在第一条隧道出现问题时将启用失效转移。如果检测到问题，将从路由表中删除基于策略的静态路由，并激活第二个路由。您还必须允许检查点网关对隧道的另一端执行 Ping 操作以检查隧道是否已启动。

1. 在 Gaia 门户中，选择**IPv4 静态路由**，然后选择 “**添加**”。

1. 指定您的子网的 CIDR，例如，`10.28.13.0/24`。

1. 选择 **Add Gateway**、**IP Address**。

1. 输入配置文件中为 `VGW Tunnel IP` 指定的 IP 地址 (例如，`169.254.44.233`)，并指定优先级为 1。

1. 选择 **Ping**。

1. 使用配置文件的 `VGW Tunnel IP` 部分下的 `IPSec Tunnel #2` 值，对第二条隧道重复步骤 3 和 4。指定优先级为 2。  
![\[“Check Point Edit Destination Route (检查点编辑目标路由)”对话框\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/check-point-static-routes.png)

1. 选择**保存**。

如果您使用的是集群，请对集群的其他成员重复上述步骤。

**定义新的网络对象**

在此步骤中，您将为每条 VPN 隧道创建一个网络对象，并指定虚拟专用网关的公有 (外部) IP 地址。您稍后将这些网络对象作为 VPN 社区的卫星网关进行添加。您还需要创建一个空组以用作 VPN 域的占位符。

1. 打开检查点 SmartDashboard。

1. 对于 **Groups**，打开上下文菜单并选择 **Groups**、**Simple Group**。您可以对每个网络对象使用相同的组。

1. 对于 **Network Objects**，打开上下文 (右键单击) 菜单并选择 **New**、**Interoperable Device**。

1. 对于 **Name (名称)**，输入您为隧道提供的名称，例如，`AWS_VPC_Tunnel_1` 或 `AWS_VPC_Tunnel_2`。

1. 对于**IPv4 地址**，请输入配置文件中提供的虚拟专用网关的外部 IP 地址，例如`54.84.169.196`。保存您的设置并关闭对话框。  
![\[“Check Point Interoperable Device (检查点可互操作设备)”对话框\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/check-point-network-device.png)

1. 在中 SmartDashboard，打开您的网关属性，然后在类别窗格中，选择**拓扑**。

1. 要检索接口配置，请选择 **Get Topology**。

1. 在 **VPN Domain (VPN 域)** 部分中，选择 **Manually defined (手动定义)**，然后浏览找到并选择您在步骤 2 中创建的空组。选择**确定**。
**注意**  
您可以保留已配置的任何现有 VPN 域。但是，请确保新的 VPN 连接使用或提供的主机和网络未在该 VPN 域中声明，尤其是在 VPN 域自动派生的情况下。

1. 重复这些步骤以使用配置文件的 `IPSec Tunnel #2` 部分下的信息创建另一个网络对象。

**注意**  
如果您使用的是集群，请编辑拓扑并将接口定义为集群接口。使用配置文件中指定的 IP 地址。

**创建和配置 VPN 社区、IKE 和 IPsec 设置**

在此步骤中，您将在检查点网关上创建一个 VPN 社区 (为每条隧道将网络对象 (可互操作设备) 添加到该社区)。您还可以配置互联网密钥交换 (IKE) 和 IPsec设置。

1. 在网关属性中，在类别窗格中选择 **IPSecVPN**。

1. 选择 **Communities**、**New**、**Star Community**。

1. 为您的社区提供名称 (例如，`AWS_VPN_Star`)，然后选择类别窗格中的 **Center Gateways**。

1. 选择 **Add**，并将您的网关或集群添加到参与者网关列表。

1. 在类别窗格中，依次选择 **Satellite Gateways (卫星网关)** 和 **Add (添加)**，然后将您之前创建的可互操作设备（`AWS_VPC_Tunnel_1` 和 `AWS_VPC_Tunnel_2`）添加到参与者网关列表。

1. 在类别窗格中，选择 **Encryption**。在 “**加密方法**” 部分中，**IKEv1 仅**选择。在 **Encryption Suite** 部分中，选择 **Custom**、**Custom Encryption**。

1. 在对话框中，配置如下加密属性，并在完成后选择 **OK**：
   + IKE 安全关联 (第 1 阶段) 属性：
     + **Perform key exchange encryption with**：AES-128
     + **Perform data integrity with**：SHA-1
   + IPsec 安全关联（第 2 阶段）属性：
     + **使用以下 IPsec 命令执行数据加密**：AES-128
     + **Perform data integrity with**：SHA-1

1. 在类别窗格中，选择 **Tunnel Management**。选择 **Set Permanent Tunnels**、**On all tunnels in the community**。在 **VPN Tunnel Sharing** 部分中，选择 **One VPN tunnel per Gateway pair**。

1. 在类别窗格中，展开 **Advanced Settings**，然后选择 **Shared Secret**。

1. 选择第一条隧道的对等名称，再选择 **Edit (编辑)**，然后输入配置文件的 `IPSec Tunnel #1` 部分中指定的预共享密钥。

1. 选择第二条隧道的对等名称，再选择 **Edit (编辑)**，然后输入配置文件的 `IPSec Tunnel #2` 部分中指定的预共享密钥。  
![\[“Check Point Interoperable Shared Secret (检查点可互操作共享密码)”对话框\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/check-point-shared-secret.png)

1. 仍然在 **Advanced Settings (高级设置)** 类别中，选择 **Advanced VPN Properties (高级 VPN 属性)**，配置如下属性，然后在完成后选择 **OK (确定)**：
   + IKE (第 1 阶段)：
     + **Use Diffie-Hellman group (使用 Diffie-Hellman 组)**：`Group 2`
     + **Renegotiate IKE security associations every** `480` **minutes**
   + IPsec （第 2 阶段）：
     + 选择 **Use Perfect Forward Secrecy**
     + **Use Diffie-Hellman group (使用 Diffie-Hellman 组)**：`Group 2`
     + ****每`3600`秒钟重新协商一次 IPsec 安全关联****

**创建防火墙规则**

在此步骤中，您将配置一个具有防火墙规则和定向匹配规则的策略，这些规则允许 VPC 和本地网络之间的通信。然后在网关上安装该策略。

1. 在中 SmartDashboard，为您的网关选择**全局属性**。在类别窗格中，展开 **VPN**，然后选择 **Advanced**。

1. 选择 **Enable VPN Directional Match in VPN Column**，并保存您的更改。

1. 在中 SmartDashboard，选择**防火墙**，然后使用以下规则创建策略：
   + 允许 VPC 子网通过所需协议与本地网络进行通信。
   + 允许本地网络通过所需协议与 VPC 子网进行通信。

1. 打开 VPN 列中的单元格的上下文菜单，并选择 **Edit Cell**。

1. 在 **VPN Match Conditions** 对话框中，选择 **Match traffic in this direction only**。通过为以下每个定向匹配规则选择 **Add** 来创建该规则，并在完成后选择 **OK**：
   + `internal_clear` > VPN 社区（您先前创建的 VPN 星级社区，例如，`AWS_VPN_Star`）
   + VPN 社区 > VPN 社区
   + VPN 社区 > `internal_clear`

1. 在中 SmartDashboard，选择**策略**，**安装**。

1. 在对话框中，选择您的网关并选择 **OK** 以安装策略。

**修改 tunnel\$1keepalive\$1method 属性**

您的检查点网关可使用失效对端检测 (DPD) 来标识 IKE 关联中断的时间。要为永久隧道配置 DPD，必须在 AWS VPN 社区中配置永久隧道（请参阅步骤 8）。

默认情况下，VPN 网关的 `tunnel_keepalive_method` 属性设置为 `tunnel_test`。您必须将该值更改为 `dpd`。VPN 社区中每个需要 DPD 监控的 VPN 网关都必须使用 `tunnel_keepalive_method` 属性进行配置，包括任何第三方 VPN 网关。您不能为同一网关配置不同的监控机制。

您可以使用 Gui DBedit 工具更新该`tunnel_keepalive_method`属性。

1. 打开检查点 SmartDashboard，然后选择**安全管理服务器**、**域管理服务器**。

1. 选择 **File** 和 **Database Revision Control...**，然后创建修订快照。

1. 关闭所有 SmartConsole 窗口，例如、“ SmartDashboard SmartView 跟踪器” 和 “ SmartView 监视器”。

1. 启动 Gui BDedit 工具。有关更多信息，请参阅检查点支持中心上的文章[检查点数据库工具](https://support.checkpoint.com/results/sk/sk13009)。

1. 依次选择 **Security Management Server** 和 **Domain Management Server**。

1. 在左上窗格中，依次选择 **Table**、**Network Objects** 和 **network\$1objects**。

1. 在右上窗格中，依次选择相关的 **Security Gateway** 和 **Cluster** 对象。

1. 按 Ctrl\$1F，或者使用 **Search** 菜单搜索以下内容：`tunnel_keepalive_method`。

1. 在下方窗格中，打开 `tunnel_keepalive_method` 的上下文菜单，并选择 **Edit... (编辑...)**。选择 **dpd**，然后选择 **OK (确定)**。

1. 对属于 AWS VPN 社群的每个网关重复步骤 7 到步骤 9。

1. 依次选择 **File** 和 **Save All**。

1. 关闭 Gui DBedit 工具。

1. 打开检查点 SmartDashboard，然后选择**安全管理服务器**、**域管理服务器**。

1. 在相关的 **Security Gateway** 和 **Cluster** 对象上安装策略。

有关更多信息，请参阅检查点支持中心上的文章 [R77.10 中的新增 VPN 特征](https://support.checkpoint.com/results/sk/sk97746)。

**启用 TCP MSS 固定**

TCP MSS 固定减小了 TCP 数据包的最大段大小以防止数据包分段。

1. 导航到以下目录：`C:\Program Files (x86)\CheckPoint\SmartConsole\R77.10\PROGRAM\`。

1. 通过运行 `GuiDBEdit.exe` 文件打开检查点数据库工具。

1. 选择 **Table**、**Global Properties**、**properties**。

1. 对于 `fw_clamp_tcp_mss`，选择 **Edit**。将值更改为 `true` 并选择 **OK**。

**验证隧道状态**  
您可以通过在专家模式下从命令行工具运行以下命令来验证隧道状态。

```
vpn tunnelutil
```

在显示的选项中，选择 **1** 以验证 IKE 关联，选择 **2** 以验证 IPsec关联。

您也可以使用检查点智能跟踪器日志来验证通过连接传输的数据包是否已加密。例如，以下日志指示数据包通过隧道 1 发送到 VPC 并且已加密。

![\[检查点日志文件\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/check-point-log.png)


------
#### [ SonicWALL ]

以下过程演示如何使用 SonicOS 管理界面在 SonicWALL 设备上配置 VPN 隧道。

**配置隧道**

1. 打开 SonicWALL SonicOS 管理界面。

1. 在左窗格中，依次选择 **VPN**、**Settings**。在 **VPN Policies** 下方，选择 **Add...**。

1. 在 **General ** 选项卡上的 VPN 策略窗口中，填写以下信息：
   + **策略类型**：选择**隧道接口**。
   + **Authentication Method**：选择 **IKE using Preshared Secret**。
   + **Name**：输入 VPN 策略的名称。建议使用配置文件中提供的 VPN ID 名称。
   + **IPsec 主网关名称或地址**：输入配置文件中提供的虚拟专用网关的 IP 地址（例如`72.21.209.193`）。
   + **IPsec 辅助网关名称或地址**：保留默认值。
   + **Shared Secret**：输入配置文件中提供的预共享密钥，然后在 **Confirm Shared Secret** 中再次输入。
   + **本地 IKE ID**：输入客户网关（SonicWall 设备） IPv4 的地址。
   + **对等 IKE ID**：输入虚拟专用网关 IPv4 的地址。

1. 在 **Network** 选项卡上，填写以下信息：
   + 在 **Local Networks** 下方，选择 **Any address**。建议使用此选项防止本地网络出现连接问题。
   + 在 **Remote Networks** 下方，选择 **Choose a destination network from list**。在 AWS中使用您的 VPC 的 CIDR 创建一个地址对象。

1. 在 **Proposals (提案)** 选项卡上，填写以下信息：
   + 在 **IKE (Phase 1) Proposal** 下方，执行以下操作：
     + **Exchange**：选择 **Main Mode**。
     + **DH Group (DH 组)**：输入 Diffie-Hellman 组的值（例如 `2`）。
     + **Encryption**：选择 **AES-128** 或 **AES-256**。
     + **身份验证**：选择**SHA1**或**SHA256**。
     + **Life Time**：输入 `28800`。
   + 在 **IKE (Phase 2) Proposal** 下方，执行以下操作：
     + **Protocol**：选择 **ESP**。
     + **Encryption**：选择 **AES-128** 或 **AES-256**。
     + **身份验证**：选择**SHA1**或**SHA256**。
     + 选中 **Enable Perfect Forward Secrecy** 复选框，然后选择 Diffie-Hellman 组。
     + **Life Time**：输入 `3600`。
**重要**  
如果您在 2015 年 10 月之前创建了虚拟专用网关，则必须为两个阶段指定 Diffie-Hellman 组 2、AES-128 和两个阶段。 SHA1

1. 在 **Advanced** 选项卡上，填写以下信息：
   + 选择 **Enable Keep Alive**。
   + 选择 **Enable Phase2 Dead Peer Detection** 并输入以下内容：
     + 对于 **Dead Peer Detection Interval**，输入 `60` (这是 SonicWALL 设备接受的最小值)。
     + 对于 **Failure Trigger Level**，输入 `3`。
   + 对于 **VPN Policy bound to**，选择 **Interface X1**。这是通常为公有 IP 地址指定的接口。

1. 选择**确定**。在 **Settings** 页面上，隧道的 **Enable** 复选框默认应处于选中状态。绿点表示隧道已启动。

------

## Cisco 设备：其他信息
<a name="cgw-static-routing-examples-cisco"></a>

某些 Cisco ASAs 仅支持 Active/Standby 模式。使用这些 Cisco 时 ASAs，一次只能有一个活动隧道。仅在第一个隧道不可用的情况下，备用隧道才可用。借助该冗余度，您应该始终可以通过其中一个隧道连接到您的 VPC。

思科 ASAs 9.7.1 版及更高版本支持 Active/Active 模式。使用这些 Cisco 时 ASAs，可以同时激活两条隧道。借助该冗余度，您应该始终可以通过其中一个隧道连接到您的 VPC。

对于 Cisco 设备，您必须执行以下操作：
+ 配置外部接口。
+ 确保 Crypto ISAKMP 策略序列号具有唯一性。
+ 确保 Crypto 列表策略序列号具有唯一性。
+ 确保加密 IPsec 转换集和加密 ISAKMP 策略序列与设备上配置的任何其他 IPsec 隧道保持一致。
+ 确保 SLA 监控号具有唯一性。
+ 对在客户网关设备和您的本地网络之间传输流量的所有路由选择进行配置。

# AWS Site-to-Site VPN 客户网关设备的可下载动态路由配置文件
<a name="cgw-dynamic-routing-examples"></a>

要下载包含特定于您的 Site-to-Site VPN 连接配置值的示例配置文件，请使用 Amazon VPC 控制台、 AWS 命令行或 Amazon EC2 API。有关更多信息，请参阅 [步骤 6：下载配置文件](SetUpVPNConnections.md#vpn-download-config)。

您也可以下载不包含特定于您的 Site-to-Site VPN 连接配置值的动态路由的通用示例配置文件：[dynamic-routing-examples.](samples/dynamic-routing-examples.zip) zip

这些文件对某些组件使用占位符值。例如，它们使用：
+ VPN 连接 ID、客户网关 ID 和虚拟私有网关 ID 的示例值
+ 远程（外部）IP 地址 AWS 端点的占位符（*AWS\$1ENDPOINT\$11*和*AWS\$1ENDPOINT\$12*）
+ 客户网关设备上可路由互联网的外部接口 IP 地址的占位符 () *your-cgw-ip-address*
+ 预共享密钥值的占位符 () pre-shared-key
+ IP 地址内的隧道的示例值。
+ MTU 设置的示例值。

**注意**  
示例配置文件中提供的 MTU 设置仅供示例之用。有关根据自己的情况设置最佳 MTU 值的信息，请参阅[AWS Site-to-Site VPN 客户网关设备的最佳实践](cgw-best-practice.md)。

除了提供占位符值外，这些文件还指定了大多数地区的、和 Diffie-Hellman 组 2 的 Site-to-Site VPN 连接的最低要求，以及 AWS 区域中的 AES128 SHA1 AES128 SHA2、和 Diffie-Hellman 组 14 的最低要求。 AWS GovCloud它们还指定用于[身份验证](vpn-tunnel-authentication-options.md)的预共享密钥。您必须修改示例配置文件以利用其他安全算法、Diffie-Hellman 组、私有证书和流量。 IPv6 

下图概述了在客户网关设备上配置的各种组件。它包括隧道接口 IP 地址的示例值。

![\[带动态路由的客户网关设备\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/cgw-bgp.png)


# 为 AWS Virtual Private Network 客户网关设备配置动态路由
<a name="cgw-dynamic-routing-example-interface"></a>

以下是使用客户网关设备的用户界面（如果可用）配置该设备的一些示例过程。

------
#### [ Check Point ]

以下是使用 Gaia 门户网站和 Check Point 配置运行 R77.10 或更高版本的 Check Point Security Gateway 设备的步骤。 SmartDashboard您也可以参考检查点支持中心的 [Amazon Web Services VPN BGP](https://support.checkpoint.com/results/sk/sk108958) 一文。

**配置隧道接口**

第一步是创建 VPN 隧道并为每条隧道提供客户网关和虚拟专用网关的私有（内部）IP 地址。要创建第一条隧道，请使用配置文件的 `IPSec Tunnel #1` 部分下提供的信息。要创建第二条隧道，请使用配置文件的 `IPSec Tunnel #2` 部分中提供的值。

1. 通过 SSH 连接到您的安全网关。如果您使用的是非默认 Shell，请通过运行以下命令来更改为 clish：`clish`

1. 通过运行以下命令来设置客户网关 ASN（在中创建客户网关时提供的 ASN AWS）。

   ```
   set as 65000
   ```

1. 使用配置文件的 `IPSec Tunnel #1` 部分下提供的信息，为第一条隧道创建隧道接口。为您的隧道提供唯一名称，例如 `AWS_VPC_Tunnel_1`。

   ```
   add vpn tunnel 1 type numbered local 169.254.44.234 remote 169.254.44.233 peer AWS_VPC_Tunnel_1 
   set interface vpnt1 state on 
   set interface vpnt1 mtu 1436
   ```

1. 重复这些命令以使用配置文件的 `IPSec Tunnel #2` 部分下提供的信息创建第二条隧道。为您的隧道提供唯一名称，例如 `AWS_VPC_Tunnel_2`。

   ```
   add vpn tunnel 1 type numbered local 169.254.44.38 remote 169.254.44.37 peer AWS_VPC_Tunnel_2 
   set interface vpnt2 state on 
   set interface vpnt2 mtu 1436
   ```

1. 设置虚拟私有网关 ASN。

   ```
   set bgp external remote-as 7224 on 
   ```

1. 使用配置文件的 `IPSec Tunnel #1` 部分中提供的信息为第一条隧道配置 BGP。

   ```
   set bgp external remote-as 7224 peer 169.254.44.233 on 
   set bgp external remote-as 7224 peer 169.254.44.233 holdtime 30
   set bgp external remote-as 7224 peer 169.254.44.233 keepalive 10
   ```

1. 使用配置文件的 `IPSec Tunnel #2` 部分中提供的信息为第二条隧道配置 BGP。

   ```
   set bgp external remote-as 7224 peer 169.254.44.37 on 
   set bgp external remote-as 7224 peer 169.254.44.37 holdtime 30
   set bgp external remote-as 7224 peer 169.254.44.37 keepalive 10
   ```

1. 保存配置。

   ```
   save config
   ```

**创建 BGP 策略**

接下来，创建一个 BGP 策略，该策略允许导入 AWS公布的路由。然后，将您的客户网关配置为将其本地路由公布到 AWS。

1. 在 Gaia WebUI 中，选择 **Advanced Routing**、**Inbound Route Filters**。选择 **Add**，然后选择 **Add BGP Policy (Based on AS)**。

1. 对于 **Add BGP Policy (添加 BGP 策略)**，在第一个字段中选择一个介于 512 和 1024 之间的值，然后在第二个字段中输入虚拟私有网关 ASN（例如，`7224`）。

1. 选择**保存**。

**传播本地路由**

以下步骤适用于分配本地接口路由。您也可以从不同的源重新分配路由（例如，静态路由或通过动态路由协议获取的路由）。有关更多信息，请参阅 [Gaia 高级路由 R77 版本管理指南](https://sc1.checkpoint.com/documents/R77/CP_R77_Gaia_Advanced_Routing_WebAdminGuide/html_frameset.htm)。

1. 在 Gaia WebUI 中，选择 **Advanced Routing**、**Routing Redistribution**。选择 **Add Redistribution From (添加重新分配源)**，然后选择 **Interface (接口)**。

1. 对于 **To Protocol (目标协议)**，选择虚拟私有网关 ASN（例如，`7224`）。

1. 对于 **Interface**，选择一个内部接口。选择**保存**。

**定义新的网络对象**

接下来，为每条 VPN 隧道创建一个网络对象，并指定虚拟私有网关的公有（外部）IP 地址。您稍后将这些网络对象作为 VPN 社区的卫星网关进行添加。您还需要创建一个空组以用作 VPN 域的占位符。

1. 打开检查点 SmartDashboard。

1. 对于 **Groups**，打开上下文菜单并选择 **Groups**、**Simple Group**。您可以对每个网络对象使用相同的组。

1. 对于 **Network Objects**，打开上下文 (右键单击) 菜单并选择 **New**、**Interoperable Device**。

1. 对于 **Name (名称)**，输入您在步骤 1 中为隧道提供的名称，例如，`AWS_VPC_Tunnel_1` 或 `AWS_VPC_Tunnel_2`。

1. 对于**IPv4 地址**，请输入配置文件中提供的虚拟专用网关的外部 IP 地址，例如`54.84.169.196`。保存您的设置并关闭对话框。  
![\[“Check Point Interoperable Device (检查点可互操作设备)”对话框\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/check-point-network-device.png)

1. 在左侧类别窗格中，选择 **Topology**。

1. 在 **VPN Domain (VPN 域)** 部分中，选择 **Manually defined (手动定义)**，然后浏览找到并选择您在步骤 2 中创建的空组。选择**确定**。

1. 重复这些步骤以使用配置文件的 `IPSec Tunnel #2` 部分下的信息创建另一个网络对象。

1. 转到您的网关网络对象，打开您的网关或集群对象，然后选择 **Topology**。

1. 在 **VPN Domain (VPN 域)** 部分中，选择 **Manually defined (手动定义)**，然后浏览找到并选择您在步骤 2 中创建的空组。选择**确定**。
**注意**  
您可以保留已配置的任何现有 VPN 域。但是，请确保新的 VPN 连接使用或提供的主机和网络未在该 VPN 域中声明，尤其是在 VPN 域自动派生的情况下。

**注意**  
如果您使用的是集群，请编辑拓扑并将接口定义为集群接口。使用配置文件中指定的 IP 地址。

**创建和配置 VPN 社区、IKE 和 IPsec 设置**

接下来，在检查点网关上创建一个 VPN 社区（为每条隧道将网络对象（可互操作设备）添加到该社区）。您还可以配置互联网密钥交换 (IKE) 和 IPsec设置。

1. 在网关属性中，在类别窗格中选择 **IPSecVPN**。

1. 选择 **Communities**、**New**、**Star Community**。

1. 为您的社区提供名称 (例如，`AWS_VPN_Star`)，然后选择类别窗格中的 **Center Gateways**。

1. 选择 **Add**，并将您的网关或集群添加到参与者网关列表。

1. 在类别窗格中，选择 **Satellite Gateways (卫星网关)**、**Add (添加)**，然后将您之前创建的可互操作设备（`AWS_VPC_Tunnel_1` 和 `AWS_VPC_Tunnel_2`）添加到参与者网关列表。

1. 在类别窗格中，选择 **Encryption**。在 “**加密方法**” 部分，选择 “**IKEv1 IPv4 和 IKEv2 **” IPv6。在 **Encryption Suite** 部分中，选择 **Custom**、**Custom Encryption**。
**注意**  
必须选择 for ** IPv4 和 IKEv1 f IKEv2 or IPv6** 选项才能 IKEv1 使用功能。

1. 在对话框中，配置如下加密属性，然后在完成后选择 **OK (确定)**：
   + IKE 安全关联 (第 1 阶段) 属性：
     + **Perform key exchange encryption with**：AES-128
     + **Perform data integrity with**：SHA-1
   + IPsec 安全关联（第 2 阶段）属性：
     + **使用以下 IPsec 命令执行数据加密**：AES-128
     + **Perform data integrity with**：SHA-1

1. 在类别窗格中，选择 **Tunnel Management**。选择 **Set Permanent Tunnels**、**On all tunnels in the community**。在 **VPN Tunnel Sharing** 部分中，选择 **One VPN tunnel per Gateway pair**。

1. 在类别窗格中，展开 **Advanced Settings**，然后选择 **Shared Secret**。

1. 选择第一条隧道的对等名称，再选择 **Edit (编辑)**，然后输入配置文件的 `IPSec Tunnel #1` 部分中指定的预共享密钥。

1. 选择第二条隧道的对等名称，再选择 **Edit (编辑)**，然后输入配置文件的 `IPSec Tunnel #2` 部分中指定的预共享密钥。  
![\[“Check Point Interoperable Shared Secret (检查点可互操作共享密码)”对话框\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/check-point-shared-secret.png)

1. 仍然在 **Advanced Settings (高级设置)** 类别中，选择 **Advanced VPN Properties (高级 VPN 属性)**，配置如下属性，然后在完成后选择 **OK (确定)**：
   + IKE (第 1 阶段)：
     + **Use Diffie-Hellman group (使用 Diffie-Hellman 组)**：`Group 2 (1024 bit)`
     + **Renegotiate IKE security associations every** `480` **minutes**
   + IPsec （第 2 阶段）：
     + 选择 **Use Perfect Forward Secrecy**
     + **Use Diffie-Hellman group (使用 Diffie-Hellman 组)**：`Group 2 (1024 bit)`
     + ****每`3600`秒钟重新协商一次 IPsec 安全关联****

**创建防火墙规则**

接下来，配置一个具有防火墙规则和定向匹配规则的策略，这些规则允许 VPC 和本地网络之间的通信。然后在网关上安装该策略。

1. 在中 SmartDashboard，为您的网关选择**全局属性**。在类别窗格中，展开 **VPN**，然后选择 **Advanced**。

1. 选择 **Enable VPN Directional Match in VPN Column**，然后选择 **OK**。

1. 在中 SmartDashboard，选择**防火墙**，然后使用以下规则创建策略：
   + 允许 VPC 子网通过所需协议与本地网络进行通信。
   + 允许本地网络通过所需协议与 VPC 子网进行通信。

1. 打开 VPN 列中的单元格的上下文菜单，并选择 **Edit Cell**。

1. 在 **VPN Match Conditions** 对话框中，选择 **Match traffic in this direction only**。通过为以下每个定向匹配规则选择 **Add (添加)** 来创建该规则，然后在完成后选择 **OK (确定)**：
   + `internal_clear` > VPN 社区（您先前创建的 VPN 星级社区，例如，`AWS_VPN_Star`）
   + VPN 社区 > VPN 社区
   + VPN 社区 > `internal_clear`

1. 在中 SmartDashboard，选择**策略**，**安装**。

1. 在对话框中，选择您的网关并选择 **OK** 以安装策略。

**修改 tunnel\$1keepalive\$1method 属性**

您的检查点网关可使用失效对端检测 (DPD) 来标识 IKE 关联中断的时间。要为永久隧道配置 DPD，必须在 AWS VPN 社区中配置永久隧道。

默认情况下，VPN 网关的 `tunnel_keepalive_method` 属性设置为 `tunnel_test`。您必须将该值更改为 `dpd`。VPN 社区中每个需要 DPD 监控的 VPN 网关都必须使用 `tunnel_keepalive_method` 属性进行配置，包括任何第三方 VPN 网关。您不能为同一网关配置不同的监控机制。

您可以使用 Gui DBedit 工具更新该`tunnel_keepalive_method`属性。

1. 打开检查点 SmartDashboard，然后选择**安全管理服务器**、**域管理服务器**。

1. 选择 **File** 和 **Database Revision Control...**，然后创建修订快照。

1. 关闭所有 SmartConsole 窗口，例如、“ SmartDashboard SmartView 跟踪器” 和 “ SmartView 监视器”。

1. 启动 Gui BDedit 工具。有关更多信息，请参阅检查点支持中心上的文章[检查点数据库工具](https://support.checkpoint.com/results/sk/sk13009)。

1. 依次选择 **Security Management Server** 和 **Domain Management Server**。

1. 在左上窗格中，依次选择 **Table**、**Network Objects** 和 **network\$1objects**。

1. 在右上窗格中，依次选择相关的 **Security Gateway** 和 **Cluster** 对象。

1. 按 Ctrl\$1F，或者使用 **Search** 菜单搜索以下内容：`tunnel_keepalive_method`。

1. 在下方窗格中，打开 `tunnel_keepalive_method` 的上下文菜单，并选择 **Edit...**。依次选择 **dpd** 和 **OK (确定)**。

1. 对属于 AWS VPN 社群的每个网关重复步骤 7 到步骤 9。

1. 依次选择 **File** 和 **Save All**。

1. 关闭 Gui DBedit 工具。

1. 打开检查点 SmartDashboard，然后选择**安全管理服务器**、**域管理服务器**。

1. 在相关的 **Security Gateway** 和 **Cluster** 对象上安装策略。

有关更多信息，请参阅检查点支持中心上的文章 [R77.10 中的新增 VPN 特征](https://support.checkpoint.com/results/sk/sk97746)。

**启用 TCP MSS 固定**

TCP MSS 固定减小了 TCP 数据包的最大段大小以防止数据包分段。

1. 导航到以下目录：`C:\Program Files (x86)\CheckPoint\SmartConsole\R77.10\PROGRAM\`。

1. 通过运行 `GuiDBEdit.exe` 文件打开检查点数据库工具。

1. 选择 **Table**、**Global Properties**、**properties**。

1. 对于 `fw_clamp_tcp_mss`，选择 **Edit**。将值更改为 `true`，然后选择 **OK (确定)**。

**验证隧道状态**  
您可以通过在专家模式下从命令行工具运行以下命令来验证隧道状态。

```
vpn tunnelutil
```

在显示的选项中，选择 **1** 以验证 IKE 关联，选择 **2** 以验证 IPsec关联。

您也可以使用检查点智能跟踪器日志来验证通过连接传输的数据包是否已加密。例如，以下日志指示数据包通过隧道 1 发送到 VPC 并且已加密。

![\[检查点日志文件\]](http://docs.aws.amazon.com/zh_cn/vpn/latest/s2svpn/images/check-point-log.png)


------
#### [ SonicWALL ]

您可以使用 SonicOS 管理界面配置 SonicWALL 设备。有关配置隧道的更多信息，请参阅[为 AWS Site-to-Site VPN 客户网关设备配置静态路由](cgw-static-routing-example-interface.md)。

您无法使用管理接口配置此设备的 BGP。请改用示例配置文件中名为 **BGP** 的部分中提供的命令行指令进行配置。

------

## Cisco 设备：其他信息
<a name="cgw-dynamic-routing-examples-cisco"></a>

某些 Cisco ASAs 仅支持 Active/Standby 模式。使用这些 Cisco 时 ASAs，一次只能有一个活动隧道。仅在第一个隧道不可用的情况下，备用隧道才可用。借助该冗余度，您应该始终可以通过其中一个隧道连接到您的 VPC。

思科 ASAs 9.7.1 及更高版本支持 Active/Active 模式。使用这些 Cisco 时 ASAs，可以同时激活两条隧道。借助该冗余度，您应该始终可以通过其中一个隧道连接到您的 VPC。

对于 Cisco 设备，您必须执行以下操作：
+ 配置外部接口。
+ 确保 Crypto ISAKMP 策略序列号具有唯一性。
+ 确保 Crypto 列表策略序列号具有唯一性。
+ 确保加密 IPsec 转换集和加密 ISAKMP 策略序列与设备上配置的任何其他 IPsec 隧道保持一致。
+ 确保 SLA 监控号具有唯一性。
+ 对在客户网关设备和您的本地网络之间传输流量的所有路由选择进行配置。

## Juniper 设备：其他信息
<a name="cgw-dynamic-routing-examples-juniper"></a>

以下信息适用于 Juniper J 系列 和 SRX 客户网关设备的示例配置文件。
+ 外部接口称为*ge-0/0/0.0*。
+ 隧道接口 IDs 称为*st0.1*和*st0.2*。
+ 确保您识别上行链路接口的安全区（配置信息使用默认的“untrust”区）。
+ 确保您识别内部接口的安全区（配置信息使用默认的“trust”区）。