如何使用 Azure CLI 管理 Azure DNS 中的 DNS 区域

本文介绍如何使用跨平台 Azure CLI 管理 DNS 区域。 Azure CLI 适用于 Windows、Mac 和 Linux。 也可以使用 Azure PowerShell 或 Azure 门户管理 DNS 记区域。

本指南专门介绍公共 DNS 区域。 有关使用 Azure CLI 管理 Azure DNS 中专用区域的详细信息,请参阅使用 Azure CLI 开始使用 Azure DNS 专用区域

简介

DNS 区域用来托管某个特定域的 DNS 记录。 若要开始在 Azure DNS 中托管域,需要为该域名创建 DNS 区域。 随后会在此 DNS 区域内为每个 DNS 记录创建域。

例如,域“contoso.com”可能包含几条 DNS 记录,如“mail.contoso.com”(用于邮件服务器)和“www.contoso.com”(用于网站)。

在 Azure DNS 中创建 DNS 区域时:

  • 在资源组中,区域名称必须是唯一的,不能存在该域。 否则,操作会失败。
  • 可在不同资源组或不同 Azure 订阅中重复使用同一区域名称。
  • 当多个区域共享相同的名称时,将为每个实例分配不同的名称服务器地址。 使用域名注册机构仅可配置一组地址。

注意

不必拥有域名即可在 Azure DNS 中以该域名创建 DNS 区域。 但是,需要拥有域才能通过域名注册机构将 Azure DNS 名称服务器配置为域名的正确名称服务器。

有关详细信息,请参阅 向 Azure DNS 委派域

设置适用于 Azure DNS 的 Azure CLI

准备阶段

在开始配置之前,请确保具备以下各项。

  • Azure 订阅。 如果还没有 Azure 订阅,可在开始前创建一个试用帐户

  • 安装最新版本的 Azure CLI(在 Windows、Linux 或 MAC 中可用)。 有关详细信息,请参阅安装 Azure CLI

登录到 Azure 帐户

打开控制台窗口并使用凭据进行身份验证。 有关详细信息,请参见从 Azure CLI 登录 Azure

az login

选择订阅

检查该帐户的订阅。

az account list

选择要使用的 Azure 订阅。

az account set --subscription "subscription name"

可选:安装/使用 Azure DNS 专用区域功能

可通过 Azure CLI 的扩展使用 Azure DNS 专用区域功能。 安装“dns”Azure CLI 扩展

az extension add --name dns

创建资源组

Azure 资源管理器要求资源组具有指定的位置。 此位置将用作该资源组中所有资源的默认位置。 由于所有 DNS 资源都是全局资源,资源组位置的选择对 Azure DNS 没有影响。

如果使用现有资源组,可跳过此步骤。

az group create --name myresourcegroup --location "China East"

获取帮助

与 Azure DNS 相关的所有 Azure CLI 命令都以 az network dns 开头。 可使用 --help 选项(缩写形式 -h)获取有关每个命令的帮助。 例如:

az network dns --help
az network dns zone --help
az network dns zone create --help

创建 DNS 区域

使用 az network dns zone create 命令创建 DNS 区域。 有关帮助,请参阅 az network dns zone create -h

以下示例在名为 MyResourceGroup 的资源组中创建名为 contoso.com 的 DNS 区域:

az network dns zone create --resource-group MyResourceGroup --name contoso.com

使用标记创建 DNS 区域

下面的示例演示如何通过 --tags 参数(缩写形式 -t)使用两个 Azure 资源管理器标记、project = demo 和 env = test 创建 DNS 区域:

az network dns zone create --resource-group MyResourceGroup --name contoso.com --tags "project=demo" "env=test"

获取 DNS 区域

若要检索 DNS 区域,请使用 az network dns zone show。 有关帮助,请参阅 az network dns zone show --help

以下示例从资源组 MyResourceGroup 返回 DNS 区域 contoso.com 及其关联数据。

az network dns zone show --resource-group myresourcegroup --name contoso.com

以下示例是响应。

{
  "etag": "00000002-0000-0000-3d4d-64aa3689d201",
  "id": "/subscriptions/147a22e9-2356-4e56-b3de-1f5842ae4a3b/resourceGroups/myresourcegroup/providers/Microsoft.Network/dnszones/contoso.com",
  "location": "global",
  "maxNumberOfRecordSets": 5000,
  "name": "contoso.com",
  "nameServers": [
    "ns1-04.azure-dns.cn.",
    "ns2-04.azure-dns.cn.",
    "ns3-04.azure-dns.cn.",
    "ns4-04.azure-dns.cn."
  ],
  "numberOfRecordSets": 4,
  "resourceGroup": "myresourcegroup",
  "tags": {},
  "type": "Microsoft.Network/dnszones"
}

若要列出 DNS 记录,请使用 az network dns record-set list

列出 DNS 区域

若要枚举 DNS 区域,请使用 az network dns zone list。 有关帮助,请参阅 az network dns zone list --help

指定资源组仅列出资源组内的区域:

az network dns zone list --resource-group MyResourceGroup

省略资源组可列出订阅中的所有区域:

az network dns zone list 

更新 DNS 区域

可以使用 az network dns zone update 对 DNS 区域资源进行更改。 有关帮助,请参阅 az network dns zone update --help

此命令不会更新区域中的任何 DNS 记录集(请参阅如何管理 DNS 记录)。 该操作仅可用于更新区域资源本身的属性。 这些属性当前仅限于区域资源的 Azure 资源管理器“标记”

以下示例演示如何更新 DNS 区域上的标记。 现有标记替换为指定值。

az network dns zone update --resource-group myresourcegroup --name contoso.com --set tags.team=support

删除 DNS 区域

可以使用 az network dns zone delete 删除 DNS 区域。 有关帮助,请参阅 az network dns zone delete --help

注意

删除 DNS 区域也会删除该区域中的所有 DNS 记录。 无法撤消此操作。 如果 DNS 区域在使用中,则使用该区域的服务在区域删除后将无效。

若要防止意外删除区域,请参阅如何保护 DNS 区域和记录

此命令提示用户进行确认。 可选的 --yes 开关禁止显示此提示。

以下示例演示如何从资源组 MyResourceGroup 中删除区域 contoso.com

az network dns zone delete --resource-group myresourcegroup --name contoso.com

后续步骤

了解如何在 DNS 区域中管理记录集和记录

了解如何将域委派给 Azure DNS