

# 使用 IPAM 将您自己的 IP 引入 CloudFront（支持 IPv4 和 IPv6）
<a name="tutorials-byoip-cloudfront"></a>

借助使用全局服务的 IPAM BYOIP，您可以将自己的 IPv4 和 IPv6 地址用于 CloudFront 等 AWS 全局服务。与区域 BYOIP 不同，您的 IP 地址将通过任播路由从多个边缘站点同时公布。

本教程将讲述以下内容：
+ 为 IPv4（/24）和/或 IPv6（/48）地址范围创建全局 IPAM 池
+ 使用您自己的 IP 地址预置任播静态 IP 列表
+ 通过 CloudFront 边缘站点在全球范围内传播您的 CIDR
+ 分别使用单独的 IPv4 和 IPv6 IPAM 池的双堆栈配置

## 为什么要使用此功能？
<a name="why-use-this-feature"></a>
+ **维护 IP 允许列表**：使用现有批准的 IP 地址，而无需更新防火墙配置
+ **简化迁移**：无需更改 IP 基础设施即可从其他 CDN 迁移
+ **一致的品牌**：在迁移到 AWS 时保留现有的 IP 地址空间
+ **IPv6 就绪性**：支持 IPv4 和 IPv6 并行的现代双堆栈架构

## 此功能的使用对象
<a name="who-should-use-this-feature"></a>

需要使用自己的 IP 地址进行全球内容分发的组织：
+ 具有 IP 允许列表要求的大型企业
+ 使用现有 IP 地址从其他 CDN 迁移的公司
+ 具有严格安全策略且要求特定 IP 范围的组织
+ 需要双堆栈（IPv4/IPv6）配置以实现全球覆盖的企业

## 此功能的使用场景
<a name="when-to-use-this-feature"></a>

适用于全局服务的 BYOIP 适合以下使用场景：
+ 维护合作伙伴/客户的现有 IP 允许列表
+ 使用您的 IP 地址从其他 CDN 迁移
+ 满足特定 IP 范围的合规性要求
+ 部署同时支持 IPv4 和 IPv6 客户端的双堆栈架构

**注意**  
需要 /24 IPv4 CIDR 数据块。双堆栈（IPv4 和 IPv6）需要 /24 IPv4 和 /48 IPv6 CIDR 数据块。目前仅适用于 CloudFront。

## 先决条件
<a name="prerequisites"></a>

在开始之前，请完成以下步骤：
+ **IPAM 设置**：[将 IPAM 与 AWS Organization 中的账户集成](enable-integ-ipam.md)和[创建 IPAM](create-ipam.md)
+ **域验证**：[验证域控制权](tutorials-byoip-ipam-domain-verification-methods.md)
+ **创建顶层池**：按照[将您自己的 IPv4 CIDR 引入 IPAM](tutorials-byoip-ipam-console-ipv4.md) 和/或[将您自己的 IPv6 CIDR 引入 IPAM](tutorials-byoip-ipam-console-ipv6.md) 中的第 1-2 步进行操作
+ **ROA（路由源授权）**：如果部署双堆栈，请确保同时为 IPv4（/24）和 IPv6（/48）前缀配置 ROA

## 全局服务配置步骤
<a name="global-service-configuration-steps"></a>

以下步骤不同于标准区域 BYOIP 流程，并且将建立用于全球服务的模式：对于双堆栈部署，您需要为 IPv4 和 IPv6 创建单独的池，然后将两者都预置到 CloudFront。

### 第 1 步：为任播服务创建全局池
<a name="step-1-create-global-pool"></a>

为任播服务创建一个全局池，而不是区域池：

**控制台**  
使用控制台创建全局池：

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择**池**

1. 选择**创建池**

1. **源**：选择您的顶级 BYOIP 池

1. **区域设置**：选择**全局**

1. **服务**：选择**全局服务**（将在选择“全局”后显示）

1. **公有 IP 源**：选择 **BYOIP**

1. **要预置的 CIDR**：指定您的 /24 CIDR 范围（对于 IPv4）或 /48 CIDR 范围（对于 IPv6）

1. 选择**创建池**

