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

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

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

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

要查看 Windows 实例的 BYOOIP 信息,请转到《适用于 Windows 实例的 Amazon EC2 用户指南》中的此页面:在 Amazon EC2 中使用您自己的 IP 地址(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

  • 自治系统号(ASN)是一种全局唯一标识符,它定义了一组 IP 前缀,这些前缀由一个或多个维护单一、明确定义的路由策略的网络运营商运行。

  • 区域互联网注册机构(RIR)是管理世界某个区域内 IP 地址和 ASN 的分配和注册的组织。

  • 注册数据访问协议(RDAP):用于查询 RIR 中当前注册数据的只读协议。查询的 RIR 数据库中的条目称为“RDAP 记录”。某些记录类型需要客户通过 RIR 提供的机制进行更新。这些记录将由 AWS 查询以验证对 RIR 中地址空间的控制。

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

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

要求和配额

  • 地址范围必须在您所在的区域互联网注册机构(RIR)注册。有关地理区域的任何策略,请咨询您的 RIR。BYOIP 目前支持在美国互联网号码注册机构(ARIN)、欧洲 IP 资源网络协调中心(RIPE)或亚太网络信息中心(APNIC)注册。它必须由企业或机构实体注册,而不能由个人注册。

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

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

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

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

  • 对于每个 AWS 区域,您可以将总共 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,甚至可以跨多个 AWS 区域添加。

  • Wavelength 区域或 AWS Outposts 上不支持 BYOIP。

  • 不要在 RADb 对 BYOIP 或任何其他 IRR 进行任何手动更改。BYOIP 将自动更新 RADb。任何包含 BYOIP ASN 的手动更改都将导致 BYOIP 预置操作失败。

  • 将 IPv4 地址范围设置为 AWS 后,您可以使用该范围内的所有 IP 地址,包括第一个地址(网络地址)和最后一个地址(广播地址)。

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

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

准备阶段

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

RIR 配置阶段

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

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

注意

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

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

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

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

重要

载入地址范围之前,请完成以下先决条件。本节中的任务需要 Linux 终端,可以使用 Linux、AWS CloudShell适用于 Linux 的 Windows 子系统来执行。

1. 创建私有密钥并生成 X.509 证书

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

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

此过程遵循加密私有 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. 使用上一步中创建的私有密钥生成 X.509 证书。在此示例中,该证书在 365 天后过期,在此日期后它将不能是受信任的。请务必相应地设置到期时间。证书必须仅在预调配过程中有效。预调配完成后,可以从 RIR 的记录中删除证书。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. 将 X.509 证书上传到 RIR 中的 RDAP 记录

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

  • 对于 ARIN,使用客户经理门户,在代表您地址范围的“网络信息”对象的“公共注释”部分中添加证书。请勿将其添加到您组织的注释部分。

  • 对于 RIPE,将证书作为新的“descr”字段添加到代表您地址范围的“inetnum”或“inet6num”对象中。通常可在 RIPE 数据库门户的“我的资源”部分中了解到相关信息。请勿将其添加到您所在组织的注释部分或上述对象的“备注”字段中。

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

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

3. 在 RIR 中创建 ROA 对象

创建 ROA 对象以授权 Amazon ASN 16509 和 14618 来公告您的地址范围,以及当前授权的 ASN 来发布该地址范围。对于 AWS GovCloud (US) Regions,请授权 ASN 8987 而不是 16509 和 14618。您必须将最大长度设置为您要引入的 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。否则,您可能会看到对现有路由和公告的影响。

重要

为了让 Amazon 能够公告并持续公告您的 IP 地址范围,您使用 Amazon ASN 的 ROA 必须符合上述指南。如果 ROA 无效或不符合上述指南,则 Amazon 保留停止公告您的 IP 地址范围的权利。

注意

不公开发布的 IPv6 地址空间不需要完成此步骤。

载入 BYOIP

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

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

预置地址范围与 AWS 配合使用时,您需要确认您控制该地址范围,并授权 Amazon 公告该地址范围。我们还会通过签名授权消息验证您控制该地址范围。该消息是使用在通过 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 地址范围

默认情况下,将预置一个地址范围以公开发布到互联网上。您可以预置不公开发布的 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 功能目前适用于除中国区域以外的所有商业 AWS 区域

本地区域可用性

本地区域是在地理上靠近您的用户的 AWS 区域的扩展。本地区域分组为“网络边界组”。在 AWS 中,网络边界组是一组可用区(AZ)、本地区域或 Wavelength 区域(AWS 可从中公告公有 IP 地址)。本地区域的网络边界组可能与 AWS 区域中的可用区不同,以确保 AWS 网络与访问这些区域中资源的客户之间,保持最低延迟或最短物理距离。

您可以使用 --network-border-group 选项将 BYOIPv4 地址范围预置到以下本地区域网络边界组,并在该边界组中进行公告:

  • us-east-1-dfw-2

  • us-west-2-lax-1

  • us-west-2-phx-2

如果启用了“本地区域”(请参阅启用本地区域),则在预置和公告 BYOIPv4 CIDR 时,可以为本地区域选择网络边界组。请谨慎选择网络边界组,因为 EIP 及其关联的 AWS 资源必须位于同一个网络边界组中。

注意

此时无法在本地区域中设置或公告 BYOIPv6 地址范围。

了解更多信息

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