从 IPAM 池中分配连续弹性 IP 地址 - Amazon Virtual Private Cloud

从 IPAM 池中分配连续弹性 IP 地址

IPAM 允许您向 IPAM 池预调配 Amazon 拥有的公有 IPv4 块,并将这些池中的连续弹性 IP 地址分配给 AWS 资源。

连续分配的弹性 IP 地址是按顺序分配的公有 IPv4 地址。例如,如果 Amazon 为您提供了一个公有 IPv4 CIDR 块 192.0.2.0/30,而您从该 CIDR 块中分配了四个可用的公有 IPv4 地址,则四个连续弹性 IP 地址的示例是 192.0.2.0192.0.2.1192.0.2.2192.0.2.3

连续分配的弹性 IP 地址使您能够通过以下方式来简化安全和联网规则:

  • 安全管理:使用连续的 IPv4 地址可以降低防火墙管理开销。您可以使用单个规则添加整个前缀,并在扩展时关联来自同一前缀的 IP,从而节省时间和精力。

  • 企业访问:您可以使用整个 CIDR 块而不是一长串单独的公有 IPv4 地址,以简化与客户端共享的地址空间。这样就无需在应用程序在 AWS 上扩展时不断沟通 IP 变更。

  • 简化的 IP 管理:使用连续的 IPv4 地址可以简化中央网络团队的公有 IP 管理,因为它减少了跟踪单个公有 IP 的需求,而是使他们能够专注于有限数量的 IP 前缀。

在本教程中,您将完成从 IPAM 池中分配连续弹性 IP 地址所需的步骤。您将使用 Amazon 提供的连续公有 IPv4 CIDR 块创建 IPAM 池,从池中分配弹性 IP 地址,并了解如何监控 IPAM 池的分配。

注意
  • 预调配 Amazon 拥有的公有 IPv4 CIDR 块会产生相关费用。有关更多信息,请参阅 Amazon VPC 定价页面上的 Amazon 提供的连续 IPv4 块选项卡。

  • 本教程假设您想要将 IPAM 用于单个账户以创建 IPAM。如果您想跨账户共享 Amazon 拥有的连续公有 IPv4 区,请先 将 IPAM 与 AWS Organization 中的账户集成,然后 使用 AWS RAM 共享 IPAM 池。如果您与 AWS Organizations 集成,则可以选择创建服务控制策略,以防止取消预调配分配给池的连续 IPv4 块。

  • 您无法将从 IPAM 池中分配的连续弹性 IP 地址转移到其他 AWS 账户。相反,通过将 IPAM 与 AWS Organizations 集成,IPAM 允许跨 AWS 账户共享 IPAM 池(如上所述)。

  • 您可以预调配的 Amazon 拥有的公有 IPv4 CIDR 块的数量及其大小有限制。有关更多信息,请参阅 IPAM 的配额

步骤 1:创建 IPAM

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

AWS Management Console
创建 IPAM
  1. https://console.aws.amazon.com/ipam/ 中打开 IPAM 控制台。

  2. 在 AWS 管理控制台中,选择您要在其中创建 IPAM 的 AWS 区域。在主操作区域创建 IPAM。

  3. 在服务主页上,选择创建 IPAM

  4. 选择 Allow Amazon VPC IP Address Manager to replicate data from source account(s) into the IPAM delegate account(允许 Amazon VPC IP 地址管理器将数据从源账户复制到 IPAM 委托账户中)。如果未选中此选项,则无法创建 IPAM。

  5. 选择 IPAM 等级。有关每种套餐中提供的功能以及与套餐相关的费用的更多信息,请参阅 Amazon VPC 定价页面中的 IPAM 选项卡。

  6. 运营区域下,选择此 IPAM 可以在其中管理和发现资源的 AWS 区域。默认情况下,您要在其中创建 IPAM 的AWS区域被选为运营区域之一。例如,如果您在 AWS 区域 us-east-1 中创建此 IPAM,但是您希望稍后创建区域 IPAM 池,以便在 us-west-2 中向 VPC 提供 CIDR,请在此选择 us-west-2。如果忘记了运营区域,可以稍后返回并编辑 IPAM 设置。

    注意

    如果您在免费等级中创建 IPAM,则可以为 IPAM 选择多个运营区域,但唯一可在运营区域中使用的 IPAM 功能是公共 IP 洞察功能。您无法跨 IPAM 运营区域中使用免费等级中的其他功能,例如 BYOIP。你只能在 IPAM 的主区域中只能使用这些功能。要跨运营区域使用所有 IPAM 功能,请在高级等级中创建 IPAM

  7. 选择创建 IPAM

