载入您在 Amazon EC2 中使用的地址范围 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

载入您在 Amazon EC2 中使用的地址范围

根据您的需求,BYOIP 的载入过程包括以下任务。

在 Amazon 中预置公开发布的地址范围

预置地址范围与 Amazon 配合使用时,您需要确认您控制该地址范围,并授权 Amazon 公告该地址范围。我们还会通过签名授权消息验证您控制该地址范围。该消息是使用在通过 X.509 证书更新 RDAP 记录时使用的自签名 X.509 密钥对签名的。Amazon 需要提供给 RIR 的加密签名授权消息。RIR 根据您添加到 RDAP 的证书验证签名,并根据 ROA 检查授权详细信息。

要预置地址范围
  1. 撰写消息

    撰写明文授权消息。消息的格式如下所示,其中,日期是消息的到期日期:

    1|aws|account|cidr|YYYYMMDD|SHA256|RSAPSS

    将账号、地址范围和到期日期替换为您自己的值,以创建类似于以下内容的消息:

    text_message="1|aws|0123456789AB|198.51.100.0/24|20211231|SHA256|RSAPSS"

    这不能与外观类似的 ROA 消息混淆。

  2. 对消息进行签名

    使用之前创建的私有密钥对明文消息进行签名。此命令返回的签名是一个长字符串,您需要在下一步中使用。

    重要

    我们建议您复制并粘贴此命令。除消息内容之外,不要修改或替换任何值。

    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")
  3. 预置地址

    使用 Amazon CLI provision-byoip-cidr 命令预置地址范围。--cidr-authorization-context 选项使用之前创建的消息和签名字符串。

    重要

    如果 BYOIP 范围与 Configure the Amazon CLI Default region name 不同,则您必须指定应在其中预置 BYOIP 范围的 Amazon 区域。

    aws ec2 provision-byoip-cidr --cidr address-range --cidr-authorization-context Message="$text_message",Signature="$signed_message" --region us-east-1

    预配置地址范围是一项异步操作,因此该调用会立即返回,但地址范围未准备就绪,直到其状态从 pending-provision 更改为 provisioned 才可供使用。

  4. 监控进度

    虽然大多数预配置将在两小时内完成,但对于公开发布的范围,完成预配置过程可能需要一周时间。使用 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 的混合连接选项(Amazon Direct ConnectAmazon Site-to-Site VPNAmazon VPC Transit Gateway)访问 IPv6 CIDR。

不需要使用 ROA 以预调配非公有地址范围。

重要
  • 只能指定在预置期间是否公开发布地址范围。您以后无法更改可发布状态。

  • Amazon VPC 不支持唯一本地地址(ULA)CIDR。所有 VPC 都必须具有唯一的 IPv6 CIDR。两个 VPC 不能具有相同的 IPv6 网域范围。

要预置不公开发布的 IPv6 地址范围,请使用以下 provision-byoip-cidr 命令。

aws ec2 provision-byoip-cidr --cidr address-range --cidr-authorization-context Message="$text_message",Signature="$signed_message" --no-publicly-advertisable --region us-east-1

通过 Amazon 公告地址范围

预配置地址范围后,即可对其进行公告。您必须公告预配置的确切地址范围。您不能只公告预配置的地址范围的一部分。

如果您预置不公告的 IPv6 地址范围,则无需完成该步骤。

在通过 Amazon 公告地址范围之前,建议您停止从其他位置公告该地址范围或该范围的任何部分。如果您一直从其他位置公告 IP 地址范围或该范围的任何部分,我们将无法为其提供可靠支持或解决问题。具体来说,我们无法保证到地址范围或该范围的一部分的流量进入我们的网络。

为最大限度地减少停机时间,您可以在公告之前将 Amazon 资源配置为使用地址池中的某一地址,然后停止从当前位置公告该地址并同时开始通过 Amazon 公告该地址。有关从地址池分配弹性 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 ec2 withdraw-byoip-cidr --cidr address-range --region us-east-1

取消预配置地址范围

要停止在 Amazon 上使用您的地址范围,请先释放任何弹性 IP 地址,并取消关联仍从地址池中分配的任何 IPv6 CIDR 块。接下来,停止公告该地址范围,并最终取消预置该地址范围。

