设置 DNS Services 实例
使用用户界面或 API 设置IBM Cloud® DNS Services实例、DNS 区域、允许的网络和资源记录。
在控制台中创建 DNS Services 实例
-
打开 IBM Cloud 目录 页面。
-
选择网络类别。
-
单击 DNS Services 磁贴。
-
选择套餐。
-
输入服务名称,然后单击创建。
您将重定向到显示 DNS 区域 信息的 DNS Services 实例页面。
您还可以通过转至 DNS Services 目录条目 直接浏览到 DNS Services 实例创建。
在控制台中创建 DNS 区域
- 浏览至“资源”页面并选择 DNS Services 实例。
- 在“DNS 区域”页面上,单击 创建区域。
- 在“创建区域”面板中,输入区域名称。 (可选) 输入标签和描述。
- 在面板中单击 创建区域。 如果成功创建了区域,那么您将重定向到“区域详细信息”页面。
在控制台中创建 "A "资源记录
- 浏览至“资源”页面并选择 DNS Services 实例。 然后选择区域。
- 在“DNS 详细信息”页面上,单击 DNS 记录 选项卡。
- 单击 选择记录操作,然后从列表菜单中选择 添加记录。
- 在“添加记录”面板中,从 类型 菜单中选择要添加的 DNS 记录类型。 在这种情况下,请选择类型 A。
- 输入所选 DNS 记录类型的必需数据。 在这种情况下,对于类型 A,请输入 Name 和 IPv4 Address。
- 单击面板中的 添加记录。
在控制台中创建允许的网络
-
浏览至“资源”页面并选择 DNS Services 实例。 然后选择区域。
-
单击 获准网络 选项卡。
-
单击 添加网络。
-
在“添加网络”面板中,从 网络区域 菜单中选择 VPC 的区域。
-
从显示的 网络 菜单中选择 VPC。
-
单击 添加网络。
此请求会将 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_group
和 resource_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"
}
}