使用 Amazon 管理控制台和 Amazon CLI 自带 IPv4 CIDR 到 IPAM 中 - Amazon Virtual Private Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

使用 Amazon 管理控制台和 Amazon CLI 自带 IPv4 CIDR 到 IPAM 中

按照以下步骤将 IPv4 CIDR 带入 IPAM 中,然后使用 Amazon 管理控制台和 Amazon CLI 分配弹性 IP 地址 (EIP)。

重要
  • 本教程假定您已完成以下部分中的步骤:

  • 本教程的每个步骤都必须由以下三个 Amazon Organizations 账户之一完成:

    • 管理账户。

    • 将 IPAM 与 Amazon Organizations 集成 中配置为 IPAM 管理员的成员账户。在本教程中,此账户将被称为 IPAM 账户。

    • 将从 IPAM 池中分配 CIDR 的企业中的成员账户。在本教程中,此账户将被称为成员账户。

步骤 1:创建 Amazon CLI 命名配置文件

要以单个 Amazon 用户的身份完成本教程,可以使用 Amazon CLI 命名配置文件从一个 Amazon 账户切换到另一个。命名配置文件是 IAM 访问密钥 ID 和秘密访问密钥的集合,存储在本地,然后在使用 Amazon CLI 时使用 --profile 选项。有关如何为 Amazon 账户创建或检索 IAM 访问密钥的更多信息,请参阅 Amazon Identity and Access Management 用户指南中的管理 IAM 用户的访问密钥

完成 Amazon 命令行界面用户指南创建命名配置文件的步骤,为本教程中使用的三个 Amazon 账户分别创建命名配置文件:

  • 为 Amazon Organizations 管理账户创建名为 management-account 的配置文件。

  • 为配置为 IPAM 管理员的 Amazon Organizations 成员账户创建名为 ipam-account 的配置文件。

  • 为将从 IPAM 池中分配 CIDR 的企业中的 Amazon Organizations 成员账户创建名为 member-account 的配置文件。

创建命名配置文件后,请返回本页面并转至下一步骤。在本教程的其余部分中,您将注意到示例 Amazon CLI 命令会将 --profile 选项与其中一个命名配置文件一起使用,以指示哪个账户必须运行该命令。

步骤 2:创建顶级 IPAM 池

完成本部分中的步骤创建顶级 IPAM 池。

此步骤必须由 IPAM 账户完成。

要创建池

  1. https://console.aws.amazon.com/ipam/ 中打开 IPAM 控制台。

  2. 在导航窗格中,选择 Pools(池)。

  3. 默认情况下,创建池时,默认的私有范围被选中。选择公有范围。有关范围的更多信息,请参阅 IPAM 的工作原理

  4. 选择 Create pool

  5. (可选)添加池的 Name tag(名称标签)和池的 Description(描述)。

  6. Source pool(源池)下,选择 No source pool(无源池)。

  7. Address family(地址族)下,选择 IPv4

  8. Locale(区域设置)下,选择 None(无)。

    区域设置是您希望此 IPAM 池可用于分配的 Amazon 区域。例如,您只能从与 VPC 的区域共享区域设置的 IPAM 池中为 VPC 分配 CIDR。请注意,当您为池选择了区域设置后,无法对其进行修改。

    IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。由于我们将创建一个其中包含一个区域池的顶级 IPAM 池,并且我们将为区域池中的弹性 IP 地址分配空间,因此您将在区域池中设置区域设置,而不是在顶级池中。在后面的步骤中创建区域池时,您将区域设置添加到区域池中。

    注意

    如果您只创建单个池而不是其中包含区域池的顶级池,则需要为此池选择一个区域设置,以便该池可用于分配。

  9. CIDRs to provision(要预置的 CIDR)下,选择要为池预置的 CIDR。请注意,将 IPv4 CIDR 预置到顶级池中的资源池时,您可以预置的最低 IPv4 CIDR 为 /24;不允许使用更具体的 CIDR(例如 /25)。您必须在请求中包含 CIDR、BYOIP 消息和证书签名,以便我们验证您是否拥有公有空间。有关 BYOIP 先决条件的列表,包括如何获取此 BYOIP 消息和证书签名,请参阅 使用 Amazon 管理控制台和 Amazon CLI 自带公有 IPv4 CIDR 到 IPAM 中

  10. 不选中 Use this pool to allocate CIDRs to resources such as VPCs(使用此池将 CIDR 分配给 VPC 等资源)。

  11. (可选)为池选择 Tags(标签)。

  12. 选择 Create pool

