在 Amazon EC2 中使用您自己的 IP 地址 (BYOIP) - Amazon Elastic Compute Cloud

在 Amazon EC2 中使用您自己的 IP 地址 (BYOIP)

您可将自己的全部或部分可公开路由的 IPv4 或 IPv6 地址从本地网络引入到 AWS 账户中。您继续控制该地址范围,但 AWS 默认将其通告到互联网。在将地址范围引入 AWS 中之后,它会在您的 AWS 账户中显示为地址池。

有关支持 BYOIP 的区域的列表,请参阅 区域可用性

注意
  • 此页中的步骤说明了如何将您自己的 IP 地址范围仅用于 Amazon EC2。

  • 要在 AWS Global Accelerator 中使用自己的 IP 地址范围,请参阅《AWS Global Accelerator 开发人员指南》中的 自带 IP 地址(BYOIP)

  • 要将您自己的 IP 地址范围与 Amazon VPC IP Address Manager 结合使用,请参阅《Amazon VPC IPAM 用户指南》中的 教程:自带 IP 地址到 IPAM

BYOIP 定义

  • X.509 自签名证书:最常用于加密和验证网络内数据的证书标准。这是 AWS 用来验证从 RDAP 记录控制 IP 空间的证书。有关 X.509 证书的更多信息,请参阅 RFC 3280

  • 注册数据访问协议 (RDAP):查询注册数据的资源。其由客户更新,并由 AWS 用来验证对区域互联网注册机构 (RIR) 中地址空间的控制。

  • 路由来源授权 (ROA):由 RIR 创建的对象,供客户对特定自治系统中的 IP 播发进行身份验证。如需相关概览,请参阅 ARIN 网站上的路由来源授权 (ROA)

  • 本地互联网注册机构 (LIR):网络服务提供商等企业,从 RIR 为其客户分配 IP 地址数据块。

要求和配额

  • 必须在区域互联网注册表 (RIR) 中注册地址范围,例如 American Registry for Internet Numbers (ARIN)、Réseaux IP Européens Network Coordination Centre (RIPE) 或 Asia-Pacific Network Information Centre (APNIC)。它必须由企业或机构实体注册,而不能由个人注册。

  • 您可以引入的最具体 IPv4 地址范围是 /24。

  • 对于公开发布的 CIDR,您可以引入的最具体 IPv6 地址范围是 /48,对于不公开发布的 CIDR,您可以引入的最具体 IPv6 地址范围是 /56。

  • 不公开通告的 CIDR 范围不需要 ROA,但 RDAP 记录仍需更新。

  • 您可以将每个地址范围一次添加到一个区域中。

  • 对于每个区域,您可以将总共 5 个 BYOIP IPv4 和 IPv6 地址范围引入到您的 AWS 账户中。您无法使用服务限额控制台调整 BYOIP CIDR 的限额,但可以按照 AWS 一般参考 中的 AWS 服务限额所述,通过联系 AWS 支持中心来请求提高限额。

  • 您无法使用 AWS RAM 与其它账户共享您的 IP 地址范围,除非您使用 Amazon VPC IP 地址管理器 (IPAM) 并将 IPAM 与 AWS Organizations 集成。有关更多信息,请参阅 Amazon VPC IPAM 用户指南中的将 IPAM 与 AWS Organizations 集成

  • IP 地址范围中的地址必须具有干净的历史记录。我们可能会调查 IP 地址范围的声誉,并保留权利以拒绝包含的 IP 地址具有不良声誉或与恶意行为关联的 IP 地址范围。

  • 遗留地址空间是指在区域互联网注册机构(RIR)系统成立之前由互联网号码分配机构(IANA)的中央注册管理机构分配的 IPv4 地址空间,仍然需要相应的 ROA 对象。

  • 如果为 LIR,常见做法是通过手动过程更新记录。这可能需要几天的时间来部署,具体取决于 LIR。

  • 大型 CIDR 块需要单个 ROA 对象和 RDAP 记录。您可以使用单个对象和记录,将多个较小的 CIDR 块从该范围添加到 AWS,甚至可以跨多个区域添加。

  • Local Zones、Wavelength Zones 或 AWS Outposts 上不支持 BYOIP。

BYOIP 地址范围的载入先决条件

BYOIP 的载入过程分为两个阶段,您必须为此执行三个步骤。这些步骤与下图中描述的步骤相对应。我们在本文档中包含了手动操作步骤,但您的 RIR 可能会提供托管服务来帮助您完成这些步骤。

准备阶段

1. 为进行身份验证,请创建 RSA 密钥对并用其生成自签名 X.509 证书。此证书仅用于预调配阶段。

RIR 配置阶段

2. 将自签名证书上传到 RDAP 记录注释。

3. 在 RIR 中创建 ROA 对象。ROA 定义了所需的地址范围、允许通告地址范围的自治系统编号 (ASN) 以及向您 RIR 的资源公有密钥基础设施 (RPKI) 进行注册的到期日期。

注意

不公开发布的 IPv6 地址空间不需要 ROA。


                BYOIP 的载入过程有三个步骤。

要引入多个不连续地址范围,您必须对每个地址范围重复此过程。不过,如果在几个不同区域之间拆分连续数据块,则无需执行重复准备和 RIR 配置步骤。

引入地址范围不会影响您之前引入的任何地址范围。

载入地址范围之前,请完成以下先决条件。对于某些任务,您可以运行 Linux 命令。在 Windows 上,您可以使用适用于 Linux 的 Windows 子系统运行 Linux 命令。

1. 为 AWS 身份验证创建密钥对

使用以下过程创建自签名 X.509 证书,并将其添加到您的 RIR 的 RDAP 记录。此密钥对用于向 RIR 对地址范围进行身份验证。openssl 命令需要 OpenSSL 版本 1.0.2 或更高版本。

复制以下命令并仅替换占位符值(以彩色斜体文本显示)。

创建自签名 X.509 证书并将其添加到 RDAP 记录

此过程遵循加密私有 RSA 密钥并要求使用通行短语来访问该密钥的最佳实践。

  1. 生成 RSA 2048 位密钥对,如下所示。

    $ openssl genpkey -aes256 -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private-key.pem

    -aes256 参数指定用于加密私有密钥的算法。该命令返回以下输出,包括设置通行短语的提示:

    ......+++ .+++ Enter PEM pass phrase: xxxxxxx Verifying - Enter PEM pass phrase: xxxxxxx

    您可以使用以下命令检查密钥:

    $ openssl pkey -in private-key.pem -text

    这会返回通行短语提示和密钥内容,应类似于以下内容:

    Enter pass phrase for private-key.pem: xxxxxxx -----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFBXHRI4HVKAhh 3seiciooizCRTbJe1+YsxNTja4XyKypVGIFWDGhZs44FCHlPOOSVJ+NqP74w96oM 7DPS3xo9kaQyZBFn2YEp2EBq5vf307KHNRmZZUmkn0zHOSEpNmY2fMxISBxewlxR FAniwmSd/8TDvHJMY9FvAIvWuTsv5l0tJKk+a91K4+tO3UdDR7Sno5WXExfsBrW3 g1ydo3TBsx8i5/YiVOcNApy7ge2/FiwY3aCXJB6r6nuF6H8mRgI4r4vkMRsOlAhJ DnZPNeweboo+K3Q3lwbgbmOKD/z9svk8N/+hUTBtIX0fRtbG+PLIw3xWRHGrMSn2 BzsPVuDLAgMBAAECggEACiJUj2hfJkKv47Dc3es3Zex67A5uDVjXmxfox2Xhdupn fAcNqAptV6fXt0SPUNbhUxbBKNbshoJGufFwXPli1SXnpzvkdU4Hyco4zgbhXFsE RNYjYfOGzTPwdBLpNMB6k3Tp4RHse6dNrlH0jDhpioL8cQEBdBJyVF5X0wymEbmV mC0jgH/MxsBAPWW6ZKicg9ULMlWiAZ3MRAZPjHHgpYkAAsUWKAbCBwVQcVjGO59W jfZjzTX5pQtVVH68ruciH88DTZCwjCkjBhxg+OIkJBLE5wkh82jIHSivZ63flwLw z+E0+HhELSZJrn2MY6Jxmik3qNNUOF/Z+3msdj2luQKBgQDjwlC/3jxp8zJy6P8o JQKv7TdvMwUj4VSWOHZBHLv4evJaaia0uQjIo1UDa8AYitqhX1NmCCehGH8yuXj/ v6V3CzMKDkmRr1NrONnSz5QsndQ04Z6ihAQlPmJ96g4wKtgoC7AYpyP0g1a+4/sj b1+o3YQI4pD/F71c+qaztH7PRwKBgQDdc23yNmT3+Jyptf0fKjEvONK+xwUKzi9c L/OzBq5yOIC1Pz2T85gOe1i8kwZws+xlpG6uBT6lmIJELd0k59FyupNu4dPvX5SD 6GGqdx4jk9KvI74usGeOBohmF0phTHkrWKBxXiyT0oS8zjnJlEn8ysIpGgO28jjr LpaHNZ/MXQKBgQDfLNcnS0LzpsS2aK0tzyZU8SMyqVHOGMxj7quhneBq2T6FbiLD T9TVlYaGNZ0j71vQaLI19qOubWymbautH0Op5KV8owdf4+bf1/NJaPIOzhDUSIjD Qo01WW31Z9XDSRhKFTnWzmCjBdeIcajyzf10YKsycaAW9lItu8aBrMndnQKBgQDb nNp/JyRwqjOrNljk7DHEs+SD39kHQzzCfqd+dnTPv2sc06+cpym3yulQcbokULpy fmRo3bin/pvJQ3aZX/Bdh9woTXqhXDdrrSwWInVYMQPyPk8f/D9mIOJp5FUWMwHD U+whIZSxsEeE+jtixlWtheKRYkQmzQZXbWdIhYyI3QKBgD+F/6wcZ85QW8nAUykA 3WrSIx/3cwDGdm4NRGct8ZOZjTHjiy9ojMOD1L7iMhRQ/3k3hUsin5LDMp/ryWGG x4uIaLat40kiC7T4I66DM7P59euqdz3w0PD+VU+h7GSivvsFDdySUt7bNK0AUVLh dMJfWxDN8QV0b5p3WuWH1U8B -----END PRIVATE KEY----- Private-Key: (2048 bit) modulus: 00:c5:05:71:d1:23:81:d5:28:08:61:de:c7:a2:72: 2a:28:8b:30:91:4d:b2:5e:d7:e6:2c:c4:d4:e3:6b: 85:f2:2b:2a:55:18:81:56:0c:68:59:b3:8e:05:08: 79:4f:38:e4:95:27:e3:6a:3f:be:30:f7:aa:0c:ec: 33:d2:df:1a:3d:91:a4:32:64:11:67:d9:81:29:d8: 40:6a:e6:f7:f7:d3:b2:87:35:19:99:65:49:a4:9f: 4c:c7:39:21:29:36:66:36:7c:cc:48:48:1c:5e:c2: 5c:51:14:09:e2:c2:64:9d:ff:c4:c3:bc:72:4c:63: d1:6f:00:8b:d6:b9:3b:2f:e6:5d:2d:24:a9:3e:6b: dd:4a:e3:eb:4e:dd:47:43:47:b4:a7:a3:95:97:13: 17:ec:06:b5:b7:83:5c:9d:a3:74:c1:b3:1f:22:e7: f6:22:54:e7:0d:02:9c:bb:81:ed:bf:16:2c:18:dd: a0:97:24:1e:ab:ea:7b:85:e8:7f:26:46:02:38:af: 8b:e4:31:1b:0e:94:08:49:0e:76:4f:35:ec:1e:6e: 8a:3e:2b:74:37:97:06:e0:6e:63:8a:0f:fc:fd:b2: f9:3c:37:ff:a1:51:30:6d:21:7d:1f:46:d6:c6:f8: f2:c8:c3:7c:56:44:71:ab:31:29:f6:07:3b:0f:56: e0:cb publicExponent: 65537 (0x10001) privateExponent: 0a:22:54:8f:68:5f:26:42:af:e3:b0:dc:dd:eb:37: 65:ec:7a:ec:0e:6e:0d:58:d7:9b:17:e8:c7:65:e1: 76:ea:67:7c:07:0d:a8:0a:6d:57:a7:d7:b7:44:8f: 50:d6:e1:53:16:c1:28:d6:ec:86:82:46:b9:f1:70: 5c:f9:62:d5:25:e7:a7:3b:e4:75:4e:07:c9:ca:38: ce:06:e1:5c:5b:04:44:d6:23:61:f3:86:cd:33:f0: 74:12:e9:34:c0:7a:93:74:e9:e1:11:ec:7b:a7:4d: ae:51:f4:8c:38:69:8a:82:fc:71:01:01:74:12:72: 54:5e:57:d3:0c:a6:11:b9:95:98:2d:23:80:7f:cc: c6:c0:40:3d:65:ba:64:a8:9c:83:d5:0b:32:55:a2: 01:9d:cc:44:06:4f:8c:71:e0:a5:89:00:02:c5:16: 28:06:c2:07:05:50:71:58:c6:3b:9f:56:8d:f6:63: cd:35:f9:a5:0b:55:54:7e:bc:ae:e7:22:1f:cf:03: 4d:90:b0:8c:29:23:06:1c:60:f8:e2:24:24:12:c4: e7:09:21:f3:68:c8:1d:28:af:67:ad:df:97:02:f0: cf:e1:34:f8:78:44:2d:26:49:ae:7d:8c:63:a2:71: 9a:29:37:a8:d3:54:38:5f:d9:fb:79:ac:76:3d:a5: b9 prime1: 00:e3:c2:50:bf:de:3c:69:f3:32:72:e8:ff:28:25: 02:af:ed:37:6f:33:05:23:e1:54:96:38:76:41:1c: bb:f8:7a:f2:5a:6a:26:b4:b9:08:c8:a3:55:03:6b: c0:18:8a:da:a1:5f:53:66:08:27:a1:18:7f:32:b9: 78:ff:bf:a5:77:0b:33:0a:0e:49:91:af:53:6b:38: d9:d2:cf:94:2c:9d:d4:34:e1:9e:a2:84:04:25:3e: 62:7d:ea:0e:30:2a:d8:28:0b:b0:18:a7:23:f4:83: 56:be:e3:fb:23:6f:5f:a8:dd:84:08:e2:90:ff:17: bd:5c:fa:a6:b3:b4:7e:cf:47 prime2: 00:dd:73:6d:f2:36:64:f7:f8:9c:a9:b5:fd:1f:2a: 31:2f:38:d2:be:c7:05:0a:ce:2f:5c:2f:f3:b3:06: ae:72:38:80:b5:3f:3d:93:f3:98:0e:7b:58:bc:93: 06:70:b3:ec:65:a4:6e:ae:05:3e:a5:98:82:44:2d: dd:24:e7:d1:72:ba:93:6e:e1:d3:ef:5f:94:83:e8: 61:aa:77:1e:23:93:d2:af:23:be:2e:b0:67:8e:06: 88:66:17:4a:61:4c:79:2b:58:a0:71:5e:2c:93:d2: 84:bc:ce:39:c9:94:49:fc:ca:c2:29:1a:03:b6:f2: 38:eb:2e:96:87:35:9f:cc:5d exponent1: 00:df:2c:d7:27:4b:42:f3:a6:c4:b6:68:ad:2d:cf: 26:54:f1:23:32:a9:51:ce:18:cc:63:ee:ab:a1:9d: e0:6a:d9:3e:85:6e:22:c3:4f:d4:d5:95:86:86:35: 9d:23:ef:5b:d0:68:b2:35:f6:a3:ae:6d:6c:a6:6d: ab:ad:1f:43:a9:e4:a5:7c:a3:07:5f:e3:e6:df:d7: f3:49:68:f2:0e:ce:10:d4:48:88:c3:42:8d:35:59: 6d:f5:67:d5:c3:49:18:4a:15:39:d6:ce:60:a3:05: d7:88:71:a8:f2:cd:fd:74:60:ab:32:71:a0:16:f6: 52:2d:bb:c6:81:ac:c9:dd:9d exponent2: 00:db:9c:da:7f:27:24:70:aa:33:ab:36:58:e4:ec: 31:c4:b3:e4:83:df:d9:07:43:3c:c2:7e:a7:7e:76: 74:cf:bf:6b:1c:d3:af:9c:a7:29:b7:ca:e9:50:71: ba:24:50:ba:72:7e:64:68:dd:b8:a7:fe:9b:c9:43: 76:99:5f:f0:5d:87:dc:28:4d:7a:a1:5c:37:6b:ad: 2c:16:22:75:58:31:03:f2:3e:4f:1f:fc:3f:66:20: e2:69:e4:55:16:33:01:c3:53:ec:21:21:94:b1:b0: 47:84:fa:3b:62:c6:55:ad:85:e2:91:62:44:26:cd: 06:57:6d:67:48:85:8c:88:dd coefficient: 3f:85:ff:ac:1c:67:ce:50:5b:c9:c0:53:29:00:dd: 6a:d2:23:1f:f7:73:00:c6:76:6e:0d:44:67:2d:f1: 93:99:8d:31:e3:8b:2f:68:8c:c3:83:d4:be:e2:32: 14:50:ff:79:37:85:4b:22:9f:92:c3:32:9f:eb:c9: 61:86:c7:8b:88:68:b6:ad:e3:49:22:0b:b4:f8:23: ae:83:33:b3:f9:f5:eb:aa:77:3d:f0:d0:f0:fe:55: 4f:a1:ec:64:a2:be:fb:05:0d:dc:92:52:de:db:34: ad:00:51:52:e1:74:c2:5f:5b:10:cd:f1:05:74:6f: 9a:77:5a:e5:87:d5:4f:01

    当您的私有密钥不用时,请将其保存在安全位置。

  2. 从私有密钥生成您的公有密钥,如下所示。稍后您将使用此功能来测试您的签名授权消息是否已正确验证。

    $ openssl rsa -in private-key.pem -pubout > public-key.pem

    检查时,您的公有密钥应如下所示:

    $ cat public-key.pem -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxQVx0SOB1SgIYd7HonIq KIswkU2yXtfmLMTU42uF8isqVRiBVgxoWbOOBQh5TzjklSfjaj++MPeqDOwz0t8a PZGkMmQRZ9mBKdhAaub399OyhzUZmWVJpJ9MxzkhKTZmNnzMSEgcXsJcURQJ4sJk nf/Ew7xyTGPRbwCL1rk7L+ZdLSSpPmvdSuPrTt1HQ0e0p6OVlxMX7Aa1t4NcnaN0 wbMfIuf2IlTnDQKcu4HtvxYsGN2glyQeq+p7heh/JkYCOK+L5DEbDpQISQ52TzXs Hm6KPit0N5cG4G5jig/8/bL5PDf/oVEwbSF9H0bWxvjyyMN8VkRxqzEp9gc7D1bg ywIDAQAB -----END PUBLIC KEY-----
  3. 使用之前创建的密钥对生成 X.509 证书。在此示例中,该证书在 365 天后过期,在此日期后它将不能是受信任的。请务必相应地设置到期时间。tr -d "\n" 命令从输出中删除换行符。您需要在出现提示时提供公用名称,但其他字段可以留空。

    $ openssl req -new -x509 -key private-key.pem -days 365 | tr -d "\n" > certificate.pem

    这会产生类似于下述信息的输出:

    Enter pass phrase for private-key.pem: xxxxxxx You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) []: State or Province Name (full name) []: Locality Name (eg, city) []: Organization Name (eg, company) []: Organizational Unit Name (eg, section) []: Common Name (eg, fully qualified host name) []:example.com Email Address []:
    注意

    AWS 预置不需要公用名。其可以是任何内部或公有域名。

    您可以使用以下命令检查证书:

    $ cat certificate.pem

    输出应该是一个没有换行符的 PEM 编码的长字符串,前面是 -----BEGIN CERTIFICATE-----,后面是 -----END CERTIFICATE-----

2. 将 RDAP 记录上传到 RIR

将之前创建的证书添加到 RIR 的 RDAP 记录。请务必在编码部分前后包含 -----BEGIN CERTIFICATE----------END CERTIFICATE----- 字符串。所有这些内容必须都在单个长线上。更新 RDAP 的过程取决于您的 RIR:

  • 对于 ARIN,在地址范围的“Public Comments (公共注释)”部分中添加证书。请勿将其添加到您组织的注释部分。

  • 对于 RIPE,将证书添加为地址范围的“描述”字段。请勿将其添加到您组织的注释部分。

  • 对于 APNIC,通过电子邮件将证书发送到 helpdesk@apnic.net,以手动将其添加到您的地址范围的“remarks”(备注)字段中。请以 IP 地址的 APNIC 授权联系人身份发送电子邮件。

完成下方预调配阶段后,可从 RIR 的记录中删除证书。

3. 在 RIR 中创建 ROA 对象

创建 ROA 对象以授权 Amazon ASN 16509 和 14618 来发布您的地址范围,以及当前授权的 ASN 来发布该地址范围。对于 AWS GovCloud (US) Regions,授权 ASN 8987。您必须将最大长度设置为您要引入的 CIDR 的大小。您可以引入的最具体 IPv4 前缀是 /24。对于公开发布的 CIDR,您可以引入的最具体 IPv6 地址范围是 /48,对于不公开发布的 CIDR,您可以引入的最具体 IPv6 地址范围是 /56。

重要

如果您正在为 Amazon VPC IP Address Manager (IPAM) 创建 ROA 对象,则在创建 ROA 时,对于 IPv4 CIDR,必须将 IP 地址前缀的最大长度设置为 /24。对于 IPv6 CIDR,如果要将它们添加到可传播池中,IP 地址前缀的最大长度必须为 /48。这可以确保您有充分的灵活性来跨 AWS 区域划分您的公有 IP 地址。IPAM 强制执行您设置的最大长度。有关通向 IPAM 的 BYOIP 地址的更多信息,请参阅《Amazon VPC IPAM 用户指南》中的教程:通向 IPAM 的 BYOIP 地址 CIDR

若要 ROA 可用于 Amazon,可能需要多达 24 小时的时间。有关更多信息,请参阅 RIR:

将广告从本地工作负载迁移到 AWS 时,在为 Amazon 的 ASN 创建 ROA 之前,您必须为现有的 ASN 创建 ROA。否则,您可能会看到对现有路由和广告的影响。

注意

不公开通告的 IPv6 地址空间不需要此步骤。

载入 BYOIP

根据您的需求,BYOIP 的载入过程具有以下任务:

在 AWS 中预置公开通告的地址范围

预置地址范围与 AWS 配合使用时,您需要确认您控制该地址范围,并授权亚马逊发布该地址范围。我们还会通过签名授权消息验证您控制该地址范围。该消息是使用在通过 X.509 证书更新 RDAP 记录时使用的自签名 X.509 密钥对签名的。AWS 需要提供给 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. 预置地址

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

    重要

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

    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 地址范围

默认情况下,将预置一个地址范围以公开发布到 Internet 上。您可以预置不公开发布的 IPv6 地址范围。对于不可公开通告的路由,预置过程通常在几分钟内完成。如果将非公有地址范围的 IPv6 CIDR 块与 VPC 关联,则只能通过支持 IPv6 的混合连接选项(AWS Direct ConnectAWS 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

通过 AWS 发布地址范围

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

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

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

为最大限度地减少停机时间,您可以在发布之前将 AWS 资源配置为使用地址池中的某一地址,然后停止从当前位置发布该地址并同时开始通过 AWS 发布该地址。有关从地址池分配弹性 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

取消预配置地址范围

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

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

(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

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

使用地址范围

您可以查看和使用在您的账户中预置的 IPv4 和 IPv6 地址范围。

IPv4 地址范围

您可以从 IPv4 地址池中创建弹性 IP 地址,并将其用于您的 AWS 资源,如 EC2 实例、NAT 网关和 Network Load Balancer。

要查看有关在您的账户中预置的 IPv4 地址池的信息,请使用以下 describe-public-ipv4-pools 命令。

aws ec2 describe-public-ipv4-pools --region us-east-1

要从 IPv4 地址池中创建弹性 IP 地址,请使用 allocate-address 命令。您可以使用 --public-ipv4-pool 选项指定 describe-byoip-cidrs 返回的地址池的 ID。或者,您可以使用 --address 选项从您预置的地址范围中指定一个地址。

IPv6 地址范围

要查看有关在您的账户中预置的 IPv6 地址池的信息,请使用以下 describe-ipv6-pools 命令。

aws ec2 describe-ipv6-pools --region us-east-1

要创建 VPC 并从 IPv6 地址池中指定 IPv6 CIDR,请使用以下 create-vpc 命令。要让 Amazon 从 IPv6 地址池中选择 IPv6 CIDR,请省略 --ipv6-cidr-block 选项。

aws ec2 create-vpc --cidr-block 10.0.0.0/16 --ipv6-cidr-block ipv6-cidr --ipv6-pool pool-id --region us-east-1

要将 IPv6 地址池中的 IPv6 CIDR 块与 VPC 关联,请使用以下 associate-vpc-cidr-block 命令。要让 Amazon 从 IPv6 地址池中选择 IPv6 CIDR,请省略 --ipv6-cidr-block 选项。

aws ec2 associate-vpc-cidr-block --vpc-id vpc-123456789abc123ab --ipv6-cidr-block ipv6-cidr --ipv6-pool pool-id --region us-east-1

要查看 VPC 和关联的 IPv6 地址池信息,请使用 describe-vpcs 命令。要查看有关特定 IPv6 地址池中的关联 IPv6 CIDR 块的信息,请使用以下 get-associated-ipv6-pool-cidrs 命令。

aws ec2 get-associated-ipv6-pool-cidrs --pool-id pool-id --region us-east-1

如果将 IPv6 CIDR 块与 VPC 取消关联,则会将其释放回 IPv6 地址池中。

验证 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 对象尚未成功创建。

区域可用性

BYOIP 功能目前已在非洲(开普敦)、亚太地区(香港)、亚太地区(海得拉巴)、亚太地区(雅加达)、亚太地区(孟买)、亚太地区(大阪)、亚太地区(悉尼)、亚太地区(东京)、亚太地区(首尔)、亚太地区(新加坡)、加拿大(中部)、欧洲地区(都柏林)、欧洲地区(法兰克福)、欧洲地区(伦敦)、欧洲地区(米兰)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)、中东(巴林)、中东(阿联酋)、南美洲(圣保罗)、美国西部(北加利福尼亚)、美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(俄勒冈州)、Amazon GovCloud(美国西部)和 Amazon GovCloud(美国东部)区域开放。

了解更多信息

有关更多信息,请参阅 AWS 在线技术研讨会深入了解自带 IP