使用 AWS 管理控制台和 AWS CLI 自带 IPv4 CIDR 到 IPAM 中
按照以下步骤将 IPv4 CIDR 带入 IPAM 中,然后使用 AWS 管理控制台和 AWS CLI 分配弹性 IP 地址 (EIP)。
重要
本教程假定您已完成以下部分中的步骤:
-
本教程的每个步骤都必须由以下三个 AWS Organizations 账户之一完成:
管理账户。
将 IPAM 与 AWS Organization 中的账户集成 中配置为 IPAM 管理员的成员账户。在本教程中,此账户将被称为 IPAM 账户。
将从 IPAM 池中分配 CIDR 的企业中的成员账户。在本教程中,此账户将被称为成员账户。
内容
第 1 步:创建 AWS CLI 命名配置文件和 IAM 角色
要以单个 AWS 用户的身份完成本教程,您可以使用 AWS CLI 命名配置文件在 IAM 角色之间切换。命名配置文件 是您在将 --profile
选项与 AWS CLI 结合使用时引用的设置和凭证集合。有关如何为 AWS 账户创建 IAM 角色和命名配置文件的更多信息,请参阅《AWS Identity and Access Management 用户指南》中的 在 AWS CLI 中使用 IAM 角色。
为您将在本教程中使用的三个 AWS 账户分别创建一个角色和一个命名配置文件:
为 AWS Organizations 管理账户创建名为
management-account
的配置文件。为配置为 IPAM 管理员的 AWS Organizations 成员账户创建名为
ipam-account
的配置文件。为将从 IPAM 池中分配 CIDR 的企业中的 AWS Organizations 成员账户创建名为
member-account
的配置文件。
创建 IAM 角色和命名配置文件后,请返回本页面并转至下一步。在本教程的其余部分中,您将注意到示例 AWS CLI 命令会将 --profile
选项与其中一个命名配置文件一起使用,以指示哪个账户必须运行该命令。
步骤 2:创建顶级 IPAM 池
完成本部分中的步骤创建顶级 IPAM 池。
此步骤必须由 IPAM 账户完成。
如需创建池
在 https://console.aws.amazon.com/ipam/
中打开 IPAM 控制台。 -
在导航窗格中,选择 Pools(池)。
-
默认情况下,创建池时,默认的私有范围被选中。选择公有范围。有关范围的更多信息,请参阅 IPAM 的工作原理。
-
选择创建池。
-
(可选)添加池的名称标签和池的描述。
-
在源下,选择 IPAM 范围。
-
在地址系列下,选择 IPv4。
-
在资源规划下,保持选中在范围内规划 IP 空间。有关使用此选项规划 VPC 内的子网 IP 空间的更多信息,请参阅 教程:为子网 IP 分配规划 VPC IP 地址空间。
-
在区域设置下,选择无。
IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。由于我们将创建一个其中包含一个区域池的顶级 IPAM 池,并且我们将为区域池中的弹性 IP 地址分配空间,因此您将在区域池中设置区域设置,而不是在顶级池中。在后面的步骤中创建区域池时,您将区域设置添加到区域池中。
注意
如果您只创建单个池而不是其中包含区域池的顶级池,则需要为此池选择一个区域设置,以便该池可用于分配。
-
在公有 IP 来源下,选择 BYOIP。
-
在要预置的 CIDR 下,执行下列某项操作:
-
如果使用 X.509 证书验证域控制权,则必须包含 CIDR 和 BYOIP 消息以及在该步骤中创建的证书签名,以便我们验证您是否控制了公共空间。
-
如果使用 DNS TXT 记录验证域控制权,则必须包含 CIDR 和 IPAM 消息以及在该步骤中创建的验证令牌,以便我们验证您是否控制了公共空间。
请注意,将 IPv4 CIDR 预置到顶级池中的资源池时,您可以预置的最低 IPv4 CIDR 为
/24
;不允许使用更具体的 CIDR(例如/25
)。重要
虽然大多数预配置将在两小时内完成,但对于公开发布的范围,完成预配置过程可能需要长达一周的时间。
-
将配置此池的分配规则设置保持未选中状态。
(可选)为池选择 Tags(标签)。
选择创建池。
在继续之前,请确保已预置此 CIDR。您可以在池详细信息页面的 CIDR 选项卡中查看资源调配状态。
第 3 步。在顶级池中创建区域池
在顶级池中创建区域池。IPAM 与 BYOIP 集成要求在将用于 BYOIP CIDR 的任何一个池上设置区域设置。在本部分中创建区域池时,您将区域设置添加到区域池中。Locale
必须是创建 IPAM 时配置的其中一个操作区域的一部分。例如,区域设置为 us-east-1 意味着 us-east-1 必须是 IPAM 的操作区域。区域设置为 us-east-1-scl-1(用于本地区域的网络边界组)意味着 IPAM 的操作区域必须为 us-east-1。
此步骤必须由 IPAM 账户完成。
要在顶级池中创建区域池
在 https://console.aws.amazon.com/ipam/
中打开 IPAM 控制台。 -
在导航窗格中,选择 Pools(池)。
-
默认情况下,创建池时,默认的私有范围被选中。如果您不想使用默认的私有范围,请从内容窗格顶部的下拉菜单中选择要使用的范围。有关范围的更多信息,请参阅 IPAM 的工作原理。
-
选择创建池。
-
(可选)添加池的名称标签和池的描述。
-
在源池下,选择您在上一部分中创建的顶级池。
-
在资源规划下,保持选中在范围内规划 IP 空间。有关使用此选项规划 VPC 内的子网 IP 空间的更多信息,请参阅 教程:为子网 IP 分配规划 VPC IP 地址空间。
-
在 Locale(区域设置)下,选择池的区域设置。在本教程中,我们将使用
us-east-2
作为区域池的区域设置。可用的选项来自您在创建 IPAM 时选择的运营区域。池的区域设置应为以下选项之一:
您希望此 IPAM 池可用于分配的 AWS 区域。
您希望此 IPAM 池可用于分配的 AWS 本地区域的网络边界组(支持的本地区域)。此选项仅适用于公共范围内的 IPAM IPv4 池。
AWS 专用本地区域
。要在 AWS 专用本地区域内创建池,请在选择器输入中输入 AWS 专用本地区域。
例如,您只能从与 VPC 的区域共享区域设置的 IPAM 池中为 VPC 分配 CIDR。请注意,当您为池选择了区域设置后,无法对其进行修改。如果 IPAM 的主区域由于中断而不可用,并且池的区域设置与 IPAM 的主区域不同,则该池仍可用于分配 IP 地址。
选择区域设置可确保池与从中分配的资源之间没有跨区域依赖关系。
-
在服务下,选择 EC2 (EIP/VPC)。您选择的服务将决定可传播 CIDR 的 AWS 服务。目前,唯一的选择是 EC2(EIP/VPC),这意味着从此池中分配的 CIDR 在 Amazon EC2 服务(适用于弹性 IP 地址)和 Amazon VPC 服务(适用于与 VPC 关联的 CIDR)中是可传播的。
-
在要预置的 CIDR 下,选择要为池预置的 CIDR。
注意
将 CIDR 预置到顶级池中的区域池时,您可以预置的最具体的 IPv4 CIDR 为
/24
;不允许使用更具体的 CIDR(例如/25
)。创建区域池后,您可以在该区域池内创建较小的池(例如/25
)。请注意,如果您共享该区域池内的一个或多个区域池,则这些池只能在该区域池上设置的区域中使用。 -
启用配置此池的分配规则设置。这里的分配规则选项与创建顶级池时的选项相同。请参阅 创建顶级 IPv4 池 以了解创建池时可用的选项。区域池的分配规则不是从顶级池继承来的。如果您不在此应用任何规则,则不会为池设置分配规则。
(可选)为池选择 Tags(标签)。
-
配置完池后,选择创建池。
在继续之前,请确保已预置此 CIDR。您可以在池详细信息页面的 CIDR 选项卡中查看资源调配状态。
步骤 4:传播 CIDR
本部分中的步骤必须由 IPAM 账户完成。将弹性 IP 地址 (EIP) 与实例或 Elastic Load Balancer 关联后,您就可以开启传播您带到处于已配置了 Service EC2 (EIP/VPC)(服务 EC2 (EIP/VPC))的池中的 AWS 的 CIDR。在本教程中,这就是您的区域池。默认情况下,CIDR 不会被传播,这意味着它不能通过互联网公开访问。
此步骤必须由 IPAM 账户完成。
注意
传播状态不会限制您分配弹性 IP 地址的能力。即使您的 BYOIPv4 CIDR 未传播,您仍然可以从 IPAM 池中创建 EIP。
要传播 CIDR
在 https://console.aws.amazon.com/ipam/
中打开 IPAM 控制台。 -
在导航窗格中,选择 Pools(池)。
-
默认情况下,创建池时,默认的私有范围被选中。选择公有范围。有关范围的更多信息,请参阅 IPAM 的工作原理。
-
选择您在本教程中创建的区域池。
-
选择 CIDR 选项卡。
-
选择 BYOIP CIDR,然后选择操作 > 广告。
-
选择广告 CIDR。
这样一来,将广告 BYOIP CIDR,并且广告列中的值将从已撤回变为已刊登广告。
第 5 步。共享区域池
按照本部分中的步骤使用 AWS Resource Access Manager(RAM)共享 IPAM 池。
在 AWS RAM 中启用资源共享
创建 IPAM 后,您需要与组织中的其他账户共享区域池。在共享 IPAM 池之前,请先完成本部分中的步骤,启用与 AWS RAM 的资源共享。如果要使用 AWS CLI 启用资源共享,请使用 --profile
选项。management-account
启用资源共享
-
使用 AWS Organizations 管理账户打开 AWS RAM 控制台,地址:https://console.aws.amazon.com/ram/
。 -
在左侧导航窗格中,依次选择设置、启用与 AWS Organizations 共享、保存设置。
您现在可以与组织的其他成员共享 IPAM 池。
使用 AWS RAM 共享 IPAM 池
在这一部分,您将与其他 AWS Organizations 成员账户共享区域池。有关共享 IPAM 池的完整说明,例如所需 IAM 权限的相关信息,请参阅 使用 AWS RAM 共享 IPAM 池。如果要使用 AWS CLI 启用资源共享,请使用 --profile
选项。ipam-account
使用 AWS RAM 共享 IPAM 池
-
使用 IPAM 管理员账户打开 IPAM 控制台,地址:https://console.aws.amazon.com/ipam/
。 -
在导航窗格中,选择池。
-
依次选择私有范围、IPAM 池以及操作 > 查看详细信息。
-
在资源共享下,选择创建资源共享。AWS RAM 控制台将打开。您将使用 AWS RAM 来共享该池。
-
选择创建资源共享。
-
在 AWS RAM 控制台中,再次选择创建资源共享。
-
为共享资源添加名称。
-
在选择资源类型下,选择 IPAM 池,然后选择要共享的池的 ARN。
-
选择下一步。
-
选择 AWSRAMPermissionIpamPoolByoipCidrImport 权限。本教程不提供权限选项的详细信息,但您可以在 使用 AWS RAM 共享 IPAM 池 中查看有关这些选项的更多信息。
-
选择下一步。
-
在委托人 > 选择主体类型下,选择 AWS 账户,输入要为 IPAM 提供 IP 地址范围的账户的账户 ID,然后选择添加。
-
选择下一步。
-
查看资源共享选项和要共享的主体,然后选择创建。
-
要允许
member-account
账户从 IPAM 池中分配 IP 地址 CIDRS,请使用AWSRAMDefaultPermissionsIpamPool
创建第二个资源共享。--resource-arns
的值是您在上一部分中创建的 IPAM 池的 ARN。--principals
的值是member-account
的账户 ID。--permission-arns
的值是AWSRAMDefaultPermissionsIpamPool
权限的 ARN。
步骤 6:从池中分配弹性 IP 地址
完成本部分中的步骤,以从池中分配弹性 IP 地址。请注意,如果您使用公有 IPv4 池来分配弹性 IP 地址,则可以使用 步骤 6 的替代方案 中的替代步骤而不是本部分中的步骤。
重要
如果您看到与无权调用 ec2:AllocateAddress 相关的错误,则需要更新当前分配给与您共享的 IPAM 池的托管权限。联系创建资源共享的人员,要求他们将托管权限 AWSRAMPermissionIpamResourceDiscovery
更新为默认版本。有关更多信息,请参阅《AWS RAM 用户指南》中的更新资源共享。
步骤 7:将弹性 IP 地址与 EC2 实例相关联
完成本部分中的步骤将弹性 IP 地址与 EC2 实例相关联。
步骤 8:清除
按照本部分中的步骤清除您在本教程中预置和创建的资源。
步骤 1:从传播中撤回 CIDR
此步骤必须由 IPAM 账户完成。
在 https://console.aws.amazon.com/ipam/
中打开 IPAM 控制台。 -
在导航窗格中,选择 Pools(池)。
-
默认情况下,创建池时,默认的私有范围被选中。选择公有范围。
-
选择您在本教程中创建的区域池。
-
选择 CIDR 选项卡。
-
选择 BYOIP CIDR,然后选择操作>撤回广告。
-
选择撤回 CIDR。
此时将不再广告 BYOIP CIDR,广告栏中的值将从已刊登广告变为已撤回。
步骤 2:解除弹性 IP 地址的关联
此步骤必须由成员账户完成。如果要使用 AWS CLI,请使用 --profile
选项。member-account
完成《Amazon EC2 用户指南》中的解除弹性 IP 地址的关联的步骤,以解除 EIP 的关联。在 AWS 管理控制台中打开 EC2 时,解除 EIP 关联的 AWS 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的
Locale
选项匹配。在本教程中,该池就是区域池。
步骤 3:释放弹性 IP 地址
此步骤必须由成员账户完成。如果要使用 AWS CLI,请使用 --profile
选项。member-account
-
完成《Amazon EC2 用户指南》中的释放弹性 IP 地址的步骤,从公有 IPv4 池释放弹性 IP 地址(EIP)。在 AWS 管理控制台中打开 EC2 时,分配 EIP 的 AWS 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的
Locale
选项匹配。
步骤 4:删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成
此步骤必须分别由 IPAM 账户和管理账户完成。要使用 AWS CLI 删除 RAM 共享并禁用 RAM 集成,请使用 --profile
和 ipam-account
--profile
选项。management-account
-
完成《AWS RAM 用户指南》中 删除 AWS RAM 中的资源共享 和 禁用与 AWS Organizations 的资源共享 所述的步骤,删除 RAM 共享并禁用与 AWS Organizations 的 RAM 集成。
步骤 5:从区域池和顶级池中取消预调配 CIDR
此步骤必须由 IPAM 账户完成。如果要使用 AWS CLI 共享该池,请使用 --profile
选项。ipam-account
-
按顺序完成 从池中取消预置 CIDR 中的步骤,从区域池中取消预置 CIDR,然后从顶级池中取消预置 CIDR。
步骤 6:删除区域池和顶级池
此步骤必须由 IPAM 账户完成。如果要使用 AWS CLI 共享该池,请使用 --profile
选项。ipam-account
-
按顺序完成 删除池 中的步骤,删除区域池,然后删除顶级池。
步骤 6 的替代方案
如果您使用公有 IPv4 池来分配弹性 IP 地址,则可以本部分中的步骤,而不是 步骤 6:从池中分配弹性 IP 地址 中的步骤。
步骤 1:创建公有 IPv4 池
此步骤应该由预置弹性 IP 地址的成员账户完成。
注意
此步骤必须由成员账户使用 AWS CLI 完成。
公有 IPv4 池和 IPAM 池由 AWS 中的不同资源管理。公共 IPv4 池是单一账户资源,使您能够将公有 CIDR 转换为弹性 IP 地址。IPAM 池可用于将公有空间分配给公有 IPv4 池。
要使用 AWS CLI 创建公有 IPv4 池
-
请运行以下命令以预置 CIDR。运行本部分中的命令时,
--region
的值必须与您在创建将用于 BYOIP CIDR 的池时选择的Locale
选项匹配。aws ec2 create-public-ipv4-pool --region
us-east-2
--profilemember-account
在输出中,您将看到公有 IPv4 池 ID。在下一步骤中,您需要用到此 ID。
{ "PoolId": "ipv4pool-ec2-09037ce61cf068f9a" }
步骤 2:将公有 IPv4 CIDR 预调配到您的公有 IPv4 池
将公有 IPv4 CIDR 预置到您的公有 IPv4 池。--region
的值为必须与您在创建将用于 BYOIP CIDR 的池时选择的 Locale
值匹配。--netmask-length
是指您想添加到公共池的 IPAM 池空间量。该值不能大于 IPAM 池的网络掩码长度。您可以定义的最不具体的 --netmask-length
是 24
。
注意
如果您将
/24
CIDR 范围引入 IPAM 以便在 AWS 组织内共享,则可以为多个 IPAM 池预置较小的前缀,例如/27
(使用-- netmask-length 27
),而不是像本教程中所示预置整个/24
CIDR(使用-- netmask-length 24
)。此步骤必须由成员账户使用 AWS CLI 完成。
要使用 AWS CLI 创建公有 IPv4 池
-
请运行以下命令以预置 CIDR。
aws ec2 provision-public-ipv4-pool-cidr --region
us-east-2
--ipam-pool-idipam-pool-04d8e2d9670eeab21
--pool-idipv4pool-ec2-09037ce61cf068f9a
--netmask-length24
--profilemember-account
在输出中,您将看到预置的 CIDR。
{ "PoolId": "ipv4pool-ec2-09037ce61cf068f9a", "PoolAddressRange": { "FirstAddress": "130.137.245.0", "LastAddress": "130.137.245.255", "AddressCount": 256, "AvailableAddressCount": 256 } }
-
运行以下命令,以查看公有 IPv4 池中预置的 CIDR。
aws ec2 describe-public-ipv4-pools --region
us-east-2
--max-results10
--profilemember-account
在输出中,您将看到预置的 CIDR。默认情况下,CIDR 不会被传播,这意味着它不能通过互联网公开访问。在本教程的最后一步中,您将有机会将此 CIDR 设置为进行传播。
{ "PublicIpv4Pools": [ { "PoolId": "ipv4pool-ec2-09037ce61cf068f9a", "Description": "", "PoolAddressRanges": [ { "FirstAddress": "130.137.245.0", "LastAddress": "130.137.245.255", "AddressCount": 256, "AvailableAddressCount": 255 } ], "TotalAddressCount": 256, "TotalAvailableAddressCount": 255, "NetworkBorderGroup": "us-east-2", "Tags": [] } ] }
创建公有 IPv4 池后,要查看在 IPAM 区域池中分配的公有 IPv4 池,请打开 IPAM 控制台,并在分配或资源下查看区域池中的分配。
步骤 3:从公有 IPv4 池分配弹性 IP 地址
完成《Amazon EC2 用户指南》中的分配弹性 IP 地址的步骤,从公有 IPv4 池分配 EIP。在 AWS 管理控制台中打开 EC2 时,分配 EIP 的 AWS 区域必须与您在创建将用于 BYOIP CIDR 的池时选择的 Locale
选项匹配。
此步骤必须由成员账户完成。如果要使用 AWS CLI,请使用 --profile
选项。member-account
完成这三个步骤后,请返回 步骤 7:将弹性 IP 地址与 EC2 实例相关联 并继续操作,直到完成本教程。
步骤 6 清理的替代方案
完成以下步骤,以清理使用步骤 9 的替代方法创建的公有 IPv4 池。在 步骤 8:清除 中的标准清理过程中,您应在释放弹性 IP 地址后完成这些步骤。
步骤 1:从您的公有 IPv4 池中取消预调配公有 IPv4 CIDR
重要
此步骤必须由成员账户使用 AWS CLI 完成。
-
查看您的 BYOIP CIDR。
aws ec2 describe-public-ipv4-pools --region
us-east-2
--profilemember-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": [] } ] }
-
运行以下命令以从公有 IPv4 池中释放 CIDR 中的最后一个 IP 地址。输入网络掩码为
/32
的 IP 地址。aws ec2 deprovision-public-ipv4-pool-cidr --region
us-east-2
--pool-idipv4pool-ec2-09037ce61cf068f9a
--cidr130.137.245.255/32
--profilemember-account
在输出中,您将看到取消预置的 CIDR。
{ "PoolId": "ipv4pool-ec2-09037ce61cf068f9a", "DeprovisionedAddresses": [ "130.137.245.255" ] }
重要
您必须为 CIDR 范围内的每个 IP 地址重新运行此命令。如果您的 CIDR 是
/24
,则必须运行此命令才能取消预置/24
CIDR 中 256 个 IP 地址中的每个地址。 -
再次查看您的 BYOIP CIDR,并确保没有更多的预置地址。运行本部分中的命令时,
--region
的值必须与 IPAM 的区域匹配。aws ec2 describe-public-ipv4-pools --region
us-east-2
--profilemember-account
在输出中,您将看到公有 IPv4 池中的 IP 地址计数。
{ "PublicIpv4Pools": [ { "PoolId": "ipv4pool-ec2-09037ce61cf068f9a", "Description": "", "PoolAddressRanges": [], "TotalAddressCount": 0, "TotalAvailableAddressCount": 0, "NetworkBorderGroup": "us-east-2", "Tags": [] } ] }
注意
IPAM 可能需要一些时间才能发现公有 IPv4 池分配已被删除。在看到已从 IPAM 中删除分配之前,您无法继续清理和取消预置 IPAM 池 CIDR。
步骤 2:删除公有 IPv4 池
此步骤必须由成员账户完成。
-
运行以下命令,以从 CIDR 中删除公有 IPv4 池。运行本部分中的命令时,
--region
的值必须与您在创建将用于 BYOIP CIDR 的池时选择的Locale
选项匹配。在本教程中,该池就是区域池。必须使用 AWS CLI 完成此步骤。aws ec2 delete-public-ipv4-pool --region
us-east-2
--pool-idipv4pool-ec2-09037ce61cf068f9a
--profilemember-account
在输出中,您将看到返回值真。
{ "ReturnValue": true }
删除该池后,要查看未由 IPAM 管理的分配,请打开 IPAM 控制台,并在分配下查看区域池的详细信息。