IBM Cloud Docs
设置 DNS Services 实例

设置 DNS Services 实例

使用用户界面或 API 设置IBM Cloud® DNS Services实例、DNS 区域、允许的网络和资源记录。

在控制台中创建 DNS Services 实例

  1. 打开 IBM Cloud 目录 页面。

  2. 选择网络类别。

  3. 单击 DNS Services 磁贴。

  4. 选择套餐。

  5. 输入服务名称,然后单击创建

    您将重定向到显示 DNS 区域 信息的 DNS Services 实例页面。

您还可以通过转至 DNS Services 目录条目 直接浏览到 DNS Services 实例创建。

在控制台中创建 DNS 区域

  1. 浏览至“资源”页面并选择 DNS Services 实例。
  2. 在“DNS 区域”页面上,单击 创建区域
  3. 在“创建区域”面板中,输入区域名称。 (可选) 输入标签和描述。
  4. 在面板中单击 创建区域。 如果成功创建了区域,那么您将重定向到“区域详细信息”页面。

在控制台中创建 "A "资源记录

  1. 浏览至“资源”页面并选择 DNS Services 实例。 然后选择区域。
  2. 在“DNS 详细信息”页面上,单击 DNS 记录 选项卡。
  3. 单击 选择记录操作,然后从列表菜单中选择 添加记录
  4. 在“添加记录”面板中,从 类型 菜单中选择要添加的 DNS 记录类型。 在这种情况下,请选择类型 A
  5. 输入所选 DNS 记录类型的必需数据。 在这种情况下,对于类型 A,请输入 NameIPv4 Address
  6. 单击面板中的 添加记录

在控制台中创建允许的网络

  1. 浏览至“资源”页面并选择 DNS Services 实例。 然后选择区域。

  2. 单击 获准网络 选项卡。

  3. 单击 添加网络

  4. 在“添加网络”面板中,从 网络区域 菜单中选择 VPC 的区域。

  5. 从显示的 网络 菜单中选择 VPC。

  6. 单击 添加网络

    此请求会将 VPC 网络添加到您的区域,从而使网络能够访问该区域。

验证安装

要验证实例,区域和记录是否正确执行,请运行以下 dig 命令:

dig @161.26.0.7 <Record type> <record name>

示例:

dig @161.26.0.7 A xyz.example.com

使用 API 创建DNS Services实例

请参阅资源控制器 API 的 创建新资源实例 文档。 请注意,必须设置 resource_groupresource_plan_id。 每个帐户可以具有多个资源组,并且每个资源组都具有唯一标识。

按如下所示设置变量以创建标准计划的实例:

"resource_plan_id": "2c8fa097-d7c2-4df2-b53e-2efb7874cdf7",

有关使用 API 的更多信息,请参阅 资源控制器 API 参考 文档。

实例的命令行正在使用资源控制器 API,而不是 DNS API。 这些命令等同于命令 ibmcloud resource service-instance,这为 DNS 用户管理 DNS Services 实例提供了便利。

使用 API 创建 DNS 区域

您必须创建 VPC,以便可以将 DNS 区域链接到 VPC。

将 API 端点存储在变量中,以便可以在 API 请求中使用,而不必输入完整 URL。 例如,要将端点存储到变量中,请执行以下命令:

DNSSVCS_ENDPOINT=https://api.dns-svcs.cloud.ibm.com

要验证该变量是否已保存,请运行 echo $DNSSVCS_ENDPOINT 并确保响应不为空。

收集有关实例的详细信息后,运行以下 curl 命令以创建 DNS 区域:

请求

  • INSTANCE_ID: 实例的 GUID
  • 令牌 :IAM OAUTH 令牌
curl -X POST \
  $DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones \
  -H "Authorization: $TOKEN" \
  -d '{
        "name": "example.com",
        "description": "The DNS zone is used for VPCs in the us-east region",
        "label": "us-east"
  }'

响应

{
  "id": "example.com:2d0f862b-67cc-41f3-b6a2-59860d0aa90e",
  "created_on": "2019-01-01T05:20:00.12345Z",
  "modified_on": "2019-01-01T05:20:00.12345Z",
  "instance_id": "1407a753-a93f-4bb0-9784-bcfc269ee1b3",
  "name": "example.com",
  "description": "The DNS zone is used for VPCs in the us-east region",
  "state": "pending_network_add",
  "label": "us-east"
}

使用应用程序接口创建允许的网络

DNS Services 仅允许从添加到 DNS 区域的 VPC 解析名称。

创建 DNS 区域时,其状态为 PENDING_NETWORK_ADD。 要将区域移动到 ACTIVE 状态,请将 VPC 的条目添加到区域的允许网络。

通过将 VPC 添加到区域允许的网络,VPC 上的计算实例可以访问这些资源记录。

请求

curl -X POST \
  $DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones/$DNSZONE_ID/acls \
  -H "Authorization: $TOKEN" \
  -d '{
        "type": "vpc",
        "acl_data": {
            "vpc_crn": "crn:v1:staging:public:is:us-east:a/40705ee14536813e2385f26c20be24a5::vpc:ed5e3cdd-8a4f-45ce-bae4-2774cb028caf"
        }
  }'

响应

{
  "id": "fecd0173-3919-456b-b202-3029dfa1b0f7",
  "created_on": "2019-01-01T05:20:00.12345Z",
  "modified_on": "2019-01-01T05:20:00.12345Z",
  "acl_data": {
    "vpc_crn": "crn:v1:staging:public:is:us-east:a/40705ee14536813e2385f26c20be24a5::vpc:ed5e3cdd-8a4f-45ce-bae4-2774cb028caf"
  },
  "type": "vpc"
}

使用应用程序接口创建 "A "资源记录

A 记录 (地址记录) 是将域或子域与 IPv4 地址相关联的 DNS 资源记录。

请求

  • name: FQDN,例如 www.example.com 或主机,例如 www
  • type: 记录类型-A,AAAA,SRV 等。
  • ip: 名称的 IP 地址。
  • ttl: 资源记录的生存时间。
curl -X POST \
  $DNSSVCS_ENDPOINT/v1/instances/$INSTANCE_ID/dnszones/$DNSZONE_ID/resource_records \
  -H "Authorization: $TOKEN" \
  -d '{
        "name":"www.example.com",
        "type":"A",
        "rdata": {
            "ip":"1.2.6.7"
        },
        "ttl":300
  }'

响应

{
   "created_on":"2019-09-13 19:56:42.484382585 +0000 UTC",
   "modified_on":"2019-09-13 19:56:42.484382585 +0000 UTC",
   "rtype":"A",
   "ttl":300,
   "name":"www.example.com.testZone.com",
   "id":"A:786c07c7-173e-473b-aa09-c186601a5709",
   "rdata":{
      "ip":"1.2.6.7"
   }
}