**CLI**  
对于 IPv4：

```
aws ec2 create-ipam-pool \
  --ipam-scope-id scope-id \
  --locale None \
  --address-family ipv4 \
  --source-ipam-pool-id top-level-pool-id

aws ec2 provision-ipam-pool-cidr \
  --ipam-pool-id global-pool-id \
  --cidr your-ipv4-/24
```

对于 IPv6：

```
aws ec2 create-ipam-pool \
  --ipam-scope-id scope-id \
  --locale None \
  --address-family ipv6 \
  --source-ipam-pool-id top-level-pool-id

aws ec2 provision-ipam-pool-cidr \
  --ipam-pool-id global-pool-id \
  --cidr your-ipv6-/48
```

**重要**  
对于 IPv4：您必须将完整的 /24 数据块分配给该池。您可以在此数据块中预调配更具体的范围，以满足不同用途的需要。
对于 IPv6：您必须将完整的 /48 数据块分配给该池。您可以在此数据块中预调配更具体的范围，以满足不同用途的需要。

### 第 2 步：创建特定于服务的资源
<a name="step-2-create-service-specific-resources"></a>

对于 CloudFront，创建一个将使用您的 IPAM 池的任播 IP 列表。相关详细说明，请参阅 *Amazon CloudFront 开发人员指南*中的[使用 IPAM 将您自己的 IP 引入 CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/bring-your-own-ip-address-using-ipam.html)。

**IPAM 集成的关键参数：**
+ **IP 地址类型**：请选择 **BYOIP**
+ **IPAM 池**：请选择在第 1 步创建的全局池（IPv4 或 IPv6）
+ **IP 数量**：请输入 **3**（对于 CloudFront 为必需）

### 第 3 步：关联到服务资源
<a name="step-3-associate-with-service-resources"></a>

将您的任播静态 IP 列表关联到某个 CloudFront 分配。相关详细说明，请参阅 *Amazon CloudFront 开发人员指南*中的[使用 IPAM 将您自己的 IP 引入 CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/bring-your-own-ip-address-using-ipam.html)。

**关键配置：**
+ 在分配设置中，请选择第 2 步中的任播 IP 列表

### 步骤 4：准备迁移
<a name="step-4-prepare-for-migration"></a>
+ **DNS TTL 下限**：请将记录的 DNS TTL 设置为 60 秒或更短
+ **传播等待**：新 TTL 在互联网上生效所需的时间

### 步骤 5：全球公布 CIDR
<a name="step-5-advertise-cidr-globally"></a>

使用 IPAM 全局公开命令：

**控制台**  
使用控制台公开 CIDR：

1. 在 [https://console.aws.amazon.com/ipam/](https://console.aws.amazon.com/ipam/) 中打开 IPAM 控制台。

1. 在导航窗格中，选择**池**

1. 选择您的全局池

1. 选择 **CIDR** 选项卡。

1. 选择您的 CIDR，然后选择**操作** > **公开 CIDR**

1. 确认公开

**CLI**  
对于 IPv4：

```
aws ec2 advertise-byoip-cidr \
  --cidr your-ipv4-/24
```

对于 IPv6：

```
aws ec2 advertise-byoip-cidr \
  --cidr your-ipv6-/48
```

**重要**  
在运行此命令之前，请撤回来自之前提供商的公开消息
将 DNS 记录更新为指向 CloudFront 以完成迁移（IPv4 的 A 记录，IPv6 的 AAAA 记录）

## 清理
<a name="cleanup"></a>

清理在本教程中创建的资源：
+ **删除 CloudFront 资源**：按照 *Amazon CloudFront 开发人员指南*中的[使用 IPAM 将您自己的 IP 引入 CloudFront](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/bring-your-own-ip-address-using-ipam.html) 中的清理说明进行操作。
+ **撤回 CIDR 并删除 IPAM 池**：按照[步骤 8：清除](tutorials-byoip-ipam-console-ipv4.md#tutorials-byoip-ipam-ipv4-console-cleanup)中的标准清理流程进行操作

**重要**  
请先删除 CloudFront 资源，然后再清理 IPAM，以避免造成服务中断。