azure - 如何查看哪些 Azure 私有(private) DNS 区域连接到我的 Azure 虚拟网络?

标签 azure azure-virtual-network azureportal

客户在 Azure 中拥有多个资源组,其中包含多个虚拟网络和许多专用 DNS 区域以启用专用终结点。某些私有(private) DNS 区域位于不同的资源组中,但具有相同的域名(例如 privatelink.azurewebsites.net)。 我有一些虚拟网络,我想知道哪些私有(private) DNS 区域通过虚拟网络链接连接到它们。

我有一个连接到特定私有(private) DNS 区域的虚拟网络列表,但我在虚拟网络上没有看到相应的列表。门户内是否有一个列表,我可以在其中查看虚拟网络链接?

最佳答案

这并不完全是您所要求的,也不是来自门户,而是如果您愿意使用 PowerShell 尝试的话,这是一种替代方案。您可以尝试使用 PowerShell 提取私有(private) DNS 区域及其关联记录和 Vnet 链接,然后发送到 csv 文件。通过这种方式,您可以轻松识别哪些 Vnet 连接到您的私有(private) DNS 区域,只需过滤 VnetLinkId 列即可。

这是您可以使用的代码片段:

注意: 在运行此代码段之前,您需要先使用 Connect-AzAccount


$subscriptionId = your subscription ID"
Set-AzContext -SubscriptionId $subscriptionId
$subName = "your Subscription Name"

$reportName1 = "PrivateDNSZone.csv"
Select-AzSubscription $subscriptionId
$report = @()
$Zones = Get-AzPrivateDnsZone
foreach ($zone in $Zones){ 
    $vnet_link = Get-AzPrivateDnsVirtualNetworkLink -ResourceGroupName $zone.ResourceGroupName -ZoneName $zone.Name
    $record_set = Get-AzPrivateDnsRecordSet -ResourceGroupName $zone.ResourceGroupName -ZoneName $zone.Name
    foreach ($record in $record_set){
        foreach ($link in $vnet_link){ 
            $info = "" | Select Subscription, ResourceGroupName, PrivateDNSZoneName, RecordSet, RecordType, Records, Ttl, IsAutoRegistered, VnetLinkName, VnetLinkId, RegistrationEnabled, VirtualNetworkLinkState, ProvisioningState
            $info.Subscription = $subName
            $info.ResourceGroupName = $zone.ResourceGroupName
            #$info.Location = $zone.Location
            $info.PrivateDNSZoneName = $zone.Name

            $info.RecordSet = $record.Name
            $info.RecordType = $record.RecordType
            if ($record.RecordType -eq 'A'){
                $info.Records = $record.Records.Ipv4Address -join ","
            }
            elseif ($record.RecordType -eq 'CNAME'){
                $info.Records = $record.Records.Cname -join ","
            }
            elseif ($record.RecordType -eq 'SOA') {
                $info.Records = $record.Records.Host -join ","
            }
            else{
                $info.Records = $record.Records
            }
            $info.Ttl = $record.Ttl
            $info.IsAutoRegistered = $record.IsAutoRegistered

            $info.VnetLinkName = $link.Name 
            $info.VnetLinkId = $link.VirtualNetworkId
            $info.RegistrationEnabled = $link.RegistrationEnabled
            $info.VirtualNetworkLinkState = $link.VirtualNetworkLinkState
            $info.ProvisioningState = $link.ProvisioningState

            $report += $info 
        }
    }
}
$report | ft Subscription, ResourceGroupName, PrivateDNSZoneName, RecordSet, RecordType, Records, Ttl, IsAutoRegistered, VnetLinkName, VnetLinkId, RegistrationEnabled, VirtualNetworkLinkState, ProvisioningState
$report | Export-CSV "$reportName1" -Encoding Default

这是 csv 文件的快照,其中提取了详细信息

enter image description here

关于azure - 如何查看哪些 Azure 私有(private) DNS 区域连接到我的 Azure 虚拟网络?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74577769/

相关文章:

azure - 基于我们在azure中定义的标签启动VM

azure - az 存储帐户网络规则不适用于 Microsoft 托管代理 (Azure DevOps)

azure - 使用 ARM 模板部署 azure keyvault

azure-functions - Azure函数无法禁用函数

azure - 如何创建具有加速网络的 Azure VMSS?

c# - 如何使用 .NET 存储 SDK 列出 Azure 文件存储中根目录中的所有目录或文件?

asp.net - PhantomJS 作为 Azure 中的 Web 作业

postgresql - 添加 NSG 规则以在 Azure PostgreSQL 灵活服务器上实现高可用性

azure - 如何通过Python SDK检查Azure公共(public)IP是否为 'associated'

azure - 如何监控Azure子网中的IP分配?