在 INTERLIR Marketplace,您可以选择租用可用作 Amazon EC2 BYOIP(自带 IP)地址的 IP 地址。 这允许您将部分或全部公共可路由 IPv4 或 IPv6 地址范围从本地网络转移到您的 AWS (Amazon Web Services) 账户。 虽然您保留对地址范围的控制权,但 AWS 默认情况下会在互联网上公布它。 将地址范围与 AWS 集成后,它将作为地址池在您的 AWS 账户中可用。

并非所有区域和资源都支持 BYOIP(自带 IP)。 要查找支持的区域和资源的列表,请参阅 BYOIP 常见问题解答。
内容
BYOIP(自带 IP)的定义
- X.509 自签名证书:用于加密和验证网络内数据的证书标准。 AWS 使用此证书来验证 RDAP 记录对 IP 空间的控制。
- 注册表数据访问协议 (RDAP):用于访问注册数据的查询资源。 客户更新此数据,AWS 使用它来验证对区域互联网注册管理机构 (RIR) 中地址空间的控制。
- 航线始发地授权(ROA):由 RIR 创建的对象,用于验证特定自治系统中的 IP 通告。 这有助于保证IP地址分配的有效性。
- 本地互联网注册机构 (LIR):互联网服务提供商等组织将 RIR 中的 IP 地址块分配给其客户。 他们充当 RIR 和最终用户之间的中介
BYOIP 的要求和限制
地址范围注册:
- 地址范围必须在区域互联网注册机构 (RIR)(例如 ARIN、RIPE 或 APNIC)中注册。
- 注册必须是企业或机构实体,不能注册为个人。
特定 IPv4 和 IPv6 地址范围
- 允许的最具体的 IPv4 地址范围是 /24。
- 允许的最具体的 IPv6 地址范围是 /48(对于公开发布的 CIDR)和 /56对于非公开发布的 CIDR)。
ROA 和 RDAP 记录:
- 非公开公布的 CIDR 范围不需要 ROA,但 RDAP 记录仍需要更新。
限制和集成:
- 每个地址范围一次只能引入一个 AWS 区域。
- 每个区域总共可以将五个 IPv4 和 IPv6 地址范围引入您的 AWS 账户。
- 除非与 Amazon VPC IP Address Manager (IPAM) 和 AWS Organizations 集成,否则无法与使用 AWS RAM 的其他 AWS 账户共享 IP 地址范围。
IP 地址历史记录和支持:
- IP 地址范围内的地址必须具有干净的历史记录,AWS 保留拒绝信誉不佳或与恶意行为相关的 IP 地址范围的权利。
- AWS 不支持旧分配。
LIR 的更新流程:
- LIR 通常使用手动流程来更新其记录,这可能需要几天的时间来部署,具体取决于 LIR。
大型 CIDR 块的单一 ROA 和 RDAP 记录:
- 大型 CIDR 块需要单个 ROA 对象和 RDAP 记录,并且可以使用单个对象和记录将同一范围内的多个较小 CIDR 块引入 AWS。
加入 BYOIP 地址范围的先决条件
BYOIP 的加入流程由两个阶段组成,每个阶段需要三个特定步骤,如下图所示。
准备阶段:
1. 生成 RSA 密钥对并利用它创建自签名 X.509 证书以进行身份验证
RIR 配置阶段:
2. 将自签名证书上传到您的 RDAP 记录注释。
3. 在您的 RIR 中创建一个 ROA 对象,指定所需的地址范围、允许用于通告该范围的自治系统编号 (ASN) 以及向您的 RIR 的资源公钥基础设施 (RPKI) 注册的到期日期。
注意:对于非公开通告的 IPv6 地址空间,ROA 不是必需的。

要引入多个不连续的地址范围,您需要对每个范围重复此过程。 但是,如果将连续块分割到不同的区域,则不需要重复准备和 RIR 配置步骤。
地址范围的加入不会影响任何先前引入的地址范围。
在继续地址范围加入之前,请确保您完成必要的先决条件。 某些任务涉及运行 Linux 命令,在 Windows 上,您可以利用适用于 Linux 的 Windows 子系统来执行这些命令。
1. 创建用于AWS身份验证的密钥对
使用以下过程创建自签名 X.509 证书并将其添加到 RIR 的 RDAP 记录中。 该密钥对用于向 RIR 验证地址范围。 openssl 命令需要 OpenSSL 版本 1.0.2 或更高版本。
复制以下命令并仅替换占位符值(以彩色斜体文本显示)。
创建自签名 X.509 证书并将其添加到 RDAP 记录
此过程遵循加密 RSA 私钥并需要密码才能访问它的最佳实践。
2. 将 RDAP 记录上传到您的 RIR
将您之前创建的证书添加到 RIR 的 RDAP 记录中。 请务必在编码部分之前和之后包含 —–BEGIN CERTIFICATE----- 和 -----END CERTIFICATE-----
字符串。 所有这些内容都必须位于一个长行上。 更新 RDAP 的过程取决于您的 RIR:
- 对于 ARIN,请在您的地址范围的“Public comments”部分中添加证书。 请勿将其添加到您组织的评论部分。
- 对于 RIPE,将证书添加为地址范围的新“descr”字段。 请勿将其添加到您组织的评论部分。
- 对于 APNIC,请将公钥通过电子邮件发送至 helpdesk@apnic.net,以手动将其添加到您的地址范围的“remarks”字段中。使用 IP 地址的 APNIC 授权联系人发送电子邮件
3. 在 RIR 中创建 ROA 对象
创建 ROA 对象以授权 Amazon ASN 16509 和 14618 以及当前被授权公布该地址范围的 ASN 公布您的地址范围。 对于 AWS GovCloud(美国)区域,授权 ASN 8987。您必须将最大长度设置为您想要引入的最小前缀的大小(例如,/24)。 Amazon 最多可能需要 24 小时才能获得 ROA。 如需了解更多信息,请咨询您的 RIR:
- ARIN — ROA Requests
- RIPE — Managing ROAs
- APNIC — Route Management
在将广告从本地工作负载迁移到 AWS 之前,首先为现有自治系统编号 (ASN) 创建路由源授权 (ROA) 至关重要。 仅在为现有 ASN 创建 ROA 后,您才可以继续为 Amazon 的 ASN 创建 ROA。 不遵循此顺序可能会对您现有的路由和通告产生潜在影响。
注意:对于非公开通告的 IPv6 地址空间,ROA 不是必需的。
加入 BYOIP 的步骤
根据您的需求,BYOIP 的加入流程包含以下任务:
- 在 AWS 中配置公开公布的地址范围
- 配置未公开公布的 IPv6 地址范围
- 通过 AWS 公布地址范围
- 取消配置地址范围
在 AWS 中配置公开公布的地址范围
当您预置一个地址范围供 AWS 使用时,即表示您声明您拥有该地址范围的控制权,并授予 Amazon 对其进行广告宣传的授权。 为了验证您对地址范围的所有权,我们需要签名的授权消息。 此消息是使用您用于使用 X.509 证书更新 RDAP 记录的自签名 X.509 密钥对进行签名的。 AWS 要求提供经过加密签名的授权消息,然后将该消息提交给区域互联网注册机构 (RIR)。 RIR 根据您添加到 RDAP 的证书对签名进行身份验证,并根据路由源授权 (ROA) 交叉检查授权详细信息。 此验证过程可确保地址范围的合法所有权和正确处理。
提供地址范围
- 撰写信息。 编写明文授权消息。 消息格式如下,其中日期为消息的到期日期:
1|aws|account|cidr|YYYYMMDD|SHA256|RSAPSS
将帐号、地址范围和到期日期替换为您自己的值,以创建类似于以下内容的消息:text_message="1|aws|0123456789AB|198.51.100.0/24|20211231|SHA256|RSAPSS"
. 不要将其与 ROA 消息混淆,后者具有相似的外观。 - 签署消息。 使用您之前创建的私钥对纯文本消息进行签名。 此命令返回的签名是一个长字符串,您需要在下一步中使用它。
重要提示:我们建议您复制并粘贴此命令。 除消息内容外,请勿修改或替换任何值.signed_message=$( echo -n $text_message | openssl dgst -sha256 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -sign private-key.pem -keyform PEM | openssl base64 | tr -- '+=/' '-_~' | tr -d "\n")
.
- 提供地址. 使用 AWS CLI provision-byoip-cidr 命令。
--cidr-authorization-context
选项使用您之前创建的消息和签名字符串。
重要提示:如果与您的 AWS CLI configuration 不同,您必须指定应配置 BYOIP 范围的 AWS 区域Default region name.aws ec2 provision-byoip-cidr --cidr address-range --cidr-authorization-context Message="$text_message",Signature="$signed_message" --region us-east-1
配置地址范围是一个异步操作,因此调用会立即返回,但地址范围尚未准备好使用,直到其状态从pending-provision
变为provisioned
. - 监控进度。 完成配置过程最多可能需要一周时间。 使用命令监控进度 describe-byoip-cidrs ,如本例所示:
aws ec2 describe-byoip-cidrs --max-results 5 --region us-east-1
如果配置期间出现问题并且状态变为failed-provision
,则必须在问题解决后再次运行provision-byoip-cidr
命令。
配置未公开公布的 IPv6 地址范围
默认情况下,当您配置地址范围时,它会被设置为在互联网上公开公布。 但是,对于 IPv6 地址范围,您可以选择将其设置为非公开,这意味着它们不会在互联网上公布。 非公开广告路由的配置过程通常会在几分钟内完成。 当您将非公有 IPv6 CIDR 块与虚拟私有云 (VPC) 关联时,只能通过支持 IPv6 的混合连接选项 例如 AWS Direct Connect、AWS Site-to-Site VPN 或 Amazon VPC 传输网关。
对于非公共地址范围,无需在配置过程中创建路由源授权 (ROA)。
重要的:
您只能指定在配置期间是否公开公布地址范围。 您以后无法更改状态。要配置非公开通告的 IPv6 地址范围,请使用以下命令 provision-byoip-cidraws ec2 provision-byoip-cidr --cidr address-range --cidr-authorization-context Message="$text_message",Signature="$signed_message" --no-publicly-advertisable --region us-east-1
通过 AWS 公布地址范围
一旦配置了地址范围,就可以对其进行通告。 请务必注意,您必须公布所配置的确切地址范围,而不能仅公布其中的一部分。
如果您已配置不会公开公布的 IPv6 地址范围,则可以跳过此步骤。
在通过 AWS 公布地址范围之前,我们建议停止从其他位置公布其广告。 继续从其他位置通告相同的 IP 地址范围可能会导致不可靠的支持和故障排除。 为了确保平稳过渡,您可以将 AWS 资源配置为在公布之前使用地址池中的地址,然后同时停止从当前位置公布该地址并开始通过 AWS 公布该地址。 有关从地址池分配弹性IP地址的详细指导,请参阅“分配弹性IP地址”的说明。
局限性
- 即使每次指定不同的地址范围,您最多可以每 10 秒运行一次advertise-byoip-cidr 命令。
- 即使每次指定不同的地址范围,您最多可以每 10 秒运行一次withdraw-byoip-cidr 命令。
要通告地址范围,请使用以下命令advertise-byoip-cidr
aws ec2 advertise-byoip-cidr --cidr address-range --region us-east-1
要停止公布地址范围,请使用以下命令 withdraw-byoip-cidr
取消配置地址范围
要停止在 AWS 中使用您的地址范围,请首先释放所有弹性 IP 地址并取消关联仍从地址池分配的任何 IPv6 CIDR 块。 然后停止通告地址范围,最后取消配置地址范围。
您无法取消配置部分地址范围。 如果您想在 AWS 中使用更具体的地址范围,请取消配置整个地址范围并配置更具体的地址范围。
(IPv4) 要释放每个弹性 IP 地址,请使用以下命令 release-address
aws ec2 release-address --allocation-id eipalloc-12345678abcabcabc --region us-east-1
(IPv6) 要取消关联 IPv6 CIDR 块,请使用以下命令 disassociate-vpc-cidr-block
aws ec2 disassociate-vpc-cidr-block --association-id vpc-cidr-assoc-12345abcd1234abc1 --region us-east-1
要停止公布地址范围,请使用以下命令 withdraw-byoip-cidr
aws ec2 withdraw-byoip-cidr --cidr address-range --region us-east-1
要取消配置地址范围,请使用以下命令 deprovision-byoip-cidr
aws ec2 deprovision-byoip-cidr --cidr address-range --region us-east-1
取消配置地址范围最多可能需要一天的时间。
使用您的地址范围
您可以查看和使用您在帐户中配置的 IPv4 和 IPv6 地址范围。
IPv4 地址范围
您可以从 IPv4 地址池创建弹性 IP 地址并将其与您的 AWS 资源一起使用,例如 EC2 instances, NAT gateways, Network Load Balancers.
要查看有关您在账户中配置的 IPv4 地址池的信息,请使用以下命令describe-public-ipv4-pools
aws ec2 describe-public-ipv4-pools --region us-east-1
要从 IPv4 地址池创建弹性 IP 地址,请使用以下命令 allocate-address 。您可以使用--public-ipv4-pool
选项指定describe-byoip-cidrs
返回的地址池的ID。 或者,您可以使用 --address
选项指定您配置的地址范围中的地址。