如何解决我的 VPC 中的常见 BYOIP 配置错误?

3 分钟阅读
0

我想为我的 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 来完成确认。

浏览器示例

https://rpki-validator.ripe.net/json?select-prefix=X.X.X.X/{prefix-length}

**注意:**在前面的示例中,请将 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 部分。确保证书位于您的地址范围的备注字段中。

完成检查后,请完成下列任务:

  1. 如果没有证书,请创建一个新证书。然后,按照本文“解决方法”部分概述的步骤进行上传。
    如果有证书,请确保没有新行。如果有任何新行,请删除这些行,如以下示例所示:

    openssl req -new -x509 -key private.key -days 365 | tr -d "\n" > publickey.cer
  2. 验证证书是否有效。要执行此操作,请将证书内容复制到新文件中,然后运行以下命令:

    openssl x509 -in example.crt -text -noout

    如果您收到无法加载证书错误,请在 BEGIN CERTIFICATE 之后添加一个新行,在 END CERTIFICATE 之前再添加一行。

  3. 如果以上都不适用,则使用了错误的密钥对来生成证书。

错误: 在关联的互联网注册表中,IP 范围是无法接受的分配类型

以下是导致此错误的原因:

  • 地址范围的 RIR 分配类型错误。
  • 不支持注册表。

有五个区域互联网注册管理机构(RIR): AFRINIC、ARIN、APNIC、LACNIC 和 RIPE。AWS 支持 ARIN、RIPE 和 APNIC 注册前缀。

如需验证 RIR,请使用 WHOIS:

whois <public ip>

对于 RIPE: 确认 StatusALLOCATED PALEGACYASSIGNED PI

对于 ARIN: 验证 NetTypeDirect Allocation 还是 Direct Assignment

对于 APNIC: 确认 StatusALLOCATED 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 中预配公开播发的地址范围

相关信息

Amazon Elastic Compute Cloud(Amazon EC2)中的自带 IP 地址(BYOIP)

自带 IP

AWS 官方
AWS 官方已更新 10 个月前