Command line

本部分的命令链接到 AWS CLI 参考文档。本文档提供了运行命令时可以使用的选项的详细说明。

使用 create-ipam 命令创建 IPAM:

aws ec2 create-ipam --region us-east-1

响应示例:

{ "Ipam": { "OwnerId": "320805250157", "IpamId": "ipam-0755477df834ea06b", "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-0755477df834ea06b", "IpamRegion": "us-east-1", "PublicDefaultScopeId": "ipam-scope-01bc7290e4a9202f9", "PrivateDefaultScopeId": "ipam-scope-0a50983b97a7a583a", "ScopeCount": 2, "OperatingRegions": [ { "RegionName": "us-east-1" } ], "State": "create-in-progress", "Tags": [], "DefaultResourceDiscoveryId": "ipam-res-disco-02cc5b34cc3f04f09", "DefaultResourceDiscoveryAssociationId": "ipam-res-disco-assoc-06b3a4dccfc81f7c1", "ResourceDiscoveryAssociationCount": 1, "Tier": "advanced" } }

在下一步中,您将需要 PublicDefaultScopeId。有关范围的更多信息,请参阅 IPAM 的工作原理

步骤 2:创建 IPAM 池并预置 CIDR

完成本部分中的步骤创建 IPAM 池,您将从中分配弹性 IP 地址。

AWS Management Console
如需创建池
  1. https://console.aws.amazon.com/ipam/ 中打开 IPAM 控制台。

  2. 在导航窗格中,选择

  3. 选择公有范围。有关范围的更多信息,请参阅 IPAM 的工作原理

  4. 选择创建池

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

  6. 下,选择 IPAM 范围

  7. 地址系列下,选择 IPv4

  8. 资源规划下,保持选中在范围内规划 IP 空间

  9. Locale(区域设置)下,选择池的区域设置。区域设置是您希望此 IPAM 池可用于分配的 AWS 区域。可用的选项来自您在创建 IPAM 时选择的运营区域。

  10. 服务下,选择 EC2 (EIP/VPC)。您选择的服务将决定传播 CIDR 的 AWS 服务。目前,唯一的选择是 EC2(EIP/VPC),这意味着从此池中分配的 CIDR 将在 Amazon EC2 服务(适用于弹性 IP 地址)中传播。

  11. 公有 IP 来源下,选择 Amazon 拥有

  12. 要预调配的 CIDR 下,选择添加 Amazon 拥有的公有 CIDR。选择介于 /29(8 个 IP 地址)和 /30(4 个 IP 地址)之间的网络掩码长度。默认情况下,您最多可以添加 2 个 CIDR。有关提高 Amazon 提供的连续公有 IPv4 CIDR 限制的信息,请参阅 IPAM 的配额

  13. 配置此池的分配规则设置保持未选中状态。

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

  15. 选择创建池

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

