

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

# 次要網路
<a name="secondary-networks"></a>

次要網路是專用於特殊聯網使用案例的虛擬網路。這些網路在邏輯上隔離在 AWS 雲端的分割區內。您可以建立資源，例如次要網路中的次要子網路。次要網路與 Amazon VPCs 緊密結合，因此特定執行個體會進行多重主目錄，並同時在 VPC 和次要網路中啟動。

次要網路目前適用於特定執行個體類型，以及透過具有長期承諾的容量保留。如果您認為次要網路可能對工作負載有益，請聯絡您的客戶團隊以取得更多資訊。

**Topics**
+ [什麼是次要網路？](#secondary-networks-overview)
+ [重要概念](#secondary-networks-concepts)
+ [Architecture](#secondary-networks-architecture)
+ [其他考量](#secondary-networks-considerations)
+ [開始使用](#secondary-networks-getting-started)
+ [管理次要網路資源](#secondary-networks-managing-resources)
+ [網路設計最佳實務](#secondary-networks-best-practices)
+ [疑難排解](#secondary-networks-troubleshooting)
+ [配額和限制](#secondary-networks-quotas-limits)

## 什麼是次要網路？
<a name="secondary-networks-overview"></a>

次要網路提供邏輯、隔離的網路，可搭配 VPC 網路使用，讓執行個體多主目錄進入兩個獨立網路。次要網路的優點包括：
+ 適用於特殊使用案例和通訊協定的高效能聯網，例如 ML 工作負載的東西連線
+ 多租戶支援邏輯隔離
+ 執行個體與 VPCs AWS 和服務無縫整合

## 重要概念
<a name="secondary-networks-concepts"></a>

次要網路  
區域聯網建構，提供具有 IPv4 CIDR 區塊的邏輯第 3 層網路 （從 /28 到 /12)。次要網路的運作獨立於實體分割網路基礎設施上的 VPCs。

次要子網路  
次要網路中的可用區域特定建構，類似於 VPC 子網路。次要子網路支援從 /28 到 /12 的 CIDR 區塊。

次要界面  
連接到次要網路卡的網路介面，在次要子網路中提供東西連線。這些界面在實體和邏輯上都與彈性網路界面 (ENIs) 分開。

## Architecture
<a name="secondary-networks-architecture"></a>

支援次要網路的 EC2 執行個體是多重主目錄，這表示它們可以同時在 VPC 和次要網路中通訊：
+ **VPC**：為 AWS 服務、儲存、資料庫、聯網服務和網際網路提供南北 TCP/IP 連線
+ **次要網路**：在支援的專用執行個體之間提供東西端連線

## 其他考量
<a name="secondary-networks-considerations"></a>
+ 次要介面是透過 RunInstances 管理，無法獨立建立或刪除。
+ 執行個體啟動後，就無法連接/刪除次要介面。
+ 啟動後就無法變更次要介面 IP 地址。
+ 次要網路不支援 VPC 功能，例如安全群組、NACLs、流程日誌。

## 開始使用
<a name="secondary-networks-getting-started"></a>

### 先決條件
<a name="secondary-networks-prerequisites"></a>

使用次要網路啟動執行個體之前，請確定您也已在目標區域中設定 VPC，並在 EC2 容量的目標可用區域中設定子網路。

### 步驟 1：建立次要網路
<a name="secondary-networks-create-network"></a>

在與 VPC 相同的區域中建立次要網路。這是區域資源，可為 RDMA 流量提供邏輯隔離。

```
aws ec2 create-secondary-network \
  --network-type rdma \
  --ipv4-cidr-block 172.31.0.0/16 \
  --region us-east-2
```

**參數：**
+ `--network-type`：網路類型 （目前僅支援 rdma)
+ `--ipv4-cidr-block`：介於 /28 和 /12 之間的 IPv4 CIDR 區塊
+ `--region`： AWS 區域 (US-East-2)

**注意**  
**最佳實務**：選擇與您的 VPC CIDR 不重疊的 CIDR 區塊，以簡化執行個體層級的路由。

### 步驟 2：建立次要子網路
<a name="secondary-networks-create-subnet"></a>

在與 VPC 子網路相同的可用區域中建立次要子網路。這是 AZ 特定的資源。

```
aws ec2 create-secondary-subnet \
  --secondary-network-id sn-1234567890abcdef0 \
  --ipv4-cidr-block 172.31.24.0/24 \
  --availability-zone us-east-2a
```

**注意**  
**IP 地址保留**：如同 VPC 子網路，Amazon 會保留每個次要子網路中的前 4 個 IP 地址和最後一個 IP 地址以供內部使用。

### 步驟 3：啟動執行個體
<a name="secondary-networks-launch-instance"></a>

在 VPC 子網路和次要子網路中啟動執行個體。執行個體將具備與兩個網路連線的多重主目錄。

```
aws ec2 run-instances \
  --image-id ami-12345678 \
  --count 1 \
  --instance-type <instance> \
  --key-name MyKeyPair \
  --instance-market-options '{"MarketType": "capacity-block"}' \
  --capacity-reservation-specification '{"CapacityReservationTarget": \
  {"CapacityReservationId": "cr-1234567890abcdef0"}}' \
  --network-interfaces \ 
    "NetworkCardIndex=0,DeviceIndex=0,Groups=sg-12345678,\
    SubnetId=subnet-0987654321fedcba0,InterfaceType=interface" \
  --secondary-interfaces \
    "NetworkCardIndex=1,DeviceIndex=0,SecondarySubnetId=ss-98765421yxz,\
    InterfaceType=secondary,PrivateIpAddressCount=1,DeleteOnTermination=true", \
    "NetworkCardIndex=2,DeviceIndex=0,SecondarySubnetId=ss-98765421yxz,\
    InterfaceType=secondary,PrivateIpAddressCount=1,DeleteOnTermination=true", \
    "NetworkCardIndex=3,DeviceIndex=0,SecondarySubnetId=ss-98765421yxz,\
    InterfaceType=secondary,PrivateIpAddressCount=1,DeleteOnTermination=true", \
    "NetworkCardIndex=4,DeviceIndex=0,SecondarySubnetId=ss-98765421yxz,\
    InterfaceType=secondary,PrivateIpAddressCount=1,DeleteOnTermination=true", \
    "NetworkCardIndex=5,DeviceIndex=0,SecondarySubnetId=ss-98765421yxz,\
    InterfaceType=secondary,PrivateIpAddressCount=1,DeleteOnTermination=true", \
    "NetworkCardIndex=6,DeviceIndex=0,SecondarySubnetId=ss-98765421yxz,\
    InterfaceType=secondary,PrivateIpAddressCount=1,DeleteOnTermination=true", \
    "NetworkCardIndex=7,DeviceIndex=0,SecondarySubnetId=ss-98765421yxz,\
    InterfaceType=secondary,PrivateIpAddressCount=1,DeleteOnTermination=true", \
    "NetworkCardIndex=8,DeviceIndex=0,SecondarySubnetId=ss-98765421yxz,\
    InterfaceType=secondary,PrivateIpAddressCount=1,DeleteOnTermination=true"
```

**金鑰參數：**
+ `--network-interfaces`：指定 VPC 連線的主要 Nitro ENI （網路卡索引 0)
+ `--secondary-interfaces`：指定次要子網路中東西連線的 8 個次要介面 （網路卡索引 1-8)
+ `InterfaceType=secondary`：表示次要界面

## 管理次要網路資源
<a name="secondary-networks-managing-resources"></a>

### 描述次要網路
<a name="secondary-networks-describe-networks"></a>

檢視次要網路的詳細資訊：

```
aws ec2 describe-secondary-networks \
  --secondary-network-id sn-1234567890abcdef0
```

### 描述次要子網路
<a name="secondary-networks-describe-subnets"></a>

檢視次要子網路的詳細資訊：

```
aws ec2 describe-secondary-subnets \
  --secondary-subnet-id ss-98765421yxz
```

### 描述次要界面
<a name="secondary-networks-describe-interfaces"></a>

檢視連接至執行個體的次要網路界面詳細資訊：

```
aws ec2 describe-secondary-interfaces \
  --filters "Name=attachment.instance-id,Values=i-1234567890abcdef0"
```

### 刪除資源
<a name="secondary-networks-deleting-resources"></a>

刪除次要子網路：

```
aws ec2 delete-secondary-subnet \
  --secondary-subnet-id ss-98765421yxz
```

刪除次要網路：

```
aws ec2 delete-secondary-network \
  --secondary-network-id sn-1234567890abcdef0
```

**重要**  
您必須先終止所有執行個體並刪除所有次要子網路，才能刪除次要網路。

## 網路設計最佳實務
<a name="secondary-networks-best-practices"></a>

### CIDR 規劃
<a name="secondary-networks-cidr-planning"></a>

**避免重疊 CIDRs**：雖然次要網路與 VPCs 實體隔離，但使用非重疊 CIDR 區塊可簡化執行個體作業系統層級的路由組態。

**注意**  
Amazon 會為每個子網路保留 5 個 IP 地址。

### 流量隔離
<a name="secondary-networks-traffic-segregation"></a>

**依次要網路隔離**：為不同的專案、團隊或安全界限建立個別的次要網路。次要網路提供執行個體之間的邏輯隔離。執行個體無法跨不同的次要網路進行通訊。

**使用多個子網路**：在次要網路中，使用多個次要子網路依 GPU 索引、可用區域或工作負載類型分割流量。例如，常見的架構模式是部署具有 4 或 8 個次要子網路的單一次要網路，其中每個次要子網路都與一組常見索引的 GPUs 對齊。

## 疑難排解
<a name="secondary-networks-troubleshooting"></a>

### 執行個體啟動失敗
<a name="secondary-networks-launch-failures"></a>

**問題**：執行個體無法使用次要網路介面啟動。

**解決方案：**
+ 確認您的 AMI 包含適當的驅動程式支援
+ 確保您的次要子網路具有足夠的可用 IP 地址
+ 確認您的容量保留處於「作用中」狀態
+ 檢查您的次要子網路是否與 VPC 子網路位於相同的可用區域

### 連線問題
<a name="secondary-networks-connectivity-issues"></a>

**問題**：無法在執行個體之間建立 RDMA 連線。

**解決方案：**
+ 確認所有執行個體都位於相同的次要網路和次要子網路中
+ 檢查次要介面驅動程式是否已正確載入執行個體
+ 確保您的應用程式已繫結至正確的網路介面
+ 可透過直接路由存取相同次要子網路內的執行個體。跨子網路通訊可透過 DHCP 提供的靜態路由進行。

### API 錯誤
<a name="secondary-networks-api-errors"></a>

**問題**：次要網路和次要子網路操作的 API 呼叫失敗。

**解決方案：**
+ 驗證 ec2：CreateSecondaryNetwork、ec2：CreateSecondarySubnet 等的 IAM 許可。
+ 檢查 CIDR 區塊是否在支援的範圍內 (/28 到 /12)
+ 確認您使用的是正確的區域和可用區域

## 配額和限制
<a name="secondary-networks-quotas-limits"></a>

若要請求提高配額，請使用 AWS Service Quotas或聯絡 AWS Support。


**次要網路配額和限制**  

| 資源 | 限制 | 可調整 | 
| --- | --- | --- | 
| 每個區域的次要網路 | 5 | 是 | 
| 每個次要網路的次要子網路 | 200 | 是 | 
| CIDR 區塊大小 | /28 到 /12 | 否 | 