

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 搭配 Amazon Kinesis Video WebRTC 使用 IPv6/雙堆疊端點
<a name="kvswebrtc-ipv6"></a>

您可以設定 Amazon Kinesis Video WebRTC 為控制平面和資料平面操作使用 IPv6。這可讓您的應用程式透過雙堆疊端點，使用 IPv6 地址與 Kinesis Video WebRTC 服務通訊。

**注意**  
IPv6 支援需要特定的 SDK 版本和組態設定。確保您的 Kinesis Video WebRTC SDK 和 Amazon Web Services SDK 版本支援 IPv6 雙堆疊端點。雙堆疊端點同時支援 IPv4 和 IPv6 流量，適用於某些區域中的某些 服務。

Amazon Kinesis Video WebRTC 透過雙堆疊端點支援主要和檢視器應用程式的 IPv6。您可以設定應用程式使用 IPv6/雙堆疊端點進行控制平面 API 呼叫和資料平面操作。

## 設定適用於 IPv6-Dual-Stack 端點的 Amazon Web Services SDK
<a name="kvswebrtc-ipv6-aws-sdk"></a>

如果您使用 Amazon Web Services SDK 在生產設定中呼叫 Kinesis Video WebRTC 控制平面 APIs，您可以透過設定雙堆疊端點來啟用 IPv6。Amazon Web Services SDK 提供多種標準化方法來啟用雙堆疊端點。

**重要**  
啟用雙堆疊端點時，軟體開發套件會嘗試使用雙堆疊端點來提出網路請求。如果服務或區域不存在雙堆疊端點，則請求會失敗。

### 使用環境變數
<a name="kvswebrtc-ipv6-environment-variables"></a>

設定下列環境變數以啟用 IPv6 雙堆疊端點：

```
export AWS_USE_DUALSTACK_ENDPOINT=true
```

### 使用 Amazon Web Services 組態檔案
<a name="kvswebrtc-ipv6-config-file"></a>

將下列設定新增至您的 Amazon Web Services 組態檔案 (\~/.aws/config)：

```
[default]
use_dualstack_endpoint = true
```

### 使用 JVM 系統屬性 （僅限 Java 和 Kotlin SDKs)
<a name="kvswebrtc-ipv6-jvm-properties"></a>

對於 Java 和 Kotlin 應用程式，設定下列 JVM 系統屬性：

```
-Daws.useDualstackEndpoint=true
```

或以程式設計方式在您的 Java 程式碼中：

```
System.setProperty("aws.useDualstackEndpoint", "true");
```

### 開發套件支援
<a name="kvswebrtc-ipv6-sdk-support"></a>

下列 Amazon Web Services SDKs支援雙堆疊端點組態：


| SDK | 支援 | 組態方法 | 
| --- | --- | --- | 
| AWS CLI v2 | 是 | 環境變數、組態檔案 | 
| 適用於 C\+\+ 的 SDK | 是 | 環境變數、組態檔案 | 
| 適用於 Go V2 的 SDK (1.x) | 是 | 環境變數、組態檔案 | 
| 適用於 Go 的 SDK 1.x (V1) | 是 | 環境變數、組態檔案 | 
| 適用於 Java 2.x 的 SDK | 是 | 環境變數、組態檔案、JVM 屬性 | 
| 適用於 Java 1.x 的 SDK | 否 | 不支援 | 
| 適用於 JavaScript 3.x 的 SDK | 是 | 環境變數、組態檔案 | 
| 適用於 JavaScript 2.x 的 SDK | 是 | 環境變數、組態檔案 | 
| SDK for Kotlin | 是 | 環境變數、組態檔案、JVM 屬性 | 
| 適用於 .NET 4.x 的 SDK | 是 | 環境變數、組態檔案 | 
| 適用於 .NET 3.x 的 SDK | 是 | 環境變數、組態檔案 | 
| 適用於 PHP 的 SDK 3.x | 是 | 環境變數、組態檔案 | 
| 適用於 Python 的 SDK (Boto3) | 是 | 環境變數、組態檔案 | 
| 適用於 Ruby 的 SDK 3.x | 是 | 環境變數、組態檔案 | 
| 適用於 Rust 的 SDK | 是 | 環境變數、組態檔案 | 
| 適用於 Swift 的 SDK | 是 | 環境變數、組態檔案 | 
| Tools for PowerShell V5 | 是 | 環境變數、組態檔案 | 
| Tools for PowerShell V4 | 是 | 環境變數、組態檔案 | 

