

# 加入 AWS IoT Core for LoRaWAN 資料平面 API 端點
<a name="onboard-lns-cups-endpoints"></a>

AWS IoT Core for LoRaWAN 資料平面端點包含下列端點。將您的閘道新增至 AWS IoT Core for LoRaWAN 時，您可以取得這些端點。如需詳細資訊，請參閱[將閘道新增至 AWS IoT Core for LoRaWAN](lorawan-onboard-gateway-add.md)。
+ 

**LoRaWAN 網路伺服器 (LNS) 端點**  
LNS 端點的格式為 `account-specific-prefix.lns.lorawan.region.amazonaws.com`。您可以使用此端點，來建立用於交換 LoRa 上行和下行訊息的連線。
+ 

**組態與更新伺服器 (CUPS) 端點**  
CUPS 端點的格式為 `account-specific-prefix.cups.lorawan.region.amazonaws.com`。您可以將此端點用於閘道的憑證管理、遠端組態和韌體更新。

如需詳細資訊，請參閱[使用 CUPS 和 LNS 通訊協定](lorawan-manage-gateways.md#lorawan-cups-lns-protocols)。

若要尋找適用於 AWS 帳戶 和 Region 的資料平面 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。如需詳細資訊，請參閱 [AWS IoT Core for LoRaWAN 資料平面 API 端點](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#iot-core.html#iot-wireless-data-plane-endpoints)。

您可以連接內部部署 LoRaWAN 閘道，以便與 AWS IoT Core for LoRaWAN 端點通訊。若要建立此連線，首先使用 VPN 連線，將內部部署閘道連接至 VPC 中的 AWS 帳戶。然後，您可以與 AWS IoT Core for LoRaWAN VPC 中 Privatelink 提供的資料平面介面端點通訊。

**Topics**
+ [建立 VPC 介面端點和私有託管區域](create-vpc-lns-cups.md)
+ [使用 VPN 將 LoRa 閘道連接至您的 AWS 帳戶](lorawan-vpc-vpn-connection.md)

# 建立 VPC 介面端點和私有託管區域
<a name="create-vpc-lns-cups"></a>

AWS IoT Core for LoRaWAN 有兩個資料平面端點：組態與更新伺服器 (CUPS) 端點和 LoRaWAN 網路伺服器 (LNS) 端點。建立與這兩個端點的 Privatelink 連線的設定程序相同，因此我們基於說明目的使用 LNS 端點。

對於您的資料平面端點，LoRa 閘道首先會連接到 Amazon VPC 中的 AWS 帳戶，然後連接到 AWS IoT Core for LoRaWAN VPC 中的 VPC 端點。

連接到端點時，DNS 名稱可以在一個 VPC 內進行解析，但無法跨多個 VPC 進行解析。若要在建立端點時停用私有 DNS，請停用 **Enable DNS name** (啟用 DNS 名稱) 設定。您可以使用私有託管區域，以提供您想要 Route 53 如何針對 VPC 回應 DNS 查詢的相關資訊。若要與內部部署環境共用 VPC，您可以使用 Route 53 解析程式來協助混合 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 端點，這與您為控制平面端點建立一個端點的方式類似。

1. 導覽至 [VPC](https://console.aws.amazon.com/vpc/home#/endpoints) **Endpoints** (端點) 主控台，然後選擇 **Create Endpoint** (建立端點)。

1. 在 **Create Endpoint** (建立端點) 頁面中，指定下列資訊。
   + 選擇**服務類別**的 **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>

在建立 Privatelink 端點之後，您會在端點的 **Details** (詳細資訊) 標籤中看到 DNS 名稱清單。您可以使用其中一個 DNS 名稱來設定私有託管區域。DNS 名稱的格式為 `vpce-xxxx.lns.lorawan.region.vpce.amazonaws.com`。

**建立私有託管區域**  
若要建立私有託管區域：

1. 導覽至 [Route 53](https://console.aws.amazon.com/route53/v2/hostedzones#/) **Hosted zones** (託管區域) 主控台，然後選擇 **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 解析程式可以用來協助混合 DNS。傳入解析程式可讓您將流量從內部部署網路路由至資料平面端點，無需通過公有網際網路。若要傳回服務的私有 IP 地址值，請在與 VPC 端點相同的 VPC 中建立 Route 53 解析程式。

當您建立傳入解析程式時，只須指定 VPC 和先前在可用區域 (AZ) 中建立的子網路。Route 53 解析程式會使用此資訊來自動指派 IP 地址，以將流量路由至每個子網路。

若要建立傳入解析程式：

1. 導覽至 [Route 53](https://console.aws.amazon.com/route53/v2/inbound-endpoints#/) **Inbound endpoints** (傳入端點) 主控台，然後選擇 **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 address that is selected automatically** (使用自動選取的 IP 地址)。

1. 選擇 **Submit** (提交) 來建立您的傳入解析程式。

針對這個範例，讓我們假設 IP 地址 `10.100.0.145` 和 `10.100.192.10` 指派給路由流量的傳入 Route 53 解析程式。

## 後續步驟
<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 帳戶 或您可能在不同 AWS 區域 中使用的另一個 AWS 帳戶 連接至 VPC 端點。

**注意**  
如果您有閘道硬體，而且想要設定 VPN 連線，我們建議您改用 Client VPN。如需指示，請參閱 [用戶端 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 方法會使用 OpenSWAN 進行 VPN 連線，而 VPN 連線只支援一個 VPN 通道。如果您針對 VPN 使用不同的商務軟體，您或許可以在網站之間設定兩個通道。

1. 在設定 VPN 連線之後，請從您的 AWS 帳戶 新增傳入解析程式的 IP 地址來更新 `/etc/resolv.conf` 檔案。您可以針對名稱伺服器使用此 IP 地址。如需如何取得此 IP 地址的相關資訊，請參閱 [設定 Route 53 傳入解析程式](create-vpc-lns-cups.md#configure-route53-resolver)。在這個範例中，我們可以使用您在建立 Route 53 解析程式時所指派的 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. 我們現在可以使用 `nslookup` 命令，測試 VPN 連線是否使用 AWS PrivateLink 端點，而不是通過公有網際網路。下列顯示執行命令的範例。

   ```
   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)。

## 用戶端 VPN 端點
<a name="vpc-client-vpn"></a>

AWS Client VPN 是以用戶端為基礎的受管 VPN 服務，能讓您安全地存取 AWS 資源，以及內部部署網路中的資源。下列顯示用戶端 VPN 服務的架構。

![\[顯示如何使用 AWS Client VPN 來連接 LoRa 閘道內部部署的影像。\]](http://docs.aws.amazon.com/zh_tw/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 閘道，然後將閘道新增至 AWS IoT Core for LoRaWAN。如需如何新增閘道的相關資訊，請參閱 [將閘道加入 AWS IoT Core for LoRaWAN](lorawan-onboard-gateways.md)。

1. 檢查閘道的韌體是否為最新版本。如果韌體過期，您可以遵循內部部署網路中提供的指示來更新閘道的韌體。如需詳細資訊，請參閱[使用 CUPS 服務搭配 AWS IoT Core for LoRaWAN 來更新閘道韌體](lorawan-update-firmware.md)。

1. 檢查 OpenVPN 是否已啟用。如果已啟用，請跳至下一個步驟，在內部部署網路內設定 OpenVPN 用戶端。如果尚未啟用，請遵循 [OpenVPN for OpenWrt 安裝指南](https://www.ovpn.com/en/guides/openwrt)中的指示。
**注意**  
對於此範例，我們使用 OpenVPN。您可以使用其他 VPN 用戶端 (例如 Site-to-Site VPN 或 AWS Direct Connect)，來設定 Client VPN 連線。

1. 根據來自用戶端組態的資訊，以及如何使用 LuCi 來使用 [OpenVPN 用戶端](https://openwrt.org/docs/guide-user/services/vpn/openvpn/client-luci)，設定 OpenVPN 用戶端。

1. 透過 SSH 連接到您的內部署網路，並更新 `/etc/resolv.conf` 檔案，方法為在 AWS 帳戶 (`10.100.0.145`) 中新增傳入解析程式的 IP 地址。

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 閘道測試 AWS PrivateLink 與 CUPS 端點的連線，請執行下列命令：

```
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 裝置。然後，您可以新增裝置並執行「聯結」**程序，然後您就可以開始傳送上行訊息。