在继续之前,请确保已预置此 CIDR。您可以在池详细信息页面的 CIDRs 选项卡中查看资源调配状态。请注意,预置 BYOIP CIDR 最多可能需要一周。

第 3 步 在顶级池中创建区域池

在顶级池中创建区域池。IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。在本部分中创建区域池时,您将区域设置添加到区域池中。Locale 必须是创建 IPAM 时配置的操作区域之一。

此步骤必须由 IPAM 账户完成。

要在顶级池中创建区域池

  1. https://console.aws.amazon.com/ipam/ 中打开 IPAM 控制台。

  2. 在导航窗格中,选择 Pools(池)。

  3. 默认情况下,创建池时,默认的私有范围被选中。如果您不想使用默认的私有范围,请从内容窗格顶部的下拉菜单中选择要使用的范围。有关范围的更多信息,请参阅 IPAM 的工作原理

  4. 选择 Create pool

  5. (可选)添加池的 Name tag(名称标签)和池的 Description(描述)。

  6. Source pool(源池)下,选择您在上一部分中创建的顶级池。

  7. Locale(区域设置)下,选择池的区域设置。在本教程中,我们将使用 us-east-2 作为区域池的区域设置。可用的选项来自您在创建 IPAM 时选择的运营区域。

    区域设置是您希望此 IPAM 池可用于分配的 Amazon 区域。例如,您只能从与 VPC 的区域共享区域设置的 IPAM 池中为 VPC 分配 CIDR。请注意,当您为池选择了区域设置后,无法对其进行修改。选择区域设置可确保池与从中分配的资源之间没有跨区域依赖关系。

  8. Service(服务)下,选择 EC2 Service (EIP/VPC)(EC2 服务 (EIP/VPC))。

  9. CIDRs to provision(要预置的 CIDR)下,选择要为池预置的 CIDR。请注意,将 CIDR 预置到顶级池中的资源池时,您可以预置的最低 IPv4 CIDR 为 /24;不允许使用更具体的 CIDR(例如 /25)。

  10. 选择 Use this pool to allocate CIDRs to resources such as VPCs(使用此池将 CIDR 分配给 VPC 等资源)。这里的分配规则选项与创建顶级池时的选项相同。请参阅 创建顶级池 以了解创建池时可用的选项。区域池的分配规则不是从顶级池继承来的。如果您不在此应用任何规则,则不会为池设置分配规则。

  11. 选择 Use this pool to allocate CIDRs to resources such as VPCs(使用此池将 CIDR 分配给 VPC 等资源),并为此池选择可选分配规则:

    • 自动导入发现的资源:如果 Locale(区域设置)被设置为 None(无),则此选项不可用。如果选中此选项,IPAM 将持续查找此池的 CIDR 范围内的资源,并将其作为分配自动导入到 IPAM 中。请注意以下几点:

      • 为了成功导入,不得将分配给这些资源的 CIDR 分配给其他资源。

      • 无论 IPAM 是否符合池的分配规则,都将导入 CIDR,因此可能会导入资源且随后会将资源标记为不合规。

      • 如果 IPAM 发现多个重叠的 CIDR,IPAM 将仅导入最大的 CIDR。

      • 如果 IPAM 发现多个具有匹配 CIDR 的 CIDR,IPAM 将只随机导入其中一个。

    • 最短网络掩码长度:此 IPAM 池中的 CIDR 分配所需的符合要求的最小网络掩码长度以及可以从池中分配的最大大小的 CIDR 块。最短网络掩码长度必须小于最大网络掩码长度。IPv4 地址的可能网络掩码长度为 0 - 32。IPv6 地址的可能网络掩码长度为 0 - 128

    • 默认网络掩码长度:添加到此池的分配的默认网络掩码长度。例如,如果为此池预置的 CIDR 是 10.0.0.0/8 并且您在此处输入 16,则此池中的任何新分配都将默认为网络掩码长度 /16

    • 最大网络掩码长度:此池中的 CIDR 分配所需的最大网络掩码长度。此值表示可以从池中分配的最小大小的 CIDR 块。

    • 标记要求:资源分配池中的空间所需的标签。如果资源在分配空间后更改了标签,或者如果池中的分配标记规则发生了更改,则该资源可能会被标记为不合规。

    • 区域设置:使用此池中的 CIDR 的资源所需的区域设置。自动导入的没有此区域设置的资源将被标记为不合规。不会自动导入到池中的资源将不允许从池中分配空间,除非它们位于此区域设置。

  12. (可选)为池选择 Tags(标签)。

  13. 配置完池后,选择 Create pool(创建池)。