設定雙堆疊端點之後，Amazon Web Services SDK 會在呼叫 Kinesis Video WebRTC 控制平面 APIs 時自動使用 IPv6 端點。

## 設定適用於 IPv6/雙堆疊端點的 Kinesis Video WebRTC 開發套件
<a name="kvswebrtc-ipv6-webRTC-C-sdk"></a>

Kinesis Video WebRTC SDK 為控制平面和資料平面操作提供雙堆疊組態選項。這些設定適用於 Amazon Web Services SDK 雙堆疊端點組態。

## 設定 WebRTC C 開發套件
<a name="kvswebrtc-ipv6-webRTC-C-SDK"></a>

若要使用雙堆疊 AWS KVS 端點並嘗試收集 IPv6 ICE 候選項目，請設定下列環境變數：

```
export KVS_DUALSTACK_ENDPOINTS=ON
```

在雙堆疊模式中，ICE 收集會嘗試包含 IPv6 候選項目，但相容性最終取決於本機網路組態和接收對等的功能。

若要停用雙堆疊模式，請取消設定環境變數：

```
unset KVS_DUALSTACK_ENDPOINTS
```

## 資料平面端點解析
<a name="kvswebrtc-ipv6-data-plane"></a>

對於資料平面操作，Kinesis Video WebRTC SDK 使用 GetSignalingChannelEndpoint API 擷取適當的 IPv6/雙堆疊資料平面端點。設定 IPv6/雙堆疊時，軟體開發套件會自動請求 IPv6/雙堆疊端點。

**重要**  
GetSignalingChannelEndpoint API 已更新以支援 IPv6 端點。請確定您使用的是支援此功能的相容 SDK 版本。

## 設定 IPv6/Dual-Stack AWS CLI 的
<a name="kvswebrtc-ipv6-aws-cli"></a>

如果您使用 AWS CLI 進行 Kinesis Video WebRTC 操作 （通常用於proof-of-concept工作），您可以透過設定雙堆疊端點來啟用 IPv6。

### 使用環境變數
<a name="kvswebrtc-ipv6-cli-environment"></a>

```
export AWS_USE_DUALSTACK_ENDPOINT=true
```

### 使用 Amazon Web Services 組態檔案
<a name="kvswebrtc-ipv6-cli-config"></a>

將下列項目新增至您的 AWS CLI 組態檔案 (\~/.aws/config)：

```
[default]
use_dualstack_endpoint = true
```

設定雙堆疊端點之後， AWS CLI 會將 IPv6 雙堆疊端點用於所有 Amazon Web Services 呼叫，包括 Kinesis Video WebRTC 操作。

## 考量事項
<a name="kvswebrtc-ipv6-considerations"></a>

### IoT 登入資料供應商
<a name="kvswebrtc-ipv6-iot-credentials"></a>

如果您使用 IoT 登入資料進行身分驗證：
+ IoT 登入資料端點支援 IPv6
+ 使用上述標準 Amazon Web Services SDK 組態方法設定雙堆疊端點
+ IoT 登入資料流程與 Kinesis Video WebRTC 特定的 IPv6 組態不同

### 網路需求
<a name="kvswebrtc-ipv6-network-requirements"></a>
+ 確保您的網路基礎設施支援 IPv6 連線
+ 確認您的安全群組和網路 ACLs IPv6 流量
+ 從部署環境測試 Amazon Web Services IPv6 端點的連線
+ 某些 區域中的某些服務可使用雙堆疊端點 - 驗證目標區域的可用性

### 開發套件相容性
<a name="kvswebrtc-ipv6-sdk-compatibility"></a>
+ 確保您使用的是支援的 Amazon Web Services SDK 版本 （請參閱相容性資料表）
+ 適用於 Java 的 Amazon Web Services 開發套件 1.x 不支援雙堆疊端點組態
+ 對於適用於 Go 1.x (V1) 的 SDK，您必須啟用從組態檔案載入，才能使用共用的組態檔案設定

### 測試和驗證
<a name="kvswebrtc-ipv6-testing"></a>