Command line
如需创建池
  1. 使用 create-ipam-pool 命令创建 IPAM 池。区域设置是您希望此 IPAM 池可用于分配的 AWS 区域。可用的选项来自您在创建 IPAM 时选择的运营区域。

    aws ec2 create-ipam-pool --region us-east-1 --ipam-scope-id ipam-scope-01bc7290e4a9202f9 --address-family ipv4 --locale us-east-1 --aws-service ec2 --public-ip-source amazon

    带有 create-in-progress 状态的示例响应:

    { "IpamPool": { "OwnerId": "320805250157", "IpamPoolId": "ipam-pool-07ccc86aa41bef7ce", "IpamPoolArn": "arn:aws:ec2::320805250157:ipam-pool/ipam-pool-07ccc86aa41bef7ce", "IpamScopeArn": "arn:aws:ec2::320805250157:ipam-scope/ipam-scope-01bc7290e4a9202f9", "IpamScopeType": "public", "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-0755477df834ea06b", "IpamRegion": "us-east-1", "Locale": "us-east-1", "PoolDepth": 1, "State": "create-in-progress", "AutoImport": false, "AddressFamily": "ipv4", "Tags": [], "AwsService": "ec2", "PublicIpSource": "amazon" } }
  2. 使用 describe-ipam-pools 命令检查池是否已成功创建。

    aws ec2 describe-ipam-pools --region us-east-1 --ipam-pool-ids ipam-pool-07ccc86aa41bef7ce

    带有 create-complete 状态的示例响应:

    { "IpamPools": [ { "OwnerId": "320805250157", "IpamPoolId": "ipam-pool-07ccc86aa41bef7ce", "IpamPoolArn": "arn:aws:ec2::320805250157:ipam-pool/ipam-pool-07ccc86aa41bef7ce", "IpamScopeArn": "arn:aws:ec2::320805250157:ipam-scope/ipam-scope-01bc7290e4a9202f9", "IpamScopeType": "public", "IpamArn": "arn:aws:ec2::320805250157:ipam/ipam-0755477df834ea06b", "IpamRegion": "us-east-1", "Locale": "us-east-1", "PoolDepth": 1, "State": "create-complete", "AutoImport": false, "AddressFamily": "ipv4", "Tags": [], "AwsService": "ec2", "PublicIpSource": "amazon" } ] }
  3. 使用 provision-ipam-pool-cidr 命令向池预置 CIDR。选择介于 /29(8 个 IP 地址)和 /30(4 个 IP 地址)之间的 --netmask-length。默认情况下,您最多可以添加 2 个 CIDR。有关提高 Amazon 提供的连续公有 IPv4 CIDR 限制的信息,请参阅 IPAM 的配额

    aws ec2 provision-ipam-pool-cidr --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce --netmask-length 29

    带有 pending-provision 状态的示例响应:

    { "IpamPoolCidr": { "State": "pending-provision", "IpamPoolCidrId": "ipam-pool-cidr-01856e43994df4913b7bc6aac47adf983", "NetmaskLength": 29 } }
  4. 在继续之前,请确保已预置此 CIDR。您可以使用 get-ipam-pool-cidrs 命令查看预置状态。

    aws ec2 get-ipam-pool-cidrs --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce

    带有 provisioned 状态的示例响应:

    { "IpamPoolCidrs": [ { "Cidr": "18.97.0.40/29", "State": "provisioned", "IpamPoolCidrId": "ipam-pool-cidr-01856e43994df4913b7bc6aac47adf983", "NetmaskLength": 29 } ] }

步骤 3:从池中分配弹性 IP 地址

完成本部分中的步骤,以从池中分配弹性 IP 地址。

AWS Management Console

按照《Amazon EC2 用户指南》中的分配弹性 IP 地址中的步骤分配地址,但请注意以下几点:

  • 确保您的 EC2 控制台所在的 AWS 区域与您在步骤 2 中创建池时选择的区域设置选项相匹配。

  • 选择地址池时,选择使用 IPv4 IPAM 池分配选项,然后选择您在步骤 1 中创建的池。

Command line

使用 allocate-address 命令从池中分配一个地址。您使用的 --region 必须与您在步骤 2 中创建池时选择的 -locale 选项相匹配。包括您在 --ipam-pool-id 中在步骤 2 中创建的 IPAM 池的 ID。或者,您也可以使用 --address 选项在 IPAM 池中选择特定的 /32

aws ec2 allocate-address --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce

响应示例:

{ "PublicIp": "18.97.0.41", "AllocationId": "eipalloc-056cdd6019c0f4b46", "PublicIpv4Pool": "ipam-pool-07ccc86aa41bef7ce", "NetworkBorderGroup": "us-east-1", "Domain": "vpc" }

有关更多信息,请参阅《Amazon EC2 用户指南》中的分配弹性 IP 地址

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

完成本部分中的步骤将弹性 IP 地址与 EC2 实例相关联。

AWS Management Console

按照《Amazon EC2 用户指南》中的关联弹性 IP 地址中的步骤从 IPAM 池中分配弹性 IP 地址,但请注意以下几点:使用 AWS 管理控制台选项时,您关联弹性 IP 地址所在的 AWS 区域必须与您在步骤 2 中创建池时选择的区域设置选项相匹配。

Command line

使用 associate-address 命令将弹性 IP 地址与实例相关联。您关联弹性 IP 地址所在的 --region 区域必须与您在步骤 2 中创建池时选择的 --locale 选项匹配。

aws ec2 associate-address --region us-east-1 --instance-id i-07459a6fca5b35823 --public-ip 18.97.0.41

响应示例:

{ "AssociationId": "eipassoc-06aa85073d3936e0e" }

有关更多信息,请参阅《Amazon EC2 用户指南》中的将弹性 IP 地址与实例或网络接口相关联

步骤 5:跟踪和监控池使用情况

从 IPAM 池中分配弹性 IP 地址之后,您可以跟踪和监控 IPAM 池的分配:

AWS Management Console
  • 在 IPAM 控制台的分配选项卡中查看 IPAM 池详细信息。从 IPAM 池分配的任何弹性 IP 地址的资源类型均为 EIP

  • 使用公共 IP 洞察功能

    • 公有 IP 类型下,按 Amazon 拥有的 EIP 进行筛选。这显示了分配给 Amazon 拥有的弹性 IP 地址的公有 IPv4 地址的总数。如果您按此衡量标准进行筛选并滚动到页面底部的公有 IP 地址,则将看到您分配的弹性 IP 地址。

    • EIP 使用情况下,按Amazon 拥有的关联的 EIPAmazon 拥有的未关联的 EIP 进行筛选。这将显示您在 AWS 账户中分配且将其与 EC2 实例、网络接口或 AWS 资源关联或未关联的弹性 IP 地址总数。如果您按此衡量标准进行筛选并滚动到页面底部的公有 IP 地址,您将会看到有关已筛选资源的详细信息。

    • Amazon 拥有的 IPv4 连续 IP 使用情况下,监控一段时间内连续的公有 IPv4 地址使用情况以及 Amazon 拥有的相关的 IPv4 IPAM 池。

  • 使用 Amazon CloudWatch 跟踪和监控与 Amazon 提供的已预调配到 IPAM 池的连续公有 IPv4 区块相关的指标。有关特定于连续 IPv4 区块的可用指标,请参阅 IPAM 池和范围指标 下方的公有 IP 指标。除查看指标外,您还可以在 Amazon CloudWatch 中创建警报,以便在达到阈值时通知您。使用 Amazon CloudWatch 创建告警和设置通知不在本教程的范围内。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的使用 Amazon CloudWatch 警报

Command line
  • 使用 get-ipam-pool-allocations 命令查看 IPAM 池分配。从 IPAM 池分配的任何弹性 IP 地址的资源类型均为 eip

    aws ec2 get-ipam-pool-allocations --region us-east-1 --ipam-pool-id ipam-pool-07ccc86aa41bef7ce

    响应示例:

    { "IpamPoolAllocations": [ { "Cidr": "18.97.0.40/32", "IpamPoolAllocationId": "ipam-pool-alloc-0bd07df786e8148aba2763e2b6c1c44bd", "ResourceId": "eipalloc-0c9decaa541d89aa9", "ResourceType": "eip", "ResourceRegion": "us-east-1", "ResourceOwner": "320805250157" } ] }
  • 使用 Amazon CloudWatch 跟踪和监控与 Amazon 提供的已预调配到 IPAM 池的连续公有 IPv4 区块相关的指标。有关特定于连续 IPv4 区块的可用指标,请参阅 IPAM 池和范围指标 下方的公有 IP 指标。除查看指标外,您还可以在 Amazon CloudWatch 中创建警报,以便在达到阈值时通知您。使用 Amazon CloudWatch 创建告警和设置通知不在本教程的范围内。有关更多信息,请参阅 Amazon CloudWatch 用户指南中的使用 Amazon CloudWatch 警报

本教程现已完成。您已经使用 Amazon 提供的连续公有 IPv4 CIDR 块创建 IPAM 池,从池中分配弹性 IP 地址,并了解了如何监控 IPAM 池的分配。继续下一部分以删除您在本教程中创建的资源。

清理

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

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

完成《Amazon EC2 用户指南》中的解除弹性 IP 地址的关联的步骤,以解除弹性 IP 地址的关联。

步骤 2:释放弹性 IP 地址

完成《Amazon EC2 用户指南》中的释放弹性 IP 地址的步骤,从公有 IPv4 池释放弹性 IP 地址。

步骤 3:从 IPAM 池中取消预调配 CIDR

完成 从池中取消预置 CIDR 中的步骤,从 IPAM 池中取消预调配 Amazon 拥有的公有 CIDR。此步骤是删除池所必需的。在此步骤完成之前,您需要为 Amazon 提供的连续 IPv4 块付费。

步骤 4:删除 IPAM 池

完成 删除池 中的步骤以删除 IPAM 池。

步骤 5:删除 IPAM

完成 删除 IPAM 中的步骤以删除 IPAM。

本教程清理已完成。