绑定、解除绑定和移动公共地址范围

您可以使用控制台、CLI、API 和 Terraform 将公共地址范围绑定、解除绑定或移动到可用性区域中的 VPC。

准备工作

在绑定、解除绑定或移动公共地址范围之前,请仔细阅读以下要求和注意事项:

  • 确保审查公共广播范围的 规划注意事项
  • 公共地址范围的绑定必须包括 VPC 和可用性区域。
  • 使用公共地址范围时,必须在将地址范围绑定后 配置入站路由,以便将流量引导至相应的资源。 将地址范围绑定到 VPC 并不会自动将流量路由到该资源。

在控制台中绑定、取消绑定和移动公共地址范围

您可以在控制台中将公共地址范围绑定、解除绑定或移动到可用性区域中的 VPC。

在控制台中绑定公共地址范围

要在 IBM Cloud® 控制台中绑定公共地址范围,请按以下步骤操作:

  1. IBM Cloud 控制台,选择导航菜单 菜单图标,然后单击基础架构 VPC 图标 > 网络 > 公共地址范围。 出现“VPC 的公共地址范围”页面。
  2. 高亮显示表中地址范围的行,然后单击操作菜单操作图标 中的绑定
  3. “绑定公共地址范围”页面中,选择您要绑定该地址范围的 VPC 及其对应的可用区。
  4. 单击“**绑定 **”将公共地址范围绑定到 VPC。

在控制台中解除公共地址范围的绑定

要在 IBM Cloud 控制台中解除公共地址范围的绑定,请按以下步骤操作:

公共地址解除绑定后,仍被保留并可再次绑定。

  1. IBM Cloud 控制台,选择导航菜单 菜单图标,然后单击基础架构 VPC 图标 > 网络 > 公共地址范围。 出现“VPC 的公共地址范围”页面。
  2. 高亮显示表中地址范围的行,然后单击操作菜单操作图标 中的解除绑定
  3. 单击“解除绑定”确认要从 VPC 解除对该地址范围的绑定。

在控制台中移动公共地址范围

如果公共地址范围绑定到可用性区域中的 VPC,则可以更新并将其绑定(移动)到不同的 VPC 和可用性区域。 公共地址范围会自动从其 VPC 和可用性区域解除绑定,然后绑定到新指定的 VPC 和可用性区域。

您不需要先将地址范围从其原始目标解除绑定。

要在控制台中移动公共地址范围,请按照以下步骤操作:

  1. IBM Cloud 控制台,选择导航菜单 菜单图标,然后单击基础架构 VPC 图标 > 网络 > 公共地址范围。 出现“VPC 的公共地址范围”页面。
  2. 高亮显示表中地址范围的行,然后单击操作菜单操作图标 中的编辑
  3. “编辑公共地址范围”页面中,选择您要将地址范围迁移到的 VPC 及其可用区。
  4. 单击保存将公共地址范围绑定到新 VPC。

通过 CLI 绑定、取消绑定和移动公共地址范围

要从命令行绑定、取消绑定或移动保留的 IP 地址,请按照以下步骤操作:

  1. 设置 CLI 环境

  2. 登录 CLI 环境。 输入密码后,系统会提示您要使用哪个账户和地区:

    ibmcloud login --sso
    
  3. 启用以下功能标志:

    export IBMCLOUD_IS_FEATURE_PUBLIC_ADDRESS_RANGE=true
    

    当 IBM Cloud 命令行界面及其插件有更新可用时,您将在命令行中收到通知。 更新 CLI 以访问最新命令非常重要。 要检查所有已安装插件的当前版本,请运行 ibmcloud plugin list.

  4. 运行以下命令:

    ibmcloud is public-address-range-update PUBLIC_ADDRESS_RANGE [--name NAME] ([--vpc VPC --zone ZONE] | [--reset-target]) [--output JSON] [-q, --quiet]
    

    其中:

    PUBLIC_ADDRESS_RANGE
    要更新的公共地址范围的 ID 或名称。
    --name
    公共地址范围的新标识符(如果要重新命名)。
    --vpc
    您要将其公共地址范围附加到的 VPC。 在指定 --vpc 选项时,需要使用 --zone
    --zone
    您希望将此公网地址范围分配到的区域。 在指定 --zone 选项时,需要使用 --vpc
    --reset-target
    解除对公共地址范围的绑定。
    -f, --force
    强制执行该操作,无需确认。
    --output
    输出格式仅支持 JSON。 之一:JSON.
    -q, --quiet
    禁止冗长输出。

命令示例

如果公共地址没有绑定到 VPC,则可以将其绑定到任何可用性区域中的 VPC:

ibmcloud is public-address-range-update r006-81222eee-b3e0-4dc3-b429-aee9e5c0abf2 --name public-address-range-1 --vpc cli-test-vpc --zone us-south-1

从 VPC 解除对公共地址范围的绑定,使其保持未绑定状态:

ibmcloud is public-address-range-update r006-81222eee-b3e0-4dc3-b429-aee9e5c0abf2 --name public-address-range-1 --reset-target

将公共地址范围从一个 VPC 移到另一个:

ibmcloud is public-address-range-update r006-81222eee-b3e0-4dc3-b429-aee9e5c0abf2 --vpc cli-test-vpc --zone us-south-2

使用 API 绑定、解除绑定和移动公共地址范围

要使用 API 绑定、解除绑定或移动公共地址范围,请按照以下步骤操作:

  1. 设置 API 环境
  2. 在变量中存储以下值,以便在 API 命令中使用:

version (字符串):API 版本,格式为。YYYY-MM-DD

  1. 启动所有变量后,选择以下操作之一:

    • 将公共地址范围绑定到特定 VPC:
         curl -X PATCH \
                "$vpc_api_endpoint/v1/public_address_ranges/$par_id?version=$api_version&generation=2" \
                -H "Authorization: Bearer $iam_token" \
                -H "Content-Type: application/json" \
                -d '{
                      "target": {
                         "vpc": {
                            "id": "r006-4727d842-f94f-4a2d-824a-9bc9b02c523b"
                         },
                         "zone": {
                            "name": "us-south-2"
                         }
                      }
                   }'
    
  • 从特定 VPC 解除对公共地址范围的绑定:

      curl -X PATCH \
            "$vpc_api_endpoint/v1/public_address_ranges/$par_id?version=$api_version&generation=2" \
            -H "Authorization: Bearer $iam_token" \
            -H "Content-Type: application/json" \
            -d '{
                  "target": null
               }'
   ```
   公共地址解除绑定后,仍被保留,可以再次绑定。
   {: note}

* 将公共地址范围从一个 VPC 移到另一个:

```sh {: pre}
      curl -X PATCH \
            "$vpc_api_endpoint/v1/public_address_ranges/$par_id?version=$api_version&generation=2" \
            -H "Authorization: Bearer $iam_token" \
            -H "Content-Type: application/json" \
            -d '{
                  "target": {
                     "vpc": {
                        "id": "r006-9999aaaa-bbbb-cccc-dddd-1234567890ab"
                     },
                     "zone": {
                        "name": "us-south-3"
                     }
                  }
               }'
   ```
## 使用 Terraform 绑定、解除绑定和移动公共地址范围 {: #par-bind-unbind-terraform terraform}

要使用 Terraform 绑定、解除绑定或移动公共地址范围,请使用下面的示例:

```terraform {: codeblock}
resource "ibm_is_public_address_range" "public_address_range_instance" {
 ipv4_address_count = "16"
name = "example-public-address-range"
resource_group{
   id = "11caaa983d9c4beb82690daab08717e9"
}
target{
 vpc {
   id = ibm_is_vpc.testacc_vpc.id
 }
 zone {
   name = "us-south-3"
 }
}
}

相关链接