將IPv6-enabled Kinesis Video WebRTC 應用程式部署到生產環境之前：
+ 測試控制平面操作 （頻道建立、刪除、列出）
+ 驗證資料平面操作 (STUN、TURN 和 WebRTC 訊號）
+ 驗證成功建立peer-to-peer串流工作階段
+ 驗證網路環境中的效能和連線
+ 執行 Canary 測試以確保一致的 IPv6 功能
+ 雙堆疊端點無法使用時的測試容錯移轉行為

## 受 IPv6 升級影響的客戶
<a name="kvswebrtc-ipv6-customers-impacted"></a>

當您為 Amazon Kinesis Video WebRTC 啟用 IPv6 時，可能需要更新現有組態和政策以確保持續功能。本節概述轉換到IPv6-enabled的端點時需要注意的關鍵區域。

### IAM 政策和 IP 地址篩選
<a name="kvswebrtc-ipv6-iam-policies"></a>

如果您在 IAM 使用者政策、角色政策或資源型政策中使用來源 IP 地址篩選，則需要更新這些政策以包含 IPv6 地址範圍。

**重要**  
在 IpAddress 或 NotIpAddress 條件中使用 IPv4 CIDR 區塊的現有 IAM 政策不會自動使用 IPv6 地址。您必須明確新增 IPv6 範圍以維護存取控制。

IPv6 的 IAM 政策更新範例：

```
{
  "Version": "2012-10-17"		 	 	 ,
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "kinesisvideo:*",
      "Resource": "*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "192.0.2.0/24",
            "203.0.113.0/24",
            "2001:db8::/32"
          ]
        }
      }
    }
  ]
}
```

IAM 政策更新的重要考量事項：
+ 新增 IPv6 CIDR 區塊與現有的 IPv4 範圍
+ 使用 IPv4 和 IPv6 地址的 aws：SourceIp 條件索引鍵
+ 在非生產環境中測試政策再部署
+ 考慮使用 aws：RequestedRegion 作為增強安全性的額外條件

### 網路安全群組和存取控制清單
<a name="kvswebrtc-ipv6-network-security"></a>

如果您在 Amazon EC2 執行個體或其他 Amazon Web Services 服務上執行 Kinesis Video WebRTC 應用程式，則需要更新您的安全群組和網路 ACLs以允許 IPv6 流量。
+ **安全群組** – 新增 IPv6 CIDR 區塊的傳入和傳出規則 （所有 IPv6 流量或特定 IPv6 範圍：：/0)
+ **網路 ACLs** – 更新子網路層級網路 ACLs，以允許必要連接埠上的 IPv6 流量
+ **路由表** – 確保您的 VPC 路由表包含 IPv6 流量到達網際網路閘道或 NAT 閘道的路由

### 日誌記錄和監控
<a name="kvswebrtc-ipv6-logging-monitoring"></a>

IPv6 地址的格式與 IPv4 地址不同，這可能會影響您的記錄、監控和分析系統。

#### AWS CloudTrail 日誌
<a name="kvswebrtc-ipv6-cloudtrail"></a>

AWS CloudTrail 當透過 IPv6 提出請求時， 日誌會在 sourceIPAddress 欄位中包含 IPv6 地址。更新您的日誌剖析工具和指令碼，以處理 IPv6 地址格式。

 AWS CloudTrail 日誌中 IPv6 地址的範例：

```
{
  "sourceIPAddress": "2001:db8::1",
  "eventName": "CreateSignalingChannel",
  "eventSource": "kinesisvideo.amazonaws.com"
}
```

#### 應用程式記錄
<a name="kvswebrtc-ipv6-application-logs"></a>

如果您的應用程式記錄用戶端 IP 地址或執行 IP 型分析，請確定您的記錄基礎設施可以處理 IPv6 地址：
+ 更新日誌剖析規則運算式以符合 IPv6 格式
+ 如果您使用固定長度欄位存放 IP 地址，請修改資料庫結構描述
+ 更新分析查詢和儀表板以使用 IPv6 地址
+ 考慮使用 IP 地址標準化程式庫進行一致處理

#### 監控和提醒
<a name="kvswebrtc-ipv6-monitoring-alerting"></a>

更新您的監控和提醒系統，以考量 IPv6 流量：
+ 依 IP 地址篩選的 Amazon CloudWatch 指標和警示
+ 追蹤 IP 模式的自訂指標
+ 分析流量模式的安全性監控工具
+ 將 IP 地址映射至 位置的地理位置服務

