关于保留 IP
VPC 上的保留 IP 功能允许您保留 IP 地址以用于资源。 您可以指定一个特定地址,也可以让系统选择任何可用地址。 您还可以使用或不使用要与地址绑定的目标进行新的 IP 预留。
准备工作
保留 IP 是子网的子资源。 Identity and Access Management (IAM) 当前不支持子资源,因此保留的 IP 会从子网“继承”许可权。
要查看保留 IP 所需的 IAM 许可权,请参阅 子网调用。
VPC 不支持分段 IP 包。 分段包被丢弃在边缘。
保留 IP 已知问题
以下问题适用于保留 IP。 这些问题将在未来发行版中解决。
问题: 绑定到 VPN 网关,IKS 工作程序节点或 DNS 服务实例的保留 IP 地址将显示为没有目标 (检索保留 IP 资源时不包含 target
属性)。
因此,此类保留 IP 地址可能显示为未绑定。 尽管这些保留 IP 地址似乎未绑定,但在删除其目标资源之前,无法删除这些保留 IP 地址。
在控制台中,标记为“未绑定”的保留 IP 地址可能与无法显示的资源绑定。
问题: 元数据 API 目前不支持保留 IP。
变通方法: 继续使用 primary_ipv4_address
属性来检索实例上每个网络接口的 IP 地址。 请参阅 VPC 元数据 API。
问题: 使用 VPC API 列示裸机服务器网络接口上的浮动 IP 地址 时,可能会获取与裸机服务器网络接口关联的浮动 IP 地址的不完整列表。
在网络接口 status
为 available
之前,与裸机网络接口关联的浮动 IP 不可用。
解决方法
- 在列出接口上的浮动 IP 地址之前,请等待裸机服务器网络接口为
available
。 - 列出所有浮动 IP 以查看与尚未
available
的裸机服务器接口相关联的 IP。
在控制台中创建保留 IP
要创建保留 IP,请按照以下步骤操作:
- 从IBM Cloud菜单中选择基础架构>网络>子网。
- 选择一个现有子网,或创建一个新的子网。
- 单击“保留的 IP”选项卡。
- 单击创建 +。
以下部分描述了如何使用具有不同属性的保留 IP 地址。
创建未关联的保留 IP
要创建未关联的保留 IP,请执行以下步骤:
- 输入保留 IP 的名称。 请确保使用不带空格的小写字母数字字符作为名称。
- 选择是要让系统为您自动选择保留 IP,从现有保留 IP 列表中选择,还是自行输入一个。
- 如果需要特定 IP 地址 (可选),请选择地址。
- 单击 保留 IP。
删除保留 IP
要使用用户界面删除(释放)保留 IP,请导航至子网 > 保留 IP,然后单击要删除的保留 IP 旁边的操作菜单。 选择发布。
使用 CLI 中的保留 IP
您可以使用 CLI 来创建,更新和删除保留的 IP 地址。
开始之前,请 设置 CLI 环境。
从 CLI 创建保留 IP
要使用 CLI 保留 VPC 专用 IP 地址,请运行以下命令:
ibmcloud is subnet-reserved-ip-create SUBNET [--vpc VPC] [--name NAME] [--address IPADDRESS] [--auto-delete true | false] [--target TARGET] [--output JSON] [-q, --quiet]
其中:
- SUBNET 是子网的标识。
- -- vpc 是 VPC 的 ID 或名称。 只有当您想在此 VPC 中按名称指定唯一资源时,才需要使用此选项。
-
- -name 是用户为该保留 IP 定义的名称。 名称在预留 IP 所在的子网中必须是唯一的。 以
ibm-
开头的名称保留给提供商所有的资源。
- -name 是用户为该保留 IP 定义的名称。 名称在预留 IP 所在的子网中必须是唯一的。 以
- --address 是要保留的 IP 地址,该地址不能在子网上被保留。 如果未指定,则将自动选择子网上的可用地址。
- -- auto-delete 确定自动删除功能的设置方式。 如果设置为
true
,则删除目标时会自动删除此保留 IP。true
和false
之一 (缺省值:true
)。 -
- -目标是保留 IP 的目标。
- -- output 指定输出格式; 仅支持 JSON。
- -q, --quiet 会抑制冗长输出。
从 CLI 更新保留 IP
要从 CLI 更新保留 IP,请运行以下命令:
ibmcloud is subnet-reserved-ip-update SUBNET RESERVED_IP [--vpc VPC] [--name NEW_NAME] [--auto-delete true | false] [--output JSON] [-q, --quiet]
其中:
- SUBNET 是子网的标识。
- RESERVED_IP 是保留 IP 的标识。
- -- vpc 是 VPC 的 ID 或名称。 只有当您想在此 VPC 中按名称指定唯一资源时,才需要使用该选项。
-
- -name 是保留 IP 的新名称。
- -- auto-delete 确定自动删除功能的设置方式。 如果设置为
true
,则删除目标时会自动删除此保留 IP。true
和false
之一 (缺省值:true
)。 - -- output 指定输出格式; 仅支持 JSON。
- -q, --quiet 会抑制冗长输出。
从 CLI 中删除保留 IP
要从 CLI 中删除保留 IP,必须取消该保留 IP 的绑定。 取消绑定保留 IP 后,运行以下命令以将其删除:
ibmcloud is subnet-reserved-ip-delete SUBNET (RESERVED_IP1 RESERVED_IP2 ...) [--vpc VPC] [-f, --force] [--output JSON] [-q, --quiet]
其中:
- SUBNET 是子网的标识。
- RESERVED_IP1 RESERVED_IP2 是保留 IP 的标识。 您可以指定一个或多个。
- -- vpc 是 VPC 的 ID 或名称。 只有当您想在此 VPC 中按名称指定唯一资源时,才需要使用该选项。
-
- -force,-f 不经确认强制执行操作。
- -- output 指定输出格式; 仅支持 JSON。
- -q, --quiet 会抑制冗长输出。
使用 API
要使用 API 创建保留 IP,请执行以下步骤:
-
设置 API 环境。
-
创建子网。
-
将子网标识存储在要在 API 命令中使用的变量中:
export SubnetId=<your_subnet_id>
-
创建保留 IP,并 (可选) 在
address
属性中指定和地址:
curl -X POST -sH "Authorization:${iam_token}" \
"$vpc_api_endpoint/v1/subnets/$SubnetId/reserved_ips?version=$api_version&generation=2" \
-d '{"name": "test-reserved-ip", "address": "10.240.0.15"}' | jq
jq
jq
可能不会预装在创建实例时可用的所有 VPC 映像 中。 在使用前,您可能需要安装 jq
或使用您选择的其他解析器。
删除保留 IP
使用以下 API 来删除保留 IP:
curl -X DELETE -sH "Authorization:${iam_token}" \
"$vpc_api_endpoint/v1/subnets/$SubnetId/reserved_ips/$ReservedIpId?version=$api_version&generation=2"
- API 不允许您删除绑定到主网络接口的保留 IP。 虚拟服务器实例必须具有主网络接口,并且所有网络接口都必须具有保留 IP。
- 绑定到辅助网络接口的保留 IP 可以绑定到各种资源,包括但不限于:
- 网络接口
- 虚拟专用端点 (VPE)
- 负载均衡器
- VPN 网关
- IKS 工作程序
- DNS Services 实例
- 如果自动删除属性设置为
true
,那么取消绑定保留 IP 将删除保留 IP。
禁用自动删除时
如果创建保留 IP 而不将其绑定,那么缺省情况下将禁用自动删除。 未绑定的保留 IP 不能启用自动删除。
当自动删除选项关闭时,取消绑定将保留的 IP 保留在原位置,但不会删除保留的 IP。
启用自动删除时
如果在未指定保留 IP 的情况下创建虚拟服务器实例,那么系统会为您创建保留 IP 并将其绑定到主网络接口。 在此场景中,缺省情况下会启用自动删除功能。
当开启自动删除选项时,从其目标取消绑定保留 IP 会导致删除保留 IP。
保留的 IP 可能需要几分钟才能删除。