Azure Resource Graph에서 정보 프라이빗 DNS
이 문서에서는 Azure Resource Graph Explorer를 사용하여 Azure 프라이빗 DNS 영역 및 레코드에 대한 정보를 볼 수 있는 몇 가지 방법을 설명합니다. 일부 예제 쿼리가 제공됩니다.
ARG(Azure Resource Graph) 는 복잡한 필터링, 그룹화 및 정렬을 사용하여 Azure 리소스를 쿼리할 수 있는 Azure 서비스입니다. ARG 쿼리는 리소스에 대한 자세한 정보를 제공하며 여러 가지 방법으로 결과를 표시할 수 있습니다.
다음을 포함하여 DNS 영역에 대한 정보를 표시할 수 있습니다.
- 하나 또는 모든 영역에 있는 리소스 레코드의 유형 및 수
- 리소스 레코드 이름 및 IP 주소 목록
- 가상 네트워크 링크
- 자동 등록 리소스 레코드
간단한 목록입니다. 다른 많은 세부 정보를 쿼리할 수 있습니다.
dnsresources 테이블
Azure Portal에서 Resource Graph를 사용하려면 Resource Graph Explorer를 검색하고 선택합니다. 왼쪽 탐색 창에서 테이블 탭을 선택하고 dnsresources 테이블을 검토합니다. 이 테이블은 프라이빗 DNS 영역 데이터를 쿼리하는 데 사용됩니다. 이 테이블을 사용하는 경우 공용 DNS 영역은 쿼리되지 않습니다.
dnsresources를 선택하여 기본 쿼리를 만든 다음 쿼리 실행을 클릭하여 결과를 반환합니다. 다음 예제를 참조하십시오.
ID를 표시 이름으로 바꾸고 가능한 경우 값을 링크로 표시하려면 서식이 지정된 결과를 디스플레이의 오른쪽 위 모서리에 있는 On으로 전환합니다. 레코드에 대한 세부 정보를 보려면 오른쪽으로 스크롤하고 세부 정보 보기를 선택합니다. 이전 예제에 표시된 처음 몇 개의 레코드는 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 영역을 나열하고 자동 등록 상태를 표시합니다. 이 쿼리는 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
다음 단계
- DNS 영역에서 레코드 집합 및 레코드 관리 방법을 알아봅니다.