在继续之前,请确保已预置此 CIDR。您可以在池详细信息页面的 CIDRs 选项卡中查看资源调配状态。

步骤 4:启用使用 Amazon RAM 与 Amazon Organizations 共享资源

您将使用 Amazon RAM 与希望从区域池中为弹性 IP 地址 (EIP) 分配 CIDR 的 Amazon Organizations 成员账户共享您的区域池。在此之前,您必须启用与 Amazon Organizations 的 RAM 集成。

使用管理账户完成 Amazon RAM 用户指南启用在 Amazon Organizations 内部资源共享中的步骤。如果要使用 Amazon CLI 启用资源共享,请使用 --profile management-account 选项。在 RAM 中启用资源共享后,转到本教程的下一步骤。

步骤 5:使用 Amazon RAM 与 Amazon Organizations 成员账户共享您的区域池

完成 使用 Amazon RAM 共享 IPAM 池 中的流程,并与 Amazon Organizations 成员账户共享区域池。

此步骤必须由 IPAM 账户完成。如果要使用 Amazon CLI 共享池,请使用 --profile ipam-account 选项。

重要

创建资源共享时,请确保:

  • 主体是将从池中为弹性 IP 地址分配 CIDR 的成员账户的账户 ID。

  • AWSRAMPermissionIpamPoolByoipCidrImport 权限分配给池。

步骤 6:创建公有 IPv4 池

创建公有 IPv4 池是将公有 IPv4 地址带入将通过 IPAM 管理的 Amazon 中的必要步骤。此步骤应该由预置弹性 IP 地址的成员账户完成。

此步骤必须由成员账户使用 Amazon CLI 完成。

重要

公有 IPv4 池和 IPAM 池由 Amazon 中的不同资源管理。公共 IPv4 池是单一账户资源,使您能够将公有 CIDR 转换为弹性 IP 地址。IPAM 池可用于将公有空间分配给公有 IPv4 池。

要使用 Amazon CLI 创建公有 IPv4 池

  • 请运行以下命令以预置 CIDR。运行本部分中的命令时,--region 的值必须与您在创建将用于 BYOIP CIDR 的池时选择的 Locale 选项匹配。

    aws ec2 create-public-ipv4-pool --region us-east-2 --profile member-account

    在输出中,您将看到公有 IPv4 池 ID。在下一步骤中,您需要用到此 ID。

    { "PoolId": "ipv4pool-ec2-09037ce61cf068f9a" }

步骤 7:将公有 IPv4 CIDR 预置到您的公有 IPv4 池

将公有 IPv4 CIDR 预置到您的公有 IPv4 池。--region 的值为必须与您在创建将用于 BYOIP CIDR 的池时选择的 Locale 值匹配。

此步骤必须由成员账户使用 Amazon CLI 完成。

要使用 Amazon CLI 创建公有 IPv4 池

  1. 请运行以下命令以预置 CIDR。

    aws ec2 provision-public-ipv4-pool-cidr --region us-east-2 --ipam-pool-id ipam-pool-04d8e2d9670eeab21 --pool-id ipv4pool-ec2-09037ce61cf068f9a --netmask-length 24 --profile member-account

    在输出中,您将看到预置的 CIDR。

    { "PoolId": "ipv4pool-ec2-09037ce61cf068f9a", "PoolAddressRange": { "FirstAddress": "130.137.245.0", "LastAddress": "130.137.245.255", "AddressCount": 256, "AvailableAddressCount": 256 } }
  2. 运行以下命令,以查看公有 IPv4 池中预置的 CIDR。

    aws ec2 describe-byoip-cidrs --region us-east-2 --max-results 10 --profile member-account

    在输出中,您将看到预置的 CIDR。默认情况下,CIDR 不会被传播,这意味着它不能通过互联网公开访问。在本教程的最后一步中,您将有机会将此 CIDR 设置为进行传播。

    { "ByoipCidrs": [ { "Cidr": "130.137.245.0/24", "StatusMessage": "Cidr successfully provisioned", "State": "provisioned" } ] }

创建公有 IPv4 池后,要查看在 IPAM 区域池中分配的公有 IPv4 池,请打开 IPAM 控制台,并在 Allocations(分配)或 Resources(资源)下查看区域池中的分配。

步骤 8:从公有 IPv4 池创建弹性 IP 地址

完成适用于 Linux 实例的 Amazon EC2 用户指南分配弹性 IP 地址的步骤,从公有 IPv4 池创建弹性 IP 地址 (EIP)。在 Amazon 管理控制台中打开 EC2 时,分配 EIP 的 Amazon 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 Locale 选项匹配。

此步骤必须由成员账户完成。如果要使用 Amazon CLI,请使用 --profile member-account 选项。

步骤 9:将弹性 IP 地址与 EC2 实例相关联

完成适用于 Linux 实例的 Amazon EC2 用户指南将弹性 IP 地址与实例或网络接口相关联的步骤,以将 EIP 与 EC2 实例相关联。在 Amazon 管理控制台中打开 EC2 时,与 EIP 相关联的 Amazon 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 Locale 选项匹配。在本教程中,该池就是区域池。

此步骤必须由成员账户完成。如果要使用 Amazon CLI,请使用 --profile member-account 选项。

步骤 10:传播 CIDR

本部分中的步骤必须由 IPAM 账户完成。将弹性 IP 地址 (EIP) 与实例或 Elastic Load Balancer 关联后,您就可以开始传播您带到处于已配置了 EC2 Service (EIP/VPC)(EC2 服务 (EIP/VPC))的池中的 Amazon 的 CIDR。在本教程中,这就是您的区域池。默认情况下,CIDR 不会被传播,这意味着它不能通过互联网公开访问。

此步骤必须由 IPAM 账户完成。

要传播 CIDR

  1. https://console.aws.amazon.com/ipam/ 中打开 IPAM 控制台。

  2. 在导航窗格中,选择 Pools(池)。

  3. 默认情况下,创建池时,默认的私有范围被选中。选择公有范围。有关范围的更多信息,请参阅 IPAM 的工作原理

  4. 选择您在本教程中创建的区域池。

  5. 选择 CIDRs 选项卡。

  6. 选择 BYOIP CIDR,然后选择 Actions(操作)> Advertise(传播)。

  7. 选择 Advertise CIDR(传播 CIDR)。

此时将传播 BYOIP CIDR,而且 Advertising(传播)栏中的值将从 Withdrawn(已撤回)变为 Advertised(已传播)。

步骤 11:清除

按照本部分中的步骤清除您在本教程中预置和创建的资源。

步骤 1:从传播中撤回 CIDR

此步骤必须由 IPAM 账户完成。

  1. https://console.aws.amazon.com/ipam/ 中打开 IPAM 控制台。

  2. 在导航窗格中,选择 Pools(池)。

  3. 默认情况下,创建池时,默认的私有范围被选中。选择公有范围。

  4. 选择您在本教程中创建的区域池。

  5. 选择 CIDRs 选项卡。

  6. 选择 BYOIP CIDR,然后选择 Actions(操作)> Withdraw from advertising(撤回传播)。

  7. 选择 Withdraw CIDR(撤回 CIDR)。

此时将不再传播 BYOIP CIDR,Advertising(传播)栏中的值将从 Advertised(已传播)变为 Withdrawn(已撤回)。

步骤 2:解除弹性 IP 地址的关联

此步骤必须由成员账户完成。如果要使用 Amazon CLI,请使用 --profile member-account 选项。

  • 完成适用于 Linux 实例的 Amazon EC2 用户指南解除弹性 IP 地址的关联的步骤,以解除 EIP 的关联。在 Amazon 管理控制台中打开 EC2 时,解除 EIP 关联的 Amazon 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 Locale 选项匹配。在本教程中,该池就是区域池。

步骤 3:释放弹性 IP 地址

此步骤必须由成员账户完成。如果要使用 Amazon CLI,请使用 --profile member-account 选项。

  • 完成适用于 Linux 实例的 Amazon EC2 用户指南释放弹性 IP 地址的步骤,从公有 IPv4 池释放弹性 IP 地址 (EIP)。在 Amazon 管理控制台中打开 EC2 时,分配 EIP 的 Amazon 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 Locale 选项匹配。

步骤 4:从您的公有 IPv4 池中取消预置公有 IPv4 CIDR

此步骤必须由成员账户使用 Amazon CLI 完成。

  1. 查看您的 BYOIP CIDR。

    aws ec2 describe-public-ipv4-pools --region us-east-2 --profile member-account

    在输出中,您将看到 BYOIP CIDR 中的 IP 地址。

    { "PublicIpv4Pools": [ { "PoolId": "ipv4pool-ec2-09037ce61cf068f9a", "Description": "", "PoolAddressRanges": [ { "FirstAddress": "130.137.245.0", "LastAddress": "130.137.245.255", "AddressCount": 256, "AvailableAddressCount": 256 } ], "TotalAddressCount": 256, "TotalAvailableAddressCount": 256, "NetworkBorderGroup": "us-east-2", "Tags": [] } ] }
  2. 运行以下命令以从公有 IPv4 池中释放 CIDR 中的最后一个 IP 地址。输入网络掩码为 /32 的 IP 地址。

    aws ec2 deprovision-public-ipv4-pool-cidr --region us-east-2 --pool-id ipv4pool-ec2-09037ce61cf068f9a --cidr 130.137.245.255/32 --profile member-account

    在输出中,您将看到取消预置的 CIDR。

    { "PoolId": "ipv4pool-ec2-09037ce61cf068f9a", "DeprovisionedAddresses": [ "130.137.245.255" ] }
    重要

    您必须为 CIDR 范围内的每个 IP 地址重新运行此命令。如果您的 CIDR 是 /24,则必须运行此命令才能取消预置 /24 CIDR 中 256 个 IP 地址中的每个地址。

  3. 再次查看您的 BYOIP CIDR,并确保没有更多的预置地址。运行本部分中的命令时,--region 的值必须与 IPAM 的区域匹配。

    aws ec2 describe-public-ipv4-pools --region us-east-2 --profile member-account

    在输出中,您将看到公有 IPv4 池中的 IP 地址计数。

    { "PublicIpv4Pools": [ { "PoolId": "ipv4pool-ec2-09037ce61cf068f9a", "Description": "", "PoolAddressRanges": [], "TotalAddressCount": 0, "TotalAvailableAddressCount": 0, "NetworkBorderGroup": "us-east-2", "Tags": [] } ] }
注意

IPAM 可能需要一些时间才能发现公有 IPv4 池分配已被删除。在看到已从 IPAM 中删除分配之前,您无法继续清理和取消预置 IPAM 池 CIDR。

步骤 5:删除公有 IPv4 池

此步骤必须由成员账户完成。

  • 运行以下命令,以从 CIDR 中删除公有 IPv4 池。运行本部分中的命令时,--region 的值必须与您在创建将用于 BYOIP CIDR 的池时选择的 Locale 选项匹配。在本教程中,该池就是区域池。必须使用 Amazon CLI 完成此步骤。

    aws ec2 delete-public-ipv4-pool --region us-east-2 --pool-id ipv4pool-ec2-09037ce61cf068f9a --profile member-account

    在输出中,您将看到返回值 true(真)。

    { "ReturnValue": true }

    删除该池后,要查看未由 IPAM 管理的分配,请打开 IPAM 控制台,并在 Allocations(分配)下查看区域池的详细信息。

步骤 6:删除 RAM 共享并禁用与 Amazon Organizations 的 RAM 集成

此步骤必须分别由 IPAM 账户和管理账户完成。如果要使用 Amazon CLI 删除 RAM 共享并禁用 RAM 集成,请使用 --profile ipam-account --profile management-account 选项。

步骤 7:从区域池和顶级池中取消预置 CIDR

此步骤必须由 IPAM 账户完成。如果要使用 Amazon CLI 共享该池,请使用 --profile ipam-account 选项。

  • 按顺序完成 从池中取消预置 CIDR 中的步骤,从区域池中取消预置 CIDR,然后从顶级池中取消预置 CIDR。

步骤 8:删除区域池和顶级池

此步骤必须由 IPAM 账户完成。如果要使用 Amazon CLI 共享该池,请使用 --profile ipam-account 选项。

  • 按顺序完成 删除池 中的步骤,删除区域池,然后删除顶级池。