### 第三方整合
<a name="kvswebrtc-ipv6-third-party"></a>

檢閱和更新與 Kinesis Video WebRTC 應用程式整合的第三方服務和工具：
+ **內容交付網路 CDNs)** – 如果您使用 CDNs 組態支援 IPv6 
+ **負載平衡器** – 設定 Application Load Balancer 或 Network Load Balancer 來處理 IPv6 流量
+ **DNS 服務** – 更新 DNS 記錄以包含 IPv6 地址的 AAAA 記錄
+ **防火牆和安全設備** – 設定網路安全設備以允許 IPv6 流量
+ **監控工具** – 驗證第三方監控和分析工具是否支援 IPv6 地址格式

### 應用程式程式碼更新
<a name="kvswebrtc-ipv6-application-code"></a>

檢閱您的應用程式程式碼，了解可能需要更新的 IPv4-specific假設：
+ **IP 地址驗證** – 更新輸入驗證以接受 IPv6 地址格式
+ **資料庫結構描述** – 確保 IP 地址欄位可以存放 IPv6 地址 （通常需要較大的欄位大小）
+ **組態檔案** – 更新任何硬式編碼 IPv4 地址或 CIDR 區塊
+ **用戶端程式庫** – 驗證 HTTP 用戶端和網路程式庫支援 IPv6
+ **錯誤處理** – 更新錯誤處理以考量 IPv6-specific網路錯誤

### 測試和驗證
<a name="kvswebrtc-ipv6-testing-validation"></a>

在生產環境中啟用 IPv6 之前，請徹底測試您的應用程式和基礎設施：
+ **連線測試** – 驗證所有元件都可以透過 IPv6 進行通訊
+ **效能測試** – 比較 IPv6 和 IPv4 效能以識別任何問題
+ **安全測試** – 驗證安全控制是否與 IPv6 流量正常運作
+ **容錯移轉測試** – 無法使用 IPv6 連線時的測試行為
+ **日誌分析** – 驗證日誌記錄和監控系統是否正確處理 IPv6 地址
+ **整合測試** – 測試所有啟用 IPv6 的第三方整合

### 遷移策略
<a name="kvswebrtc-ipv6-migration-strategy"></a>

考慮實作 IPv6 採用的分階段方法：

1. **評估階段** – 清查所有系統並識別 IPv6 準備程度

1. **準備階段** – 更新政策、安全群組和應用程式碼

1. **測試階段** – 在開發和預備環境中啟用 IPv6 

1. **試驗階段** – 為生產流量的子集啟用 IPv6 

1. **完整部署** – 逐漸增加 IPv6 流量，直到完全部署為止

1. **監控階段** – 持續監控問題並最佳化效能

## 疑難排解
<a name="kvswebrtc-ipv6-troubleshooting"></a>

### 常見問題
<a name="kvswebrtc-ipv6-common-issues"></a>
+ **連線失敗** – 驗證 IPv6 網路連線和 DNS 解析
+ **SDK 錯誤** – 確保您使用的是支援雙堆疊端點的相容 SDK 版本
+ **身分驗證問題** – 確認 IAM 政策和登入資料可與 IPv6 端點搭配使用
+ **端點無法使用** – 如果服務或區域不存在雙堆疊端點，則請求會失敗

### 驗證步驟
<a name="kvswebrtc-ipv6-verification"></a>
+ 檢查您的組態檔案中是否已設定 AWS\_USE\_DUALSTACK\_ENDPOINT=true 或使用\_dualstack\_endpoint = true
+ 確認 Kinesis Video WebRTC SDK IPv6 組態旗標已正確設定
+ 測試 Amazon Web Services IPv6 端點的網路連線能力
+ 檢閱應用程式日誌是否有 IPv6-specific錯誤訊息
+ 確認您的區域支援 Kinesis Video WebRTC 的雙堆疊端點

### 組態驗證
<a name="kvswebrtc-ipv6-config-validation"></a>

您可以檢查以下項目來驗證雙堆疊端點組態：
+ **環境變數：**回應 $AWS\_USE\_DUALSTACK\_ENDPOINT
+ **Amazon Web Services 組態檔案：**cat \~/.aws/config \| grep use\_dualstack\_endpoint
+ **JVM 屬性 (Java)：**檢查應用程式日誌中的系統屬性

如需其他支援和故障診斷，請參閱 AWS 文件或聯絡人 AWS。