본문 바로가기
클라우드/Azure

[DNS] Azure Private DNS Resolver 구성

by worldcenter 2025. 1. 30.

Azure DNS Private Resolver는 VM 기반 DNS 서버를 배포하지 않고 온-프레미스 환경에서 Azure DNS 프라이빗 영역을 쿼리하거나 그 반대로 쿼리할 수 있는 새로운 서비스입니다.

자세한 내용은 다음 링크에서 확인 가능합니다.

2023.09월 기준 Azure Portal을 통해 서비스 생성 시 정상적으로 작동하지 않는 버그가 존재하여 Powershell을 통해 인프라를 배포해보겠습니다.

 

1. Az.DnsResolver 모듈을 설치합니다.

Install-Module Az.DnsResolver

 

2. Az.DnsResolver 모듈이 설치되었는지 확인합니다. 이 모듈의 현재 버전은 0.2.1 입니다.

Get-InstalledModule -Name Az.DnsResolver

 

3. 구독에 로그인 합니다.

Connect-AzAccount -Tenant <TenantId> -Subscription <SubscriptionId> -UseDeviceAuthentication

 

4. 다음 명령을 사용하여 Microsoft.Network 네임스페이스를 등록합니다.

Register-AzResourceProvider -ProviderNamespace Microsoft.Network

 

5. 이번 테스트에서는 기존에 만들어진 가상 네트워크와 리소스 그룹을 사용하여 Priavte DNS Resolver 인스턴스를 생성합니다.

New-AzDnsResolver -Name <DNSResolverName> -ResourceGroupName <ResourceGroupName> -Location koreacentral -VirtualNetworkId "/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VnetName>"

 

6. DNS 확인자가 성공적으로 만들어졌으며 상태가 연결되었는지 확인합니다(선택 사항)

출력에서 dnsResolverState 는 연결됨입니다.

$dnsResolver = Get-AzDnsResolver -Name <ResolverName> -ResourceGroupName <ResourceGroupName>
$dnsResolver.ToJsonString()

 

7. 인바운드 엔드포인트를 만듭니다.(동적 IP 주소)

$ipconfig = New-AzDnsResolverIPConfigurationObject -PrivateIPAllocationMethod Dynamic -SubnetId /subscriptions/630c4.../resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VirtualNetworkName>/subnets/<SubnetName>
New-AzDnsResolverInboundEndpoint -DnsResolverName kbhc-hic-prd-pr -Name kbhc-hic-prd-pr-inbound -ResourceGroupName <resourceGroupName> -Location koreacentral -IpConfiguration $ipconfig

 

8. 아웃바운드 엔드포인트를 만듭니다.(이 때 인바운드 서브넷과는 다른 서브넷이 필요)

New-AzDnsResolverOutboundEndpoint -DnsResolverName <DnsResolverName> -Name <OutboundName> -ResourceGroupName <ResourceGroupName> -Location koreacentral -SubnetId /subscriptions/630c4f9e-9/resourceGroups/<ResourceGroupName>/providers/Microsoft.Network/virtualNetworks/<VirtualNetworkName>/subnets/<SubnetName>

 

9. 아웃바운드 엔드포인트가 생성되었고 할당된 서브넷 내에서 IP 주소가 할당되었는지 확인합니다.

$outboundEndpoint = Get-AzDnsResolverOutboundEndpoint -Name <OutboundName> -DnsResolverName <DnsResolverName> -ResourceGroupName <ResourceGroupName>
$outboundEndpoint.ToJsonString()

 

 10. 만든 아웃바운드 엔드포인트에 대한 DNS 전달 규칙 집합을 만듭니다.

New-AzDnsForwardingRuleset -Name <RuleName> -ResourceGroupName <ResourceGroupName> -DnsResolverOutboundEndpoint $outboundendpoint -Location koreacentral

 

11. 가상 네트워크 링크는 DNS 전달 규칙 집합을 사용하여 아웃바운드 엔드포인트에 연결된 가상 네트워크에 대한 이름 확인을 사용하도록 설정합니다. Private DNS에 아래 Spoke 네트워크가 링크되어 있으면 Ruleset에는 따로 등록할 필요 없지만 모든 DNS관리를 Resolver에서 진행할 경우 Private DNS에 붙은 Spoke 네트워크를 떼어서 Resolver에 부착합니다.

이 때 DNS Resolver가 생성된 네트워크는 링크시키지 않습니다.(DNS 확인 루프가 발생 할 수 있음)

 

12. 전달 규칙을 다음과 같이 생성합니다. 이 때 Destination IP는 Inbound Subnet의 IP입니다.

Azure Private DNS를 호출할 경우에는 Inbound Subnet IP

온-프레미스 쪽 DNS 정보를 호출할 경우에는 온-프레미스 쪽 네임서버 IP

 

13. Private DNS Zone에는 Private DNS Resolver가 위치한 가상네트워크가 링크가 맺어져 있어야 합니다.(피어링 필수 X)

 

 

참고 링크

https://learn.microsoft.com/ko-kr/azure/dns/private-resolver-endpoints-rulesets

 

Azure DNS Private Resolver 엔드포인트 및 규칙 집합

이 문서에서는 Azure DNS Private Resolver 엔드포인트 및 규칙 집합을 이해합니다.

learn.microsoft.com

https://learn.microsoft.com/ko-kr/azure/dns/dns-private-resolver-get-started-portal

 

빠른 시작 - Azure Portal을 사용하여 Azure DNS Private Resolver 만들기

이 빠른 시작에서는 Azure DNS에 프라이빗 DNS 확인자를 만들고 테스트합니다. 이 문서는 Azure Portal을 사용하여 첫 번째 프라이빗 DNS 확인자를 만들고 관리하는 단계별 가이드입니다.

learn.microsoft.com