载入您在 Amazon EC2 中使用的地址范围
根据您的需求,BYOIP 的载入过程包括以下任务。
在 Amazon 中预置公开发布的地址范围
预置地址范围与 Amazon 配合使用时,您需要确认您控制该地址范围,并授权 Amazon 公告该地址范围。我们还会通过签名授权消息验证您控制该地址范围。该消息是使用在通过 X.509 证书更新 RDAP 记录时使用的自签名 X.509 密钥对签名的。Amazon 需要提供给 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")
-
预置地址
使用 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" --regionus-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 的混合连接选项(Amazon Direct Connect、Amazon Site-to-Site VPN 或 Amazon 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 --regionus-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
--regionus-east-1
要停止公告地址范围,请使用以下 withdraw-byoip-cidr 命令。
aws ec2 withdraw-byoip-cidr --cidr
address-range
--regionus-east-1
取消预配置地址范围
要停止在 Amazon 上使用您的地址范围,请先释放任何弹性 IP 地址,并取消关联仍从地址池中分配的任何 IPv6 CIDR 块。接下来,停止公告该地址范围,并最终取消预置该地址范围。
您无法取消预置地址范围的一部分。如果要在 Amazon 上使用更具体的地址范围,请取消预置整个地址范围,并预置一个更具体的地址范围。
(IPv4) 要释放每个弹性 IP 地址,请使用以下 release-address 命令。
aws ec2 release-address --allocation-id
eipalloc-12345678abcabcabc
--regionus-east-1
(IPv6) 要取消关联 IPv6 CIDR 块,请使用以下 disassociate-vpc-cidr-block 命令。
aws ec2 disassociate-vpc-cidr-block --association-id
vpc-cidr-assoc-12345abcd1234abc1
--regionus-east-1
要停止公告地址范围,请使用以下 withdraw-byoip-cidr 命令。
aws ec2 withdraw-byoip-cidr --cidr
address-range
--regionus-east-1
要取消预置地址范围,请使用以下 deprovision-byoip-cidr 命令。
aws ec2 deprovision-byoip-cidr --cidr
address-range
--regionus-east-1
取消预置地址范围最多可能需要一天的时间。
验证 BYOIP
-
验证自签名 x.509 密钥对
通过 whois 命令验证证书是否已上传且有效。
对于 ARIN,使用
whois -h whois.arin.net r +
查找地址范围的 RDAP 记录。检查命令输出中2001:0DB8:6172::/48
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
查找地址范围的 RDAP 记录。检查命令输出中2001:0DB8:7269::/48
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
查找 BYOIP 地址范围的 RDAP 记录。检查命令输出中2001:0DB8:6170::/48
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-----
-
验证 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 对象尚未成功创建。