设置 DNS 解析器类型
通过创建与 DNS 中心 VPC 的解析绑定来创建 DNS 共享 VPC 后,必须将共享 VPC 的 DNS 解析器类型设置为“已授权”或“手动”,以便 VPC 可以使用 DNS 中心 VPC 中的定制解析器。
关于解析器类型
有三种 DNS 解析器类型:
- 系统 是 DNS 服务器的 IBM 缺省设置。 通过此设置,DNS 服务器地址由 DNS Services提供,并且 DNS 中心 VPC 设置为此解析器类型。
- 将 授权 用于 DNS 共享的 VPC,以便这些 VPC 可以使用中心 VPC 中的定制解析器。 DNS 服务器地址由解析器为指定的 DNS 共享 VPC 提供。 只能在禁用 DNS 中心的 VPC 上设置此选项。
- 如果希望 DNS 共享的 VPC 使用中心 VPC 的定制解析器以外的 DNS 解析器,请使用 手动。 此选项用于手动指定的 DNS 服务器地址,以替换任何现有服务器。 您可以使用此选项来配置任何 DNS 服务器 (公共或本地)。
准备工作
在设置 DNS 解析器类型之前,请查看 规划注意事项 和 已知问题和限制。
可以通过控制台、CLI、API 或 Terraform 设置 DNS 解析器类型。
在控制台中设置 DNS 解析器类型
要在 DNS 共享 VPC 上设置 DNS 解析器类型,请执行以下步骤:
- 从浏览器打开 IBM Cloud 控制台并登录账户。
- 选择导航菜单
,然后单击基础架构 > 网络 > VPC。
- 单击要设置其 DNS 解析器类型的 DNS 共享 VPC。
- 滚动到“可选 DNS 设置”部分,然后展开 DNS 解析器设置,然后单击 编辑。
- 在“编辑 DNS 解析器设置”侧面板中,禁用 DNS 中心。
- 选择 代表 作为 DNS 解析器类型,然后单击 保存。
从 CLI 设置 DNS 解析器类型
要使用 CLI 为 DNS 共享 VPC 设置 DNS 解析器类型,请执行以下步骤:
-
使用 CLI 登录您的账户。 输入密码后,系统会提示您输入要使用的帐户和区域:
ibmcloud login --sso
-
禁用中心 VPC 并指定 DNS 共享 VPC 的 DNS 解析器类型:
ibmcloud is vpc-create my-cli-vpc [--dns-enable-hub false] [--dns-resolver-type delegate] [--dns-resolver-manual-servers MANUAL_SERVERS | @MANUAL_SERVERS]
其中:
--dns-enable-hub
- 指定是否为 VPC 启用中心。 在使用
delegate
选项之前,必须禁用 DNS 中心。 --dns-resolver-type
- 指定 VPC 的解析器类型。 值为
system
(缺省值),delegate
和manual
。 --dns-resolver-manual-servers
- 配置 VPC 的手动 DNS 服务器地址。 解析器类型为
manual
时有效。
CLI 示例
要配置 manual
服务器:
ibmcloud is vpcu my-vpc --dns-resolver-manual-servers '[
{
"address": "190.20.3.2"
},
{
"address": "190.20.3.3"
}
]'
要配置 delegated
解析器类型:
ibmcloud is vpcu r006-55007c36-fd61-48db-ae22-710b0277e78e --dns-resolver-type delegated --delegate-to-vpc r006-4691ccef-498c-4d8e-9064-bcf13972b1aa
要配置 system
解析器类型:
ibmcloud is vpcu my-vpc --dns-resolver-type system
使用 API 设置 DNS 解析器类型
要使用 API 设置 DNS 解析器类型,请执行以下步骤:
-
设置 API 环境。
-
要设置 DNS 共享 VPC 以使用中心 VPC 的 DNS (使用
delegated
解析器类型):curl -X PATCH -sH "Authorization:${iam_token}" "${vpc_api_endpoint}/v1/vpcs/${vpc_id}?version=${api_version}&generation=2" -d ' { "dns": { "resolver": { "type":"delegated", "vpc": { "id": "${hub_vpc_id}" } } } }'
-
要设置 VPC 以使用
manual
DNS 服务器地址:curl -X PATCH -sH "Authorization:${iam_token}" "${vpc_api_endpoint}/v1/vpcs/${vpc_id}?version=${api_version}&generation=2" -d ' { "dns": { "resolver": { "type": "manual", "manual_servers": [ { "address": "10.240.0.10", "zone_affinity": { "name": "us-south-1" } }, { "address": "10.240.64.10", "zone_affinity": { "name": "us-south-2" } }, { "address": "10.240.128.10", "zone_affinity": { "name": "us-south-3" } } ] } } }'
-
要将 VPC 复原到缺省
system
配置:curl -X PATCH -sH "Authorization:${iam_token}" "${vpc_api_endpoint}/v1/vpcs/${vpc_id}?version=${api_version}&generation=2" -d ' { "dns": { "resolver": { "type":"system", "vpc": null } } }'
使用 Terraform 设置 DNS 解析器类型
可以使用 Terraform 来设置 DNS 解析器类型。
要使用 Terraform,请下载 Terraform CLI 并配置 IBM Cloud 提供者插件。 有关更多信息,请参阅 Terraform 入门。
VPC 基础架构服务使用特定于区域的端点,缺省情况下以 us-south
为目标。 如果在另一个区域中创建 VPC,请确保以 provider.tf
文件的提供程序块中的相应区域为目标。
请参阅以下以非缺省 us-south
区域为目标的示例。
provider "ibm" {
region = "eu-de"
}
要启用具有 manual
解析器类型的 DNS 中心服务器,请执行以下操作:
resource ibm_is_vpc my-vpc {
name = "my-vpc"
dns {
enable_hub = true
resolver {
manual_servers {
address ="192.168.0.4"
zone_affinity= "au-syd-1"
}
manual_servers{
address = "192.168.64.4"
zone_affinity = "au-syd-2"
}
manual_servers{
address= "192.168.128.4"
zone_affinity ="au-syd-3"
}
}
}
}
要将 DNS 中心修补为 delegate
解析器类型,请执行以下操作:
resource ibm_is_vpc my-vpc {
name = "my-vpc"
dns {
enable_hub = false
resolver {
type = "delegated"
vpc_id = ibm_is_vpc.hub_true.id
}
}
}
要将 VPC 补丁到 system
解析器类型:
resource ibm_is_vpc my-vpc {
name = "my-vpc"
dns {
enable_hub = false
resolver {
type = "system"
vpc_id = "null"
}
}
}
下一步
DNS 共享 VPC 用户 为 DNS 共享 VPC 中的单租户服务创建 VPE 网关。