您无法取消预置地址范围的一部分。如果要在 Amazon 上使用更具体的地址范围,请取消预置整个地址范围,并预置一个更具体的地址范围。

(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

取消预置地址范围最多可能需要一天的时间。

验证 BYOIP

  1. 验证自签名 x.509 密钥对

    通过 whois 命令验证证书是否已上传且有效。

    对于 ARIN,使用 whois -h whois.arin.net r + 2001:0DB8:6172::/48 查找地址范围的 RDAP 记录。检查命令输出中 NetRange(网络范围)的 Public Comments 部分。应将证书添加到地址范围的 Public Comments 部分。

    您可以使用以下命令检查包含证书的 Public Comments

    whois -h whois.arin.net r + 2001:0DB8:6172::/48 | grep Comments | grep BEGIN

    这会返回包含密钥内容的输出,应类似于以下内容:

    Public Comments: -----BEGIN CERTIFICATE----- MIID1zCCAr+gAwIBAgIUBkRPNSLrPqbRAFP8RDAHSP+I1TowDQYJKoZIhvcNAQE LBQAwezELMAkGA1UEBhMCTloxETAPBgNVBAgMCEF1Y2tsYW5kMREwDwYDVQQHDA hBdWNrbGFuZDEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczETMBEGA1UEC wwKQllPSVAgRGVtbzETMBEGA1UEAwwKQllPSVAgRGVtbzAeFw0yMTEyMDcyMDI0 NTRaFw0yMjEyMDcyMDI0NTRaMHsxCzAJBgNVBAYTAk5aMREwDwYDVQQIDAhBdWN rbGFuZDERMA8GA1UEBwwIQXVja2xhbmQxHDAaBgNVBAoME0FtYXpvbiBXZWIgU2 VydmljZXMxEzARBgNVBAsMCkJZT0lQIERlbW8xEzARBgNVBAMMCkJZT0lQIERlb W8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfmacvDp0wZ0ceiXXc R/q27mHI/U5HKt7SST4X2eAqufR9wXkfNanAEskgAseyFypwEEQr4CJijI/5hp9 prh+jsWHWwkFRoBRR9FBtwcU/45XDXLga7D3stsI5QesHVRwOaXUdprAnndaTug mDPkD0vrl475JWDSIm+PUxGWLy+60aBqiaZq35wU/x+wXlAqBXg4MZK2KoUu27k Yt2zhmy0S7Ky+oRfRJ9QbAiSu/RwhQbh5Mkp1ZnVIc7NqnhdeIW48QaYjhMlUEf xdaqYUinzz8KpjfADZ4Hvqj9jWZ/eXo/9b2rGlHWkJsbhr0VEUyAGu1bwkgcdww 3A7NjOxQbAgMBAAGjUzBRMB0GA1UdDgQWBBStFyujN6SYBr2glHpGt0XGF7GbGT AfBgNVHSMEGDAWgBStFyujN6SYBr2glHpGt0XGF7GbGTAPBgNVHRMBAf8EBTADA QH/MA0GCSqGSIb3DQEBCwUAA4IBAQBX6nn6YLhz521lfyVfxY0t6o3410bQAeAF 08ud+ICtmQ4IO4A4B7zV3zIVYr0clrOOaFyLxngwMYN0XY5tVhDQqk4/gmDNEKS Zy2QkX4Eg0YUWVzOyt6fPzjOvJLcsqc1hcF9wySL507XQz76Uk5cFypBOzbnk35 UkWrzA9KK97cXckfIESgK/k1N4ecwxwG6VQ8mBGqVpPpey+dXpzzzv1iBKN/VY4 ydjgH/LBfdTsVarmmy2vtWBxwrqkFvpdhSGCvRDl/qdO/GIDJi77dmZWkh/ic90 MNk1f38gs1jrCj8lThoar17Uo9y/Q5qJIsoNPyQrJRzqFU9F3FBjiPJF -----END CERTIFICATE-----

    对于 RIPE,使用 whois -r -h whois.ripe.net 2001:0DB8:7269::/48 查找地址范围的 RDAP 记录。检查命令输出中 inetnum 对象(网络范围)的 descr 部分。应将证书添加为地址范围的新 descr 字段。

    您可以使用以下命令检查包含证书的 descr

    whois -r -h whois.ripe.net 2001:0DB8:7269::/48 | grep descr | grep BEGIN

    这会返回包含密钥内容的输出,应类似于以下内容:

    descr: -----BEGIN CERTIFICATE-----MIID1zCCAr+gAwIBAgIUBkRPNSLrPqbRAFP8 RDAHSP+I1TowDQYJKoZIhvcNAQELBQAwezELMAkGA1UEBhMCTloxETAPBgNVBAg MCEF1Y2tsYW5kMREwDwYDVQQHDAhBdWNrbGFuZDEcMBoGA1UECgwTQW1hem9uIF dlYiBTZXJ2aWNlczETMBEGA1UECwwKQllPSVAgRGVtbzETMBEGA1UEAwwKQllPS VAgRGVtbzAeFw0yMTEyMDcyMDI0NTRaFw0yMjEyMDcyMDI0NTRaMHsxCzAJBgNV BAYTAk5aMREwDwYDVQQIDAhBdWNrbGFuZDERMA8GA1UEBwwIQXVja2xhbmQxHDA aBgNVBAoME0FtYXpvbiBXZWIgU2VydmljZXMxEzARBgNVBAsMCkJZT0lQIERlbW 8xEzARBgNVBAMMCkJZT0lQIERlbW8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwg gEKAoIBAQCfmacvDp0wZ0ceiXXcR/q27mHI/U5HKt7SST4X2eAqufR9wXkfNanA EskgAseyFypwEEQr4CJijI/5hp9prh+jsWHWwkFRoBRR9FBtwcU/45XDXLga7D3 stsI5QesHVRwOaXUdprAnndaTugmDPkD0vrl475JWDSIm+PUxGWLy+60aBqiaZq 35wU/x+wXlAqBXg4MZK2KoUu27kYt2zhmy0S7Ky+oRfRJ9QbAiSu/RwhQbh5Mkp 1ZnVIc7NqnhdeIW48QaYjhMlUEfxdaqYUinzz8KpjfADZ4Hvqj9jWZ/eXo/9b2r GlHWkJsbhr0VEUyAGu1bwkgcdww3A7NjOxQbAgMBAAGjUzBRMB0GA1UdDgQWBBS tFyujN6SYBr2glHpGt0XGF7GbGTAfBgNVHSMEGDAWgBStFyujN6SYBr2glHpGt0 XGF7GbGTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBX6nn6Y Lhz521lfyVfxY0t6o3410bQAeAF08ud+ICtmQ4IO4A4B7zV3zIVYr0clrOOaFyL xngwMYN0XY5tVhDQqk4/gmDNEKSZy2QkX4Eg0YUWVzOyt6fPzjOvJLcsqc1hcF9 wySL507XQz76Uk5cFypBOzbnk35UkWrzA9KK97cXckfIESgK/k1N4ecwxwG6VQ8 mBGqVpPpey+dXpzzzv1iBKN/VY4ydjgH/LBfdTsVarmmy2vtWBxwrqkFvpdhSGC vRDl/qdO/GIDJi77dmZWkh/ic90MNk1f38gs1jrCj8lThoar17Uo9y/Q5qJIsoN PyQrJRzqFU9F3FBjiPJF -----END CERTIFICATE-----

    对于 APNIC,使用 whois -h whois.apnic.net 2001:0DB8:6170::/48 查找 BYOIP 地址范围的 RDAP 记录。检查命令输出中 inetnum 对象(网络范围)的 remarks 部分。应将证书添加为地址范围的新 remarks 字段。

    您可以使用以下命令检查包含证书的 remarks

    whois -h whois.apnic.net 2001:0DB8:6170::/48 | grep remarks | grep BEGIN

    这会返回包含密钥内容的输出,应类似于以下内容:

    remarks: -----BEGIN CERTIFICATE----- MIID1zCCAr+gAwIBAgIUBkRPNSLrPqbRAFP8RDAHSP+I1TowDQYJKoZIhvcNAQE LBQAwezELMAkGA1UEBhMCTloxETAPBgNVBAgMCEF1Y2tsYW5kMREwDwYDVQQHDA hBdWNrbGFuZDEcMBoGA1UECgwTQW1hem9uIFdlYiBTZXJ2aWNlczETMBEGA1UEC wwKQllPSVAgRGVtbzETMBEGA1UEAwwKQllPSVAgRGVtbzAeFw0yMTEyMDcyMDI0 NTRaFw0yMjEyMDcyMDI0NTRaMHsxCzAJBgNVBAYTAk5aMREwDwYDVQQIDAhBdWN rbGFuZDERMA8GA1UEBwwIQXVja2xhbmQxHDAaBgNVBAoME0FtYXpvbiBXZWIgU2 VydmljZXMxEzARBgNVBAsMCkJZT0lQIERlbW8xEzARBgNVBAMMCkJZT0lQIERlb W8wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCfmacvDp0wZ0ceiXXc R/q27mHI/U5HKt7SST4X2eAqufR9wXkfNanAEskgAseyFypwEEQr4CJijI/5hp9 prh+jsWHWwkFRoBRR9FBtwcU/45XDXLga7D3stsI5QesHVRwOaXUdprAnndaTug mDPkD0vrl475JWDSIm+PUxGWLy+60aBqiaZq35wU/x+wXlAqBXg4MZK2KoUu27k Yt2zhmy0S7Ky+oRfRJ9QbAiSu/RwhQbh5Mkp1ZnVIc7NqnhdeIW48QaYjhMlUEf xdaqYUinzz8KpjfADZ4Hvqj9jWZ/eXo/9b2rGlHWkJsbhr0VEUyAGu1bwkgcdww 3A7NjOxQbAgMBAAGjUzBRMB0GA1UdDgQWBBStFyujN6SYBr2glHpGt0XGF7GbGT AfBgNVHSMEGDAWgBStFyujN6SYBr2glHpGt0XGF7GbGTAPBgNVHRMBAf8EBTADA QH/MA0GCSqGSIb3DQEBCwUAA4IBAQBX6nn6YLhz521lfyVfxY0t6o3410bQAeAF 08ud+ICtmQ4IO4A4B7zV3zIVYr0clrOOaFyLxngwMYN0XY5tVhDQqk4/gmDNEKS Zy2QkX4Eg0YUWVzOyt6fPzjOvJLcsqc1hcF9wySL507XQz76Uk5cFypBOzbnk35 UkWrzA9KK97cXckfIESgK/k1N4ecwxwG6VQ8mBGqVpPpey+dXpzzzv1iBKN/VY4 ydjgH/LBfdTsVarmmy2vtWBxwrqkFvpdhSGCvRDl/qdO/GIDJi77dmZWkh/ic90 MNk1f38gs1jrCj8lThoar17Uo9y/Q5qJIsoNPyQrJRzqFU9F3FBjiPJF -----END CERTIFICATE-----
  2. 验证 ROA 对象创建

    使用 RIPEstat Data API 验证 ROA 对象是否成功创建。请务必根据 Amazon ASN 16509 和 14618 以及当前授权公告地址范围的 ASN 来测试地址范围。

    您可以使用以下命令,通过地址范围检查不同 Amazon ASN 的 ROA 对象:

    curl --location --request GET "https://stat.ripe.net/data/rpki-validation/data.json?resource=ASN&prefix=CIDR

    在此示例输出中,Amazon ASN 16509 的响应结果为 "status": "valid"。这表示该地址范围的 ROA 对象已成功创建:

    { "messages": [], "see_also": [], "version": "0.3", "data_call_name": "rpki-validation", "data_call_status": "supported", "cached": false, "data": { "validating_roas": [ { "origin": "16509", "prefix": "2001:0DB8::/32", "max_length": 48, "validity": "valid" }, { "origin": "14618", "prefix": "2001:0DB8::/32", "max_length": 48, "validity": "invalid_asn" }, { "origin": "64496", "prefix": "2001:0DB8::/32", "max_length": 48, "validity": "invalid_asn" } ], "status": "valid", "validator": "routinator", "resource": "16509", "prefix": "2001:0DB8::/32" }, "query_id": "20230224152430-81e6384e-21ba-4a86-852a-31850787105f", "process_time": 58, "server_id": "app116", "build_version": "live.2023.2.1.142", "status": "ok", "status_code": 200, "time": "2023-02-24T15:24:30.773654" }

“unknown” 状态表示该地址范围的 ROA 对象尚未创建。“invalid_asn” 状态表示该地址范围的 ROA 对象尚未成功创建。