IBM Cloud Docs
启用 VPC 作为 DNS 中心

启用 VPC 作为 DNS 中心

您可以启用 VPC 作为 DNS 中心,以便其他 VPC 可以使用此 VPC 创建 DNS 解析绑定,并在启用了 DNS 解析绑定的情况下集中用于 VPE 网关的 DNS 解析。

准备工作

您可以使用控制台、CLI、API 或 Terraform 将 VPC 启用为 DNS 中心。

在控制台中将 VPC 启用为 DNS 中心

要在 IBM Cloud 控制台中启用 VPC 作为 DNS 中心,请执行以下步骤:

  1. 从浏览器打开 IBM Cloud 控制台并登录账户。

  2. 选择导航菜单 图标,然后单击基础架构 > 网络 > VPC

  3. 单击要指定为 DNS 中心 VPC 的虚拟私有云的链接。 将显示“概述”页面。

  4. 滚动到页面末尾的“可选 DNS 设置”部分,然后展开 DNS 中心部分并启用 DNS 中心开关。

    现在,“虚拟私有云”表在指定中心 VPC 的名称旁边显示 DNS-hub 标记。

从 CLI 启用 VPC 作为 DNS 中心

要使用 CLI 将 VPC 启用为 DNS 中心,请执行以下步骤:

  1. 设置 CLI 环境

  2. 使用 CLI 登录您的账户。 输入密码后,系统会询问要使用的帐户和区域:

    ibmcloud login --sso
    
  3. 为 VPC 启用 DNS 中心并指定解析器类型:

    ibmcloud is vpc-create my-cli-vpc [--dns-enable-hub true] [--dns-resolver-type manual] [--dns-resolver-manual-servers  MANUAL_SERVERS | @MANUAL_SERVERS]
    

    其中:

    --dns-enable-hub
    指示是否将此 VPC 作为 DNS 名称解析中心启用。 其中一个: falsetrue
    --dns-resolver-type
    表示要使用的 DNS 解析器类型。 其中一个: system (缺省值),manual
    --dns-resolver-manual-servers
    解析器类型为 manual 时有效。 为 VPC 配置手动 DNS 服务器地址。JSON 或 JSON 文件中的 MANUAL_SERVERS|@MANUAL_SERVERS 手动服务器。

使用 API 将 VPC 启用为 DNS 中心

要使用 API 将 VPC 启用为 DNS 中心,请执行以下步骤:

  1. 设置 API 环境

  2. 要启用现有 VPC 作为 DNS 中心,请输入以下命令:

    curl -X PATCH -sH "Authorization:${iam_token}" "${vpc_api_endpoint}/v1/vpcs/${vpc_id}?version=${api_version}&generation=2" -d '{"dns": {"enable_hub": true}}'
    
  3. 要创建具有缺省 DNS 服务器的中心 VPC,请输入以下命令:

    curl -X POST -sH "Authorization:${iam_token}" "${vpc_api_endpoint}/v1/vpcs?version=$api_version&generation=2" -d '{"name": "test-hub", "dns": {"enable_hub": true}, "resource_group": {"id": "'$ResourceGroupId'"}}'
    

有关更多信息,请参阅 创建 VPC API。

样本输出:


  "classic_access": false,
  "created_at": "2019-01-27T14:39:40Z",
  "crn": "crn:[...]",
  "default_network_acl": {
    "crn": "crn:[...]",
    "href": "https://us-south.iaas.cloud.ibm.com/v1/network_acls/dcfd9b64-9119-48ea-8697-23f9f5fb6bd6",
    "id": "dcfd9b64-9119-48ea-8697-23f9f5fb6bd6",
    "name": "my-network-acl"
  },
  "default_routing_table": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/vpcs/2a842e76-1302-45ad-8b1f-cc7eb0f3868b/routing_tables/f4e65793-1b51-4548-b0c5-769e18d64775",
    "id": "f4e65793-1b51-4548-b0c5-769e18d64775",
    "name": "my-routing-table",
    "resource_type": "routing_table"
  },
  "default_security_group": {
    "crn": "crn:[...]",
    "href": "https://us-south.iaas.cloud.ibm.com/v1/security_groups/95770f87-81f3-4164-8f6d-9f54a3f3a459",
    "id": "95770f87-81f3-4164-8f6d-9f54a3f3a459",
    "name": "my-security-group"
  },
  "href": "https://us-south.iaas.cloud.ibm.com/v1/vpcs/f64efe74-a5a2-45c7-b37d-5071d2dd6339",
  "id": "2a842e76-1302-45ad-8b1f-cc7eb0f3868b",
  "name": "my-vpc-2",
  "resource_group": {
    "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/4bbce614c13444cd8fc5e7e878ef8e21",
    "id": "4bbce614c13444cd8fc5e7e878ef8e21",
    "name": "Default"
  },
  "resource_type": "vpc",
  "status": "available"
}

使用 Terraform 将 VPC 启用为 DNS 中心

您可以使用 Terraform 来启用 VPC 作为 DNS 中心。

要使用 Terraform,请下载 Terraform CLI 并配置 IBM Cloud 提供者插件。 有关更多信息,请参阅 Terraform 入门

VPC 基础架构服务使用特定于区域的端点,缺省情况下以 us-south 为目标。 如果在另一个区域中创建了 VPC,请确保将 provider.tf 文件的提供程序块中的相应区域作为目标。

以下示例详细信息以缺省 us-south 以外的区域为目标:

provider "ibm" {
  region = "eu-de"
}

要启用 VPC 作为 DNS 中心:

resource "ibm_is_vpc" "example" {
  name = "example-vpc"
  dns {
		enable_hub = true
		resolver {
			manual_servers {
				type = "manual"
				address = "192.168.3.4"
			}
		}
	}
}

后续步骤