如何解决我的 VPC 中的常见 BYOIP 配置错误?
我想为我的 Amazon Virtual Private Cloud(Amazon VPC)配置自带 IP(BYOIP)。
简短描述
下面是您在 VPC 中配置 BYOIP 时经常发生的错误:
- CIDR 和 Amazon 自治系统号(ASN)的路由源授权(ROA)无效或找不到。
- 在 WHOIS 备注中未找到 X509 证书。
- 在关联的互联网注册表中,IP 范围不是可接受的分配类型。
- 无法使用区域互联网注册管理机构(RIR)记录中的 X509 证书验证 CidrAuthorizationContext 签名。
- 您的 IP 地址停滞在待预配状态。
解决方法
错误: CIDR 和 Amazon ASN 的 ROA 无效或找不到
**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新版本的 AWS CLI。
创建 ROA 以授权 Amazon ASN 16509 和 14618 播发您的地址范围。ROA 最多需要 24 小时才能将 ASN 提供给 Amazon。
要确认 ROA 创建和 ASN 映射,请使用 RIPE 中的 rpki-validator。使用浏览器或命令行中的 curl 来完成确认。
浏览器示例
**
**注意:**在前面的示例中,请将 X.X.X.X/{prefix-length} 替换为您的地址范围。
命令行示例
curl https://rpki-validator.ripe.net/json?select-prefix=X.X.X.X/{prefix-length}
**注意:**在前面的示例中,请将 X.X.X.X/{prefix-length} 替换为您的地址范围。
有效输出示例:
{ "metadata": { "generated": 1685008213, "generatedTime": "2023-05-25T09:50:13Z" }, "roas": [ { "asn": "AS14618", "prefix": "X.X.X.X/{prefix-length}", "maxLength": X, "ta": "arin" }, { "asn": "AS16509", "prefix": "X.X.X.X/{prefix-length}", "maxLength": X, "ta": "arin" } ] }
无效输出示例:
{ "metadata": { "generated": 1685008305, "generatedTime": "2023-05-25T09:51:45Z" }, "roas": [ ] }
要避免此错误,请完成下列任务:
- 在使用期间,ROA 必须对两个 ASN 都有效。它还必须特定于您带入 AWS 的地址范围。有关详细信息,请参阅自带 IP(BYOIP)简介中的“准备 IP 地址范围”部分。
- 在创建 ROA 后等待 24 小时后再重新预配。
错误: 在 WHOIS 备注中未找到 X509 证书
此错误的常见原因包括下列原因:
- RIR 的 RDAP 记录中没有证书。
- 证书中有换行符。
- 证书无效。
- 证书不是从有效的密钥对生成的。
确保正确创建和上传证书。有关详细信息,请参阅创建用于 AWS 身份验证的密钥对。
如需解决此错误,请验证上传的证书是否有效。使用 WHOIS 检查 RIR 中网络范围的记录。
对于 ARIN:
whois -a <Public IP>
检查 NetRange(网络范围)的注释部分。将证书添加到您地址范围的公共注释部分。
对于 RIPE:
whois -r <Public IP>
检查 WHOIS 显示中 inetnum 对象(网络范围)的 descr 部分。将证书添加到地址范围的 desc 字段。
对于 APNIC:
whois -A <Public IP>
检查 WHOIS 显示中 inetnum 对象(网络范围)的 remarks 部分。确保证书位于您的地址范围的备注字段中。
完成检查后,请完成下列任务:
-
如果没有证书,请创建一个新证书。然后,按照本文“解决方法”部分概述的步骤进行上传。
如果有证书,请确保没有新行。如果有任何新行,请删除这些行,如以下示例所示:openssl req -new -x509 -key private.key -days 365 | tr -d "\n" > publickey.cer
-
验证证书是否有效。要执行此操作,请将证书内容复制到新文件中,然后运行以下命令:
openssl x509 -in example.crt -text -noout
如果您收到无法加载证书错误,请在 BEGIN CERTIFICATE 之后添加一个新行,在 END CERTIFICATE 之前再添加一行。
-
如果以上都不适用,则使用了错误的密钥对来生成证书。
错误: 在关联的互联网注册表中,IP 范围是无法接受的分配类型
以下是导致此错误的原因:
- 地址范围的 RIR 分配类型错误。
- 不支持注册表。
有五个区域互联网注册管理机构(RIR): AFRINIC、ARIN、APNIC、LACNIC 和 RIPE。AWS 支持 ARIN、RIPE 和 APNIC 注册前缀。
如需验证 RIR,请使用 WHOIS:
whois <public ip>
对于 RIPE: 确认 Status 为 ALLOCATED PA、LEGACY 或 ASSIGNED PI。
对于 ARIN: 验证 NetType 是 Direct Allocation 还是 Direct Assignment。
对于 APNIC: 确认 Status 为 ALLOCATED PORTABLE 还是 ASSIGNED PORTABLE。
注意:有些注释可能会指出此块中的地址不可移植。此注释进一步确认 RIR 无法预配该地址范围。
出现上述错误的原因如下:
- Status(对于 RIPE 和 APNIC)或 NetType(对于 ARIN)不是上一节中列出的任何状态。
- 不支持注册表。
错误: 无法使用 RIR 记录中的 X509 证书验证 CidrAuthorizationContext 签名
当您预配地址范围时,AWS 必须验证 API 调用的签名。AWS 使用从证书中派生的公钥来验证 aws ec2 provision-byoip-cidr API 调用中的签名。此错误表示无法以加密方式验证签名。
以下是导致此错误的常见原因:
- 当您进行预配时,您使用的签名不正确。
- 你用错误的私钥签署了消息。
- 您使用 RIR 在 RDAP 记录中上传了错误的证书
错误: 您的 IP 地址停滞在“待预配”状态。
完成可公开播发范围的预配过程最多需要一周时间。使用 describe-byoip-cidrs 命令监控进度,如以下示例所示:
aws ec2 describe-byoip-cidrs --max-results 5 --region us-east-1
如果状态更改为 failed-provision,请在解决问题后再次运行 provision-byoip-cidr 命令。
有关详细信息,请参阅在 AWS 中预配公开播发的地址范围。
相关信息
相关内容
- AWS 官方已更新 3 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 年前