

# 登记 适用于 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 设备。然后，您可以添加您的设备并执行*加入*流程，随后您便可以开始发送上行链路消息了。