你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Azure Resource Graph 中的专用 DNS 信息

本文介绍了一些使用 Azure Resource Graph 资源管理器查看有关 Azure 专用 DNS 区域和记录的信息的方法。 提供了一些示例查询。

Azure Resource Graph (ARG) 是一项 Azure 服务,用于通过复杂的筛选、分组和排序来查询 Azure 资源。 ARG 查询提供有关资源的详细信息,并且你可以通过多种方式显示结果。

可以显示有关 DNS 区域的信息,包括:

  • 一个或所有区域中的资源记录的类型和数量
  • 资源记录名称和 IP 地址的列表
  • 虚拟网络链接
  • 自动注册的资源记录

这是一个简短的列表。 还有很多其他详细信息可以查询。

dnsresources 表

若要在 Azure 门户中使用 Resource Graph,请搜索并选择“Resource Graph 资源管理器”。 在左侧导航窗格中,选择“表”选项卡,并查看“dnsresources”表。 此表用于查询专用 DNS 区域数据。 使用此表时,不会查询公共 DNS 区域。

选择“dnsresources”以创建基本查询,然后单击“运行查询”以返回结果。 请参阅以下示例:

基本 ARG 查询的屏幕截图。

若要将 ID 替换为显示名称并在可能的情况下将值显示为链接,请将显示屏右上角的“格式化结果”切换为“启用”。 若要查看记录的详细信息,请向右滚动并选择“查看详细信息”。 上一示例中显示的前几条记录是 PTR 记录(类型 = microsoft.network/privatednszones/ptr)。

按类型对资源记录进行计数

以下查询使用“dnsresources”表按类型提供所有专用区域的资源记录计数:

dnsresources
| summarize count() by recordType = tostring(type)

资源记录计数查询的屏幕截图。

该查询对当前订阅有权查看的所有记录进行计数。 你还可以通过选择“图表”选项卡并选择图表类型,直观地查看计数。 下面是圆环图的示例:

资源记录计数查询圆环图的屏幕截图。

列出、筛选、搜索资源记录以及对资源记录进行排序

可以通过指定区域名称、订阅 ID、资源组或记录类型等参数来筛选查询结果。 例如,以下示例查询针对给定订阅和资源组返回 private.contoso.com 区域中 A 或 CNAME 记录的列表。 此查询的输出类似于查看专用区域(还可以按名称和类型对结果进行筛选和排序):

dnsresources
| where managedBy == "private.contoso.com"
| where subscriptionId == "<your subscription ID>"
| where resourceGroup == "<your resource group name>"
| where type in (
    "microsoft.network/privatednszones/a",
    "microsoft.network/privatednszones/cname"
)
| project name, type, properties

资源记录列表查询的屏幕截图。

可以指定的记录类型有:a、aaaa、cname、mx、ptr、soa、srv 和 txt。

还可以查询特定的 IP 地址或地址范围。 以下查询返回与特定 IPv4 地址匹配的专用 DNS 记录:

dnsresources
| where properties['records'][0]['ipv4Address'] == "10.10.2.5"
| project name, type, resourceGroup, properties

正则表达式

Kusto 查询语言还支持正则表达式。 以下查询使用正则表达式来匹配并列出给定专用 DNS 区域和指定订阅中的所有 IPv4 地址:

dnsresources
| where subscriptionId == "<your subscription ID>"
| where managedBy == "private.contoso.com"
| where properties matches regex @'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
| extend IP=extract_all(@'(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(?:\/\d{1,2}){0,1})',tostring(properties))
| project  name, IP, resourceGroup, properties
| mv-expand IP
| order by name

正则表达式查询的屏幕截图。

以下查询列出了具有虚拟网络链接的所有专用 DNS 区域并显示自动注册状态。 此查询使用泛型“resources”表而不是“dnsresources”表,并将资源类型指定为仅限“privatednszones”

resources
| where subscriptionId == "<your subscription ID>"
| where ['type'] == "microsoft.network/privatednszones/virtualnetworklinks"
| extend registrationEnabled=(properties.registrationEnabled)
| project name, registrationEnabled, resourceGroup, properties

虚拟网络链接查询的屏幕截图。

自动注册的 DNS 记录

以下查询列出了自动注册的 IPv4 专用 DNS 记录:

dnsresources
| where subscriptionId == "<your subscription ID>"
| where isnull(properties.virtualNetworkId) == false
| extend linkname=(properties.virtualNetworkLinkName)
| extend ipaddress=properties['records'][0]['ipv4Address']
| project name, ipaddress, type, linkname, properties

自动注册查询的屏幕截图。

后续步骤