View a markdown version of this page

教程:为 BYOIP 前缀设置委派的 RPKI - Amazon Virtual Private Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)。

教程:为 BYOIP 前缀设置委派的 RPKI

本教程从头到尾介绍所有 BGP 路由保护功能。您可以在任何步骤后停止并使用到目前为止设置的内容。步骤 1 和 2 不需要 RIR 交互。步骤 3 及后续步骤需要使用 RIR 进行一次性设置。有关 BGP 路由保护概念、套餐要求和支持的 RIR 的背景,请参阅监控 BGP 路由保护。

先决条件

  • 在高级套餐中创建的 IPAM。

  • 向 IPAM 池预置了一个或多个 BYOIP 前缀。

  • 可访问区域互联网注册机构账户(ARIN、RIPE、APNIC 或 LACNIC)。

步骤 1:查看 BGP 路由

向 IPAM 预置 BYOIP 前缀后,即可在集中式控制面板中查看所有广播路由。

Amazon Management Console
查看 BGP 路由
  1. 在 https://console.aws.amazon.com/ipam/ 中打开 IPAM 控制台。

  2. 在导航窗格中,选择 IPAM,然后选择您的 IPAM。

  3. 在监控下,选择路由监控。

控制面板显示所有 BYOIP 路由,包括前缀、区域设置、广播状态、ASN、RPKI 有效性、ROA 强度和路由重叠。

Command line

使用 get-ipam-discovered-routes 查看发现的路由。此命令适用于免费套餐和高级套餐客户。

aws ec2 get-ipam-discovered-routes \ --ipam-resource-discovery-id ipam-res-disco-0365d2977fc1672fe \ --resource-region us-west-2

下面是示例输出。

{ "IpamDiscoveredRoutes": [ { "IpamResourceDiscoveryId": "ipam-res-disco-0365d2977fc1672fe", "ResourceRegion": "us-west-2", "ResourceOwnerId": "123456789012", "Cidr": "203.0.113.0/24", "Asn": "64512", "State": "advertised", "AdvertisementType": "regional", "NetworkBorderGroup": "us-west-2", "PoolId": "ipv4pool-ec2-0a1b2c3d4e5f6g7h8", "IpamPoolId": "ipam-pool-0da89c821626f1e4b", "SampleTime": "2026-03-10T15:30:00+00:00" } ] }

步骤 2:查看路由保护调查发现

对于高级套餐客户,IPAM 会根据发布的 ROA 数据评估路由,并通过 get-ipam-route-protection-findings 显示调查发现。

注意

get-ipam-route-protection-findings 需要高级套餐。免费套餐客户会收到 UnsupportedOperation 错误。

  1. 列出所有调查发现。

    aws ec2 get-ipam-route-protection-findings \ --ipam-id ipam-0a1b2c3d4e5f6g7h8
  2. 筛选无效或缺失的 ROA。

    aws ec2 get-ipam-route-protection-findings \ --ipam-id ipam-0a1b2c3d4e5f6g7h8 \ --filters "Name=rpki-status,Values=invalid,unknown"
  3. 按特定区域的状态进行筛选。

    aws ec2 get-ipam-route-protection-findings \ --ipam-id ipam-0a1b2c3d4e5f6g7h8 \ --filters "Name=rpki-status,Values=invalid" "Name=resource-region,Values=us-west-2"

下面是示例输出。

{ "IpamId": "ipam-0a1b2c3d4e5f6g7h8", "RouteProtectionFindings": [ { "ResourceOwnerId": "123456789012", "ResourceRegion": "us-west-2", "IpamPoolId": "ipam-pool-0da89c821626f1e4b", "Cidr": "203.0.113.0/24", "State": "advertised", "AdvertisementType": "regional", "NetworkBorderGroup": "us-west-2", "PoolId": "ipv4pool-ec2-0a1b2c3d4e5f6g7h8", "Asn": "64512", "RpkiStatus": "valid", "RpkiStrength": "strict", "Roas": [ { "Asn": "64512", "Prefix": "203.0.113.0/24", "MaxLength": 24, "Match": true, "Expiration": "2027-06-15T00:00:00Z" } ], "RouteOverlaps": [ { "Prefix": "203.0.113.128/25", "Asn": "64513", "DetectedAt": "2026-03-10T15:45:00+00:00" } ], "SampleTime": "2026-03-10T15:30:00+00:00", "RoaSampleTime": "2026-03-10T16:00:00+00:00" } ] }

有效的筛选条件名称为 cidr、account-id、resource-region、byoip-cidr-state、advertisement-type、network-border-group、ipam-pool-id、rpki-status 和 asn。这些 EC2 风格的筛选条件名称并不总是与返回的字段匹配。例如,您按 account-id 进行筛选,但响应返回 ResourceOwnerId;您按 byoip-cidr-state 进行筛选,但字段是 State。ROA 强度不可筛选。

步骤 3:设置委派的 RPKI

委派的 RPKI 允许您授权 Amazon 代表您管理 ROA。

  1. 创建互联网注册机构关联。

    aws ec2 create-ipam-internet-registry-association --region us-east-1 \ --ipam-id ipam-0de83dba6694560a9 \ --rir ARIN --org-handle my-arin-org

    下面是示例输出。

    { "IpamInternetRegistryAssociation": { "IpamInternetRegistryAssociationId": "ipam-internet-registry-assoc-036486dfa6af58ee0", "State": "create-in-progress" } }

    运行以下命令,直到状态变为 pending-enable。

    aws ec2 describe-ipam-internet-registry-associations --region us-east-1 \ --ipam-internet-registry-association-ids ipam-internet-registry-assoc-036486dfa6af58ee0

    一旦状态为 pending-enable,ChildRequestXml 即可提交给您的 RIR。IPAM 根据公共 VRP(已验证的 ROA 有效载荷)数据暂存 ROA。它们处于待处理状态,将在启用互联网注册机构关联后激活。

  2. 查看暂存的 ROA。

    aws ec2 get-ipam-route-origin-authorizations --region us-east-1 \ --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0

    下面是示例输出。

    { "Roas": [ { "prefix": "18.96.0.0/14", "asn": "77221", "maxLength": "24", "state": "pending-activate" } ] }
  3. 启用互联网注册机构关联。

    将 ChildRequestXML 带到您的 RIR 门户并提交委派请求。RIR 返回父响应 XML。从该响应提取下面的字段:RpkiVersion、ServiceUri、ChildHandle、ParentHandle 和 ParentBpkiTa。然后调用以下命令。

    aws ec2 enable-ipam-internet-registry-association --region us-east-1 \ --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \ --rpki-version "..." \ --service-uri "..." \ --child-handle "..." \ --parent-handle "..." \ --parent-bpki-ta "..."

    下面是示例输出。

    { "IpamInternetRegistryAssociation": { "IpamInternetRegistryAssociationId": "ipam-internet-registry-assoc-036486dfa6af58ee0", "State": "enable-in-progress" } }

    运行以下命令,直到状态变为 enable-complete。

    aws ec2 describe-ipam-internet-registry-associations --region us-east-1 \ --ipam-internet-registry-association-ids ipam-internet-registry-assoc-036486dfa6af58ee0

    一旦状态为 enable-complete,暂存的 ROA 将转换为 create-complete。Amazon 现在管理此关联下所有 CIDR 的 ROA 生命周期。

  4. 查看关联的 CIDR。

    aws ec2 get-ipam-internet-registry-association-cidrs --region us-east-1 \ --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0

    下面是示例输出。

    { "IpamInternetRegistryAssociationCidrs": [ { "Cidr": "18.96.0.0/14", "LastObservedAt": "2026-07-30T18:00:00.000Z" } ] }
  5. 查看关联的 ASN。

    aws ec2 get-ipam-internet-registry-association-asns --region us-east-1 \ --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0

    下面是示例输出。

    { "IpamInternetRegistryAssociationAsns": [ { "Asn": "77221", "LastObservedAt": "2026-07-30T18:00:00.000Z" } ] }

步骤 4:预置 BYOIP 并自动创建 ROA

通过激活委派的 RPKI,可以简化预置。

之前(没有委派的 RPKI) 之后(具有委派的 RPKI)
必须提供 --cidr-authorization-context 仍然传递 --cidr-authorization-context,但具有 Message="CoveredByInternetRegistryAssociation",Signature="",无需签名消息
必须通过 WHOIS 或 DNS TXT 记录进行验证 不需要:IPAM 根据关联 CIDR 进行验证
广播之前必须在 RIR 手动创建 ROA 预置时自动创建 ROA
到期之前必须手动续订 ROA Amazon 自动续订:无需任何操作
aws ec2 provision-ipam-pool-cidr \ --cidr 18.97.16.0/24 \ --ipam-pool-id ipam-pool-0da89c821626f1e4b \ --cidr-authorization-context Message="CoveredByInternetRegistryAssociation",Signature="" \ --region us-east-1

IPAM 通过互联网注册机构关联验证所有权,并创建与池的区域设置和 ASN 匹配的严格 ROA。没有手动 ROA 步骤。

步骤 5:管理本地前缀的 ROA

对于未引入 Amazon 的 IP 空间,请使用路由策略注册(RPR)。

  1. 创建 RPR。

    aws ec2 create-ipam-routing-policy-registration --region us-east-1 \ --ipam-id ipam-0de83dba6694560a9 \ --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \ --cidr 18.96.0.0/14 --asns 77221,13446 \ --permit-more-specific-announcements

    下面是示例输出。

    { "deltaId": "0130c368-1f8c-4283-8f16-66e67e633086", "state": "PENDING" }
  2. 检查增量状态。如果更改会使现有路由失效,则会失败并出现错误。请使用 --force 进行覆盖。

    aws ec2 get-ipam-routing-policy-registration-deltas --region us-east-1 \ --ipam-id ipam-0de83dba6694560a9 \ --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \ --delta-id 0130c368-1f8c-4283-8f16-66e67e633086
  3. 批量更新(原子)。批量更新以原子方式成功或失败。不会部分应用。

    aws ec2 batch-modify-ipam-routing-policy-registrations --region us-east-1 \ --ipam-id ipam-0de83dba6694560a9 \ --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \ --delta-json file://delta.json

    其中 delta.json 包含以下内容。

    { "Add": [ { "prefix": "18.96.0.0/14", "asns": ["77221", "13446"], "permit-more-specific-announcements": "false" } ], "Delete": [ { "prefix": "18.97.16.0/24", "asns": ["77221", "13446"], "permit-more-specific-announcements": "false" } ] }
  4. 查看关联的所有注册。

    aws ec2 get-ipam-routing-policy-registrations --region us-east-1 \ --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0

    下面是示例输出。

    { "IpamRoutingPolicyRegistrations": [ { "Cidr": "18.96.0.0/14", "Asns": ["77221", "13446"], "PermitMoreSpecificAnnouncements": false, "MaxLength": 14, "LatestDeltaId": "0130c368-1f8c-4283-8f16-66e67e633086", "State": "create-complete" }, { "Cidr": "18.97.16.0/24", "Asns": ["77221", "13446"], "PermitMoreSpecificAnnouncements": false, "MaxLength": 24, "LatestDeltaId": "0130c368-1f8c-4283-8f16-66e67e633086", "State": "create-complete" } ] }
  5. 筛选到特定前缀。

    aws ec2 get-ipam-routing-policy-registrations --region us-east-1 \ --ipam-internet-registry-association-id ipam-internet-registry-assoc-036486dfa6af58ee0 \ --cidr 18.96.0.0/14

步骤 6:为路由异常设置 CloudWatch 警报

IPAM 针对每个 BYOIP 路由向全局 IPAM 账户发布 CloudWatch 指标。RoaExpiration 指标将发布到 AWS/IPAM 命名空间,包含 Cidr、RoaPrefix、Asn 和 MaxLength 维度。

类型 名称 描述
指标 RoaExpiration ROA 到期前的天数
维度 Asn 前缀的 ASN
维度 Cidr 通过 BYOIP 引入的 CIDR
维度 MaxLength 来自 ROA 的 MaxLength
维度 RoaPrefix 来自 ROA 的前缀

由于 RoaExpiration 会报告 ROA 到期前的剩余天数,因此当该值降至阈值或低于阈值时,应触发警报。指定全部四个维度以针对单个 ROA。请在发布该指标的同一账户和区域内创建警报。

aws cloudwatch put-metric-alarm --region us-east-1 \ --alarm-name "IPAM-RoaExpiration-203.0.113.0-24" \ --alarm-description "Alert when the ROA for 203.0.113.0/24 is within 30 days of expiration" \ --namespace "AWS/IPAM" \ --metric-name RoaExpiration \ --dimensions Name=Cidr,Value=203.0.113.0/24 Name=RoaPrefix,Value=203.0.113.0/24 Name=Asn,Value=64512 Name=MaxLength,Value=24 \ --statistic Minimum \ --period 86400 \ --evaluation-periods 1 \ --threshold 30 \ --comparison-operator LessThanOrEqualToThreshold \ --treat-missing-data notBreaching \ --alarm-actions arn:aws:sns:us-east-1:123456789012:roa-expiry-notifications

资源清理

要移除委派的 RPKI 资源,请执行下面的操作:

  1. 删除所有路由策略注册。

  2. 取消与互联网注册机构关联的关联。

  3. (可选)在 RIR 门户中移除授权。

重要

删除互联网注册机构关联会移除该关联的所有 Amazon 托管 ROA。在取消关联之前,请确保路由具有备用 ROA 覆盖范围。