

# 适用于 LoRaWAN 的 AWS IoT Core 和接口 VPC 端点（AWS PrivateLink）
<a name="vpc-interface-endpoints"></a>

您可以通过虚拟私有云（VPC）中的 [接口 VPC 端点（AWS PrivateLink）](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html) 直接连接到 适用于 LoRaWAN 的 AWS IoT Core，而不是通过公共互联网进行连接。当您使用 VPC 接口端点时，VPC 与 适用于 LoRaWAN 的 AWS IoT Core 之间的通信完全在 AWS 网络内安全进行。

适用于 LoRaWAN 的 AWS IoT Core 支持 Amazon Virtual Private Cloud 接口端点，这些端点由 AWS PrivateLink 提供支持。每个 VPC 端点都由您的 VPC 子网中一个或多个使用私有 IP 地址的[弹性网络接口](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html)代表。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[接口 VPC 端点 (AWS PrivateLink)](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html)。

有关 VPC 和端点的更多信息，请参阅[什么是 Amazon VPC](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html#what-is-privatelink)。

有关 AWS PrivateLink 的更多信息，请参阅 [AWS PrivateLink 和 VPC 端点](https://docs.aws.amazon.com/vpc/latest/privatelink/endpoint-services-overview.html)。

## 有关 AWS IoT Wireless VPC 端点的考虑事项
<a name="vpc-endpoint-considerations"></a>

请务必先查看**《Amazon VPC 用户指南》中的[接口端点属性和限制](https://docs.aws.amazon.com/vpc/latest/userguide/vpce-interface.html#vpce-interface-limitations)，然后再为 AWS IoT Wireless 设置接口 VPC 端点。

AWS IoT Wireless 支持从 VPC 调用它的所有 API 操作。AWS IoT Wireless 不支持 VPC 端点策略。默认情况下，允许通过端点对 AWS IoT Wireless 进行完全访问。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[使用 VPC 端点控制对服务的访问权限](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-access.html)。

## 适用于 LoRaWAN 的 AWS IoT Core 私有链接架构
<a name="vpc-endpoint-architecture"></a>

下图显示了 适用于 LoRaWAN 的 AWS IoT Core 私有链路架构 该架构使用 Transit Gateway 和 Route 53 Resolver 在您的 VPC、适用于 LoRaWAN 的 AWS IoT Core VPC 以及本地部署环境之间共享 AWS PrivateLink 接口端点。在设置与 VPC 接口端点的连接时，您将找到更详细的架构图。

![\[图片显示了如何使用 AWS PrivateLink 连接到 适用于 LoRaWAN 的 AWS IoT Core 端点。\]](http://docs.aws.amazon.com/zh_cn/iot-wireless/latest/developerguide/images/iot-lorawan-privatelink-architecture.png)


## 适用于 LoRaWAN 的 AWS IoT Core 端点
<a name="vpc-lorawan-endpoints"></a>

适用于 LoRaWAN 的 AWS IoT Core 有三个公有端点。每个公有端点都有相应的 VPC 接口端点。公有端点可分为控制面板和数据面板端点。有关这些端点的信息，请参阅 [适用于 LoRaWAN 的 AWS IoT Core API 端点](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-wireless_region)。
+ 

**控制面板 API 端点**  
 您可以使用控制面板 API 端点与 AWS IoT Wireless API 交互。这些端点可以使用 AWS PrivateLink 从托管在 Amazon VPC 中的客户端进行访问。
+ 

**数据面板 API 端点**  
数据面板 API 端点是 LoRaWAN Network Server（LNS）和 Configuration and Update Server（CUPS）端点，您可以使用它们与 适用于 LoRaWAN 的 AWS IoT Core LNS 和 CUPS 端点进行交互。这些端点可以使用 Site-to-Site VPN 或 AWS Direct Connect 从本地部署的 LoRa 网关访问。您可以在将网关登记到 适用于 LoRaWAN 的 AWS IoT Core 时获取这些端点。有关更多信息，请参阅[将网关添加到 适用于 LoRaWAN 的 AWS IoT Core](lorawan-onboard-gateway-add.md)。

**Topics**
+ [有关 AWS IoT Wireless VPC 端点的考虑事项](#vpc-endpoint-considerations)
+ [适用于 LoRaWAN 的 AWS IoT Core 私有链接架构](#vpc-endpoint-architecture)
+ [适用于 LoRaWAN 的 AWS IoT Core 端点](#vpc-lorawan-endpoints)
+ [登记 适用于 LoRaWAN 的 AWS IoT Core 控制面板 API 端点](lorawan-onboard-control-endpoint.md)
+ [登记 适用于 LoRaWAN 的 AWS IoT Core 数据面板 API 端点](onboard-lns-cups-endpoints.md)

# 登记 适用于 LoRaWAN 的 AWS IoT Core 控制面板 API 端点
<a name="lorawan-onboard-control-endpoint"></a>

您可以使用 适用于 LoRaWAN 的 AWS IoT Core 控制面板 API 端点与 AWS IoT Wireless API 交互。例如，您可以使用此端点运行 [SendDataToWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html) API 以将数据从 AWS IoT 发送到 LoRaWAN 设备。有关更多信息，请参阅[适用于 LoRaWAN 的 AWS IoT Core 控制面板 API 端点](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core.html#iot-wireless-control-plane-endpoints)。

您可以使用 Amazon VPC 中托管的客户端访问由 AWS PrivateLink 提供支持的控制面板端点。您可以通过虚拟私有云（VPC）中的接口端点直接连接到 AWS IoT Wireless API，而不是通过公共互联网进行连接。

**Topics**
+ [创建您的 Amazon VPC 和子网](#create-vpc)
+ [将 Amazon EC2 实例启动到您的子网中](#launch-ec2-instance)
+ [创建 Amazon VPC 接口端点](#create-vpc-endpoint)
+ [测试与接口端点的连接](#connect-vpc-endpoint)

## 创建您的 Amazon VPC 和子网
<a name="create-vpc"></a>

您必须先创建 VPC 和子网，然后才能连接到接口端点。然后，您将在子网中启动 EC2 实例，您可以使用该实例连接到接口端点。

要创建您的 VPC：

1. 导航 Amazon VPC 控制台的 [VPC](https://console.aws.amazon.com/vpc/home#/vpcs) 页面上，然后选择 **Create VPC**（创建 VPC）。

1. 在 **Create VPC**（创建 VPC）页面：
   + 为 **VPC Name tag - optional**（VPC 名称标签 — 可选）输入名称（例如，**VPC-A**）。
   + 在 IPv4 CIDR 块中输入 VPC 的 IPv4 地址范围（例如 **10.100.0.0/16**）。

1. 保留其他字段的默认值，然后选择**创建 VPC**。

要创建子网：

1. 导航 Amazon VPC 控制台的 [Subnets](https://console.aws.amazon.com/vpc/home#/subnets)（子网）页面上，然后选择 **Create subnet**（创建子网）。

1. 在 **Create subnet**（创建子网）页面中：
   + 对于 **VPC ID**，请选择之前创建的 VPC（例如，`VPC-A`）。
   + 在 **Subnet name**（子网名称）中输入名称（例如，**Private subnet**)。
   + 为您的子网选择**可用区**。
   + 在 **IPv4 CIDR 块**中输入子网的 IP 地址数据块（例如，**10.100.0.0/24**)。

1. 要创建子网并将其添加到 VPC 中，请选择 **Create subnet**（创建子网）。

有关更多信息，请参阅[使用 VPC 和子网](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html)。

## 将 Amazon EC2 实例启动到您的子网中
<a name="launch-ec2-instance"></a>

要启动 EC2 实例：

1. 导航到 [Amazon EC2](https://console.aws.amazon.com/ec2/home#/) 控制台并选择 **Launch Instance**（启动实例）。

1. 对于 AMI，请选择 **Amazon Linux 2 AMI (HVM)，SSD Volume Type**，然后选择 **t2 micro** 实例类型。要配置实例详情，请选择 **Next**（下一步）。

1. 在 **Configure Instance Details**（配置实例详细信息）页面：
   + 对于 **Network**（网络），请选择您之前创建的 VPC（例如：`VPC-A`）。
   + 对于 **Subnet**（子网），请选择您之前创建的子网（例如，**Private subnet**）。
   + 对于 **IAM role**（IAM 角色），请选择角色 **AWSIoTWirelessFullAccess** 以授予 适用于 LoRaWAN 的 AWS IoT Core 完全访问策略。有关更多信息，请参阅 [`AWSIoTWirelessFullAccess` 策略摘要](https://console.aws.amazon.com/iam/home#/policies/arn:aws:iam::aws:policy/AWSIoTWirelessFullAccess$serviceLevelSummary)。
   + 对于**假定私有 IP**，请使用 IP 地址，例如 **10.100.0.42**。

1. 选择 **Next: Add Storage**（下一步：添加存储），然后选择 **Next: Add Tags**（下一步：添加标签）。您可以选择添加要与 EC2 实例关联的任何标签。选择 **Next: Configure Security Group**。

1. 在 **Configure Security Group**（配置安全组）页面上，将安全组配置为允许执行以下操作：
   + 对源 `10.200.0.0/16` 打开 **All TCP**。
   + 对源 `10.200.0.0/16` 打开 **All ICMP - IPV4**。

1. 要查看实例详细信息并启动 EC2 实例，请选择 **Review and Launch**（审核和启动）。

有关更多信息，请参阅 [Amazon EC2 Linux 实例入门](https://docs.aws.amazon.com/AWSEC2/latest/userguide/EC2_GetStarted.html)。

## 创建 Amazon VPC 接口端点
<a name="create-vpc-endpoint"></a>

您可以为您的 VPC 创建 VPC 端点，然后可以通过 EC2 API 访问该端点。要创建端点：

1. 导航到 [VPC](https://console.aws.amazon.com/vpc/home#/endpoints) **端点**控制台并选择 **Create Endpoint**（创建端点）。

1. 在 **Create Endpoint**（创建端点）页面上，指定以下信息。
   + 为 **Service category**（服务类别）选择**AWS 服务**。
   + 对于 **Service Name**（服务名称），通过输入关键字 **iotwireless** 进行搜索。在显示的 `iotwireless` 服务列表中，请为您的区域选择控制面板 API 端点。端点的格式为 `com.amazonaws.region.iotwireless.api`。
   + 对于 ** VPC** 和 **Subnets**（子网），选择要在其中创建端点的 VPC 和要在其中创建端点网络的可用区 (AZ)。
**注意**  
并非所有可用区都支持 `iotwireless` 服务。
   + 对于 **Enable DNS Name**（启用 DNS 名称），请选择 **Enable for this endpoint**（为此端点启用）。

     选择此选项将自动解析 DNS 并在 Amazon Route 53 Public Data Plane 创建一个路由，以便稍后用于测试连接的 API 能够通过私密链路端点。
   + 对于 **Security group**（安全组），选择要与端点网络接口关联的安全组。
   + 您可以选择添加或删除标签。标签是用于与端点关联的名称-值对。

1. 要创建 VPC 端点，请选择 **Create endpoint**（创建端点）。

## 测试与接口端点的连接
<a name="connect-vpc-endpoint"></a>

您可以使用 SSH 访问您的 Amazon EC2 实例，然后使用 AWS CLI 连接到私有链路接口端点。

在连接到接口端点之前，请根据[在 Linux 上安装、更新和卸载 AWS CLI 版本 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2-linux.html) 中所描述的方法下载最新的 AWS CLI 版本。

以下示例介绍如何使用 CLI 测试到接口端点的连接。

```
aws iotwireless create-service-profile \ 
    --endpoint-url https://api.iotwireless.region.amazonaws.com  \ 
    --name='test-privatelink'
```

以下是运行命令的示例。

```
Response:
{
 "Arn": "arn:aws:iotwireless:region:acct_number:ServiceProfile/1a2345ba-4c5d-67b0-ab67-e0c8342f2857",
 "Id": "1a2345ba-4c5d-67b0-ab67-e0c8342f2857"
}
```

同样，您可以运行以下命令来获取服务配置文件信息或列出所有服务配置文件。

```
aws iotwireless get-service-profile \ 
    --endpoint-url https://api.iotwireless.region.amazonaws.com  
    --id="1a2345ba-4c5d-67b0-ab67-e0c8342f2857"
```

以下是 list-device-profiles 命令的示例。

```
aws iotwireless list-device-profiles \ 
    --endpoint-url https://api.iotwireless.region.amazonaws.com
```

# 登记 适用于 LoRaWAN 的 AWS IoT Core 数据面板 API 端点
<a name="onboard-lns-cups-endpoints"></a>

适用于 LoRaWAN 的 AWS IoT Core 数据面板端点由以下端点组成。将网关添加到 适用于 LoRaWAN 的 AWS IoT Core 时，您将获得这些端点。有关更多信息，请参阅[将网关添加到 适用于 LoRaWAN 的 AWS IoT Core](lorawan-onboard-gateway-add.md)。
+ 

**LoRaWAN 网络服务器 (LNS) 端点**  
LNS 端点的格式为 `account-specific-prefix.lns.lorawan.region.amazonaws.com`。您可以使用此端点建立用于交换 LoRa 上行链路和下行链路消息的连接。
+ 

**Configuration and Update Server (CUPS) 端点**  
CUPS 端点的格式为 `account-specific-prefix.cups.lorawan.region.amazonaws.com`。您可以将此端点用于网关的凭证管理、远程配置和固件更新。

有关更多信息，请参阅[使用 CUPS 和 LNS 协议](lorawan-manage-gateways.md#lorawan-cups-lns-protocols)。

要查找适用于您的 AWS 账户 和区域的数据面板 API 端点，请使用在此显示的 [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-service-endpoint.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iotwireless/get-service-endpoint.html) CLI 命令，或是 [https://docs.aws.amazon.com/iotwireless/latest/apireference/API_GetServiceEndpoint.html](https://docs.aws.amazon.com/iotwireless/latest/apireference/API_GetServiceEndpoint.html) REST API。有关更多信息，请参阅[适用于 LoRaWAN 的 AWS IoT Core 数据面板 API 端点](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core.html#iot-wireless-data-plane-endpoints)。

您可以在本地部署连接 LoRaWAN 网关，以便与 适用于 LoRaWAN 的 AWS IoT Core 端点通信。要建立此连接，请首先使用 VPN 连接将本地部署网关连接到您 VPC 中的AWS 账户。然后，您可以与 适用于 LoRaWAN 的 AWS IoT Core VPC 中的数据面板接口端点通信，该 VPC 由私有链路提供支持。

**Topics**
+ [创建 VPC 接口端点和私有托管区域](create-vpc-lns-cups.md)
+ [使用 VPN 以将 LoRa 网关连接到 AWS 账户。](lorawan-vpc-vpn-connection.md)

# 创建 VPC 接口端点和私有托管区域
<a name="create-vpc-lns-cups"></a>

适用于 LoRaWAN 的 AWS IoT Core 有两个数据面板端点： Configuration and Update Server (CUPS) 端点和 LoRaWAN Network Server (LNS) 端点。建立到两个端点的私有链路连接的设置过程是相同的，因此我们可以使用 LNS 端点进行说明。

对于数据面板端点，LoRa 网关首先连接到您在 Amazon VPC 中的 AWS 账户，然后它会连接到 适用于 LoRaWAN 的 AWS IoT Core VPC 中的 VPC 端点。

连接到端点时，DNS 名称可以在一个 VPC 内解析，但无法跨多个 VPC 解析。要在创建端点时禁用私有 DNS，请禁用 **Enable DNS name**（启用 DNS 名称）设置。您可以使用私有托管区域提供有关您希望 Route 53 响应 VPC 的 DNS 查询的信息。要与本地部署环境共享您的 VPC，您可以使用 Route 53 Resolver 来支持混合 DNS。

**Topics**
+ [创建 Amazon VPC 和子网](#lns-create-vpc)
+ [创建 Amazon VPC 接口端点](#lns-create-vpc-endpoint)
+ [配置私有托管区域](#create-phz-lns)
+ [配置 Route 53 入站解析程序](#configure-route53-resolver)
+ [后续步骤](#lns-cups-next-steps)

## 创建 Amazon VPC 和子网
<a name="lns-create-vpc"></a>

您可以重复使用您在登记控制面板端点时创建的 Amazon VPC 和子网。有关信息，请参阅 [创建您的 Amazon VPC 和子网](lorawan-onboard-control-endpoint.md#create-vpc)。

## 创建 Amazon VPC 接口端点
<a name="lns-create-vpc-endpoint"></a>

您可以为 VPC 创建 VPC 端点，这与为控制面板端点创建 VPC 端点的方式类似。

1. 导航到 [VPC](https://console.aws.amazon.com/vpc/home#/endpoints) **端点**控制台并选择 **Create Endpoint**（创建端点）。

1. 在 **Create Endpoint**（创建端点）页面上，指定以下信息。
   + 为 **Service category**（服务类别）选择**AWS 服务**。
   + 对于 **Service Name**（服务名称），通过输入关键字 **lns** 进行搜索。在显示的 `lns` 服务列表中，请选择您所在区域的 LNS 数据面板 API 端点。端点的格式为 `com.amazonaws.region.lorawan.lns`。
**注意**  
如果您正在为 CUPS 端点执行此流程，请搜索 `cups`。端点的格式为 `com.amazonaws.region.lorawan.cups`。
   + 对于 ** VPC** 和 **Subnets**（子网），选择要在其中创建端点的 VPC 和要在其中创建端点网络的可用区 (AZ)。
**注意**  
并非所有可用区都支持 `iotwireless` 服务。
   + 对于 **Enable DNS name**（启用 DNS 名称），请确保未选择 **Enable for this endpoint**（为此端点启用）。

     如果不选择此选项，您可以禁用 VPC 端点的私有 DNS，并改为使用私有托管区域。
   + 对于 **Security group**（安全组），选择要与端点网络接口关联的安全组。
   + 您可以选择添加或删除标签。标签是用于与端点关联的名称-值对。

1. 要创建 VPC 端点，请选择 **Create endpoint**（创建端点）。

## 配置私有托管区域
<a name="create-phz-lns"></a>

创建私有链路端点后，在端点的 **Details**（详细信息）选项卡下，您将看到 DNS 名称列表。您可以使用这些 DNS 名称来配置私有托管区域。DNS 名称将采用 `vpce-xxxx.lns.lorawan.region.vpce.amazonaws.com` 格式。

**创建私有托管区域**  
要创建私有托管区域：

1. 导航到 [Route 53](https://console.aws.amazon.com/route53/v2/hostedzones#/) **托管区域**控制台并选择 **Create hosted zone**（创建托管区域）。

1. 在 **Create hosted zone**（创建托管区域）页面上，指定以下信息。
   + 对于 **Domain name**（域名），输入 LNS 端点的完整服务名称，**lns.lorawan.region.amazonaws.com**。
**注意**  
如果您正在为 CUPS 端点执行此流程，请输入 **cups.lorawan.region.amazonaws.com**。
   + 对于 **Type**（类型），选择 **Private hosted zone**（私有托管区域）。
   + 或者，您可以添加或删除要与托管区域关联的标签。

1. 要创建您的私有托管区域，请选择 **Create hosted zone**（创建托管区域）。

有关更多信息，请参阅[创建私有托管区域](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/hosted-zone-private-creating.html)。

创建私有托管区域后，您可以创建一个记录，告诉 DNS 如何将流量路由到该域。

**创建记录**  
创建私有托管区域后，您可以创建一个记录，告诉 DNS 如何将流量路由到该域。要创建记录：

1. 在显示的托管区域列表中，选择您之前创建的私有托管区域，然后选择 **Create record**（创建记录）。

1. 使用向导提供的方法创建记录。如果控制台为您提供了 **Quick create**（快速创建）的方法，选择 **Switch to wizard**（切换到向导）。

1. 在 **Routing policy**（路由策略）中选择 **Simple Routing**（简单路由），然后选择 **Next**（下一步）。

1. 在 **Configure records**（配置记录）下，选择 **Define simple record**（定义简单记录）。

1. 在 **Define simple record**（定义简单记录）页面:
   + 对于 **Record name**（记录名称），输入您的AWS 账户账号别名。您可以在登记网关时获取此值，或者通过使用 [https://docs.aws.amazon.com/iotwireless/latest/apireference/API_GetServiceEndpoint.html](https://docs.aws.amazon.com/iotwireless/latest/apireference/API_GetServiceEndpoint.html) REST API 获取此值。
   + 对于 **Record type**（记录类型），请将该值保持为 `A - Routes traffic to an IPv4 address and some AWS resources`。
   + 对于 **Value/Route traffic to**（值/流量路由至），选择 **Alias to VPC endpoint**（向 VPC 添加别名）。然后选择您的 **Region**（区域），接着从显示的端点列表中选择您之前创建的端点，如 [创建 Amazon VPC 接口端点](#lns-create-vpc-endpoint) 中所述。

1. 选择 **Define simple record**（定义简单记录）以创建您的记录。

## 配置 Route 53 入站解析程序
<a name="configure-route53-resolver"></a>

若要将 VPC 端点共享到本地部署环境，可以使用 Route 53 Resolver 来支持混合 DNS。入站解析程序将允许您将流量从本地部署网络路由到数据面板端点，而无需通过公共互联网。要为服务返回私有 IP 地址值，请在 VPC 端点所在的 VPC 中创建 Route 53 Resolver。

创建入站解析程序时，您只需指定您之前在可用区 (AZ) 中创建的 VPC 以及子网即可。Route 53 Resolver 使用此信息自动分配 IP 地址，将流量路由到每个子网。

要创建入站解析程序：

1. 导航到 [Route 53](https://console.aws.amazon.com/route53/v2/inbound-endpoints#/) **Inbound endpoint**（Route 53 入站端点）控制台并选择 **Create inbound endpoint**（创建入站端点）。
**注意**  
请确保您使用的是与您在创建端点和私有托管区域时相同的AWS 区域。

1. 在 **Create inbound endpoint**（创建入站端点）页面，请指定以下信息。
   + 为 **Endpoint name**（端点名称）输入名称（例如，**VPC\$1A\$1Test**）。
   + 对于 **VPC in the region**（该区域中的 VPC），选择您在创建 VPC 端点时使用的相同 VPC。
   + 配置 **Security group for this endpoint**（适用于此端点的安全组）以允许来自本地部署网络的传入流量。
   + 对于 IP 地址，选择 **Use an IP adress that is selected automatically**（使用自动选择的 IP 地址）。

1. 选择 **Submit**（提交）以创建您的入站解析程序。

在这个例子中，让我们假设 IP 地址 `10.100.0.145` 和 `10.100.192.10` 被分配给了路由流量的入站 Route 53 Resolver。

## 后续步骤
<a name="lns-cups-next-steps"></a>

您已创建私有托管区域和入站解析程序，以路由 DNS 条目的流量。现在，您可以使用 Site-to-Site VPN 或 Client VPN 端点。有关更多信息，请参阅[使用 VPN 以将 LoRa 网关连接到 AWS 账户。](lorawan-vpc-vpn-connection.md)。

# 使用 VPN 以将 LoRa 网关连接到 AWS 账户。
<a name="lorawan-vpc-vpn-connection"></a>

要将本地部署网关连接到您的AWS 账户，可以使用 Site-to-Site VPN 连接或 Client VPN 端点。

在连接本地部署网关之前，您必须已创建 VPC 端点，并配置私有托管区和入站解析程序，以避免来自网关的流量通过公共网络。有关更多信息，请参阅[创建 VPC 接口端点和私有托管区域](create-vpc-lns-cups.md)。

## Site-to-Site VPN 端点
<a name="vpc-site-vpn"></a>

如果您没有网关硬件或希望使用其他AWS 账户测试 VPN 连接，则可以使用 Site-to-Site VPN 连接。您可以使用 Site-to-Site VPN 连接来自同一个 AWS 账户的 VPC 端点；或如果您打算在不同 AWS 区域中使用，则可以选择来自其他 AWS 账户的 VPC 端点。

**注意**  
如果您拥有网关硬件并希望建立 VPN 连接，我们建议您改用 Client VPN。有关说明，请参阅[Client VPN 端点](#vpc-client-vpn)。

要设置 Site-to-Site VPN：

1. 在要从中设置连接的站点中创建另一个 VPC。对于 `VPC-A`，您可以重复使用之前创建的 VPC。要创建另一个 VPC（例如，`VPC-B`），请使用与您之前创建的 VPC 的 CIDR 块不重叠的 CIDR 块。

   有关设置 VPC 的信息，请按照[AWS设置 Site-to-Site VPN 连接](samples/Setup_Site_to_Site_VPN.zip)中所述操作执行。
**注意**  
文档中描述的 Site-to-Site VPN VPN 方法使用 OpenSWAN 进行 VPN 连接，该连接仅支持一个 VPN 隧道。如果您为 VPN 使用了不同的商业软件，则可在站点之间设置两个通道。

1. 设置 VPN 连接后，请添加您的AWS 账户中的入站解析程序 IP 地址，以更新 `/etc/resolv.conf` 文件。您将为名称服务器使用此 IP 地址。有关如何获取此 IP 地址的信息，请参阅 [配置 Route 53 入站解析程序](create-vpc-lns-cups.md#configure-route53-resolver)。在这个示例中，我们可以使用您在创建 Route 53 Resolver 时分配的 IP 地址 `10.100.0.145`。

   ```
   options timeout:2 attempts:5
   ; generated by /usr/sbin/dhclient-script
   search region.compute.internal
   nameserver 10.100.0.145
   ```

1. 现在，我们可以测试 VPN 连接是否使用了 AWS PrivateLink 端点，而无需使用 `nslookup` 命令经由公共互联网进行测试。以下是运行命令的示例。

   ```
   nslookup account-specific-prefix.lns.lorawan.region.amazonaws.com
   ```

   下面显示了运行命令的示例输出，该输出显示了一个私有 IP 地址，表示与 AWS PrivateLink LNS 端点的连接已建立。

   ```
   Server: 10.100.0.145
   Address: 10.100.0.145
   
   Non-authoritative answer:
   Name: https://xxxxx.lns.lorawan.region.amazonaws.com
   Address: 10.100.0.204
   ```

有关使用 Site -to-Site VPN 连接的信息，请参阅 [Site-to-Site VPN 的工作原理](https://docs.aws.amazon.com/vpn/latest/s2svpn/how_it_works.html)。

## Client VPN 端点
<a name="vpc-client-vpn"></a>

AWS Client VPN 是一种基于客户端的托管 VPN 服务，让您能够安全地访问 AWS 资源和本地网络中的资源。下面显示了 Client VPN 服务的架构。

![\[图片显示了如何使用 AWS Client VPN 在本地连接您的 LoRa 网关。\]](http://docs.aws.amazon.com/zh_cn/iot-wireless/latest/developerguide/images/lorawan-privatelink-client-vpn.png)


要建立到 Client VPN 端点的 VPN 连接：

1. 按照 [AWS Client VPN 入门](https://docs.aws.amazon.com/vpn/latest/clientvpn-admin/cvpn-getting-started.html)中描述的说明创建 Client VPN 端点。

1. 使用该路由器的访问 URL（例如 `192.168.1.1`），登录到本地网络（例如，Wi-Fi 路由器），然后查找根名称和密码。

1. 按照网关文档中的说明设置 LoRaWAN 网关，然后将您的网关添加到 适用于 LoRaWAN 的 AWS IoT Core。有关如何添加网关的信息，请参阅 [将您的网关登记到 适用于 LoRaWAN 的 AWS IoT Core](lorawan-onboard-gateways.md)。

1. 检查您的网关固件是否为最新版本。如果固件过期，您可以按照本地部署网络中提供的说明更新网关的固件。有关更多信息，请参阅[使用 适用于 LoRaWAN 的 AWS IoT Core 的 CUPS 服务更新网关固件](lorawan-update-firmware.md)。

1. 检查 OpenVPN 是否已启用。如果已启用，请跳到下一步以配置本地部署网络中的 OpenVPN 客户端。如果尚未启用，请遵循[为 OpenWrt 安装 OpenVPN 的指南](https://www.ovpn.com/en/guides/openwrt)。
**注意**  
在此示例中，我们使用 OpenVPN。您可以使用其他 VPN 客户端，例如 Site-to-Site VPN 或者 AWS Direct Connect 以设置 Client VPN 连接。

1. 根据客户端配置中的信息配置 OpenVPN 客户端，并了解您可以如何使用[使用 LuCi 的 OpenVPN 客户端](https://openwrt.org/docs/guide-user/services/vpn/openvpn/client-luci)。

1. 将入站解析程序的 IP 地址添加到AWS 账户 (`10.100.0.145`)，从而 SSH 连接到您的本地部署网络，并更新`/etc/resolv.conf`文件。

1. 对于要使用AWS PrivateLink连接到端点的网关流量，请将网关的第一个 DNS 条目替换为入站解析程序的 IP 地址。

有关使用 Site-to-Site VPN 连接的信息，请参阅 [Client VPN 入门](https://docs.aws.amazon.com/vpn/latest/clientvpn-user/user-getting-started.html)。

## 连接到 LNS 和 CUPS VPC 端点
<a name="vpc-vpn-connect"></a>

下面显示了如何测试与 LNS 和 CUPS VPC 端点的连接。

**测试 CUPS 端点**  
要测试您的 LoRa 网关与 CUPS 端点的 AWS PrivateLink 连接，请运行以下命令：

```
curl -k -v -X POST https://xxxx.cups.region.iotwireless.iot:443/update-info 
     --cacert cups.trust --cert cups.crt --key cups.key --header "Content-Type: application/json" 
     --data '{ 
              "router": "xxxxxxxxxxxxx", 
              "cupsUri": "https://xxxx.cups.lorawan.region.amazonaws.com:443",
              "cupsCredCrc":1234, "tcCredCrc":552384314
             }' 
      —output cups.out
```

**测试 LNS 端点**  
要测试您的 LNS 端点，请首先预置一个可与您的无线网关配合使用的 LoRaWAN 设备。然后，您可以添加您的设备并执行*加入*流程，随后您便可以开始发送上行链路消息了。