빠른 시작: Azure PowerShell을 사용하여 Azure DNS Private Resolver 만들기
이 문서에서는 Azure PowerShell을 사용하여 첫 번째 프라이빗 DNS 영역 및 레코드를 만드는 단계를 안내합니다. 원하는 경우 Azure Portal을 사용하여 이 빠른 시작을 완료할 수 있습니다.
참고 항목
Azure Az PowerShell 모듈을 사용하여 Azure와 상호 작용하는 것이 좋습니다. 시작하려면 Azure PowerShell 설치를 참조하세요. Az PowerShell 모듈로 마이그레이션하는 방법에 대한 자세한 내용은 Azure PowerShell을 AzureRM에서 Azure로 마이그레이션을 참조하세요.
Azure DNS Private Resolver는 VM 기반 DNS 서버를 배포하지 않고 온-프레미스 환경에서 Azure DNS 프라이빗 영역을 쿼리하거나 그 반대로 쿼리할 수 있는 새로운 서비스입니다. 이점, 기능 및 지역별 가용성을 비롯한 자세한 내용은 Azure DNS Private Resolver란?을 참조하세요.
다음 그림에는 이 문서에 사용된 설정이 요약되어 있습니다.
필수 조건
Azure 구독이 아직 없는 경우 시작하기 전에 무료 계정을 만듭니다.
이 문서에서는 Az Azure PowerShell 모듈을 설치했다고 가정합니다.
Az.DnsResolver PowerShell 모듈 설치
참고 항목
이전에 프라이빗 미리 보기 중에 평가를 위해 Az.DnsResolver 모듈을 설치한 경우 생성된 로컬 PSRepository를 등록 취소하고 삭제할 수 있습니다. 그런 다음, 이 문서에 제공된 단계를 사용하여 최신 버전의 Az.DnsResolver 모듈을 설치합니다.
Az.DnsResolver 모듈을 설치합니다.
Install-Module Az.DnsResolver
Az.DnsResolver 모듈이 설치되었는지 확인합니다. 이 모듈의 현재 버전은 0.2.1입니다.
Get-InstalledModule -Name Az.DnsResolver
Azure PowerShell에서 구독 컨텍스트 설정
PowerShell을 Azure 클라우드에 연결합니다.
Connect-AzAccount -Environment AzureCloud
여러 구독이 있는 경우 첫 번째 구독 ID가 사용됩니다. 다른 구독 ID를 지정하려면 다음 명령을 사용합니다.
Select-AzSubscription -SubscriptionObject (Get-AzSubscription -SubscriptionId <your-sub-id>)
계정에 대한 Microsoft.Network 공급자 네임스페이스를 등록합니다.
Azure 구독에서 Microsoft.Network 서비스를 사용하려면 먼저 Microsoft.Network 네임스페이스를 등록해야 합니다.
다음 명령을 사용하여 Microsoft.Network 네임스페이스를 등록합니다.
Register-AzResourceProvider -ProviderNamespace Microsoft.Network
DNS 확인자 인스턴스 만들기
Important
리소스가 성공적으로 만들어졌는지 확인하거나 확인하는 단계는 선택 사항이 아닙니다. 이 단계를 건너뛰지 마세요. 단계는 이후 절차에서 사용할 수 있는 변수를 채웁니다.
리소스를 호스트할 리소스 그룹을 만듭니다. 리소스 그룹은 지원되는 지역에 있어야 합니다. 이 예제에서 위치는 westcentralus입니다.
New-AzResourceGroup -Name myresourcegroup -Location westcentralus
만든 리소스 그룹에 가상 네트워크를 만듭니다.
New-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup -Location westcentralus -AddressPrefix "10.0.0.0/8"
만든 가상 네트워크에 DNS 확인자를 만듭니다.
New-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup -Location westcentralus -VirtualNetworkId "/subscriptions/<your subs id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet"
DNS 확인자가 성공적으로 만들어졌으며 상태가 연결되었는지 확인합니다(선택 사항). 출력에서 dnsResolverState는 연결됨입니다.
$dnsResolver = Get-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup
$dnsResolver.ToJsonString()
DNS 확인자 인바운드 엔드포인트 만들기
가상 네트워크에서 서브넷 만들기
이전에 할당한 IP 주소 공간에서 가상 네트워크(Microsoft.Network/virtualNetworks/subnets)에 서브넷을 만듭니다. 서브넷의 크기는 /28(IP 주소 16개) 이상이어야 합니다.
$virtualNetwork = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
Add-AzVirtualNetworkSubnetConfig -Name snet-inbound -VirtualNetwork $virtualNetwork -AddressPrefix "10.0.0.0/28"
$virtualNetwork | Set-AzVirtualNetwork
인바운드 엔드포인트 만들기
프라이빗 가상 네트워크 주소 공간의 일부인 IP 주소를 통해 온-프레미스 또는 다른 프라이빗 위치에서 이름 확인을 사용하도록 설정하려면 인바운드 엔드포인트를 만듭니다.
팁
PowerShell을 사용하여 동적 또는 정적으로 인바운드 엔드포인트 IP 주소를 지정할 수 있습니다.
엔드포인트 IP 주소가 동적으로 지정된 경우 엔드포인트가 삭제되고 다시 프로비전되지 않는 한 주소가 변경되지 않습니다. 일반적으로 다시 프로비전하는 동안 동일한 IP 주소가 다시 할당됩니다.
엔드포인트 IP 주소가 정적이면 엔드포인트를 다시 프로비전하는 경우 이를 지정하고 다시 사용할 수 있습니다. 선택한 IP 주소는 서브넷의 예약된 IP 주소일 수 없습니다.
다음 명령은 동적 IP 주소를 프로비전합니다.
$ipconfig = New-AzDnsResolverIPConfigurationObject -PrivateIPAllocationMethod Dynamic -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-inbound
New-AzDnsResolverInboundEndpoint -DnsResolverName mydnsresolver -Name myinboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -IpConfiguration $ipconfig
다음 명령을 사용하여 고정 IP 주소를 지정합니다. 동적 및 정적 명령 집합을 모두 사용하지 마세요.
이전에 만든 서브넷에 IP 주소를 지정해야 합니다. 선택한 IP 주소는 서브넷의 예약된 IP 주소일 수 없습니다.
다음 명령은 정적 IP 주소를 프로비전합니다.
$ipconfig = New-AzDnsResolverIPConfigurationObject -PrivateIPAddress 10.0.0.4 -PrivateIPAllocationMethod Static -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-inbound
New-AzDnsResolverInboundEndpoint -DnsResolverName mydnsresolver -Name myinboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -IpConfiguration $ipconfig
인바운드 엔드포인트 확인
인바운드 엔드포인트가 생성되고 할당된 서브넷 내에서 IP 주소가 할당되었는지 확인합니다.
$inboundEndpoint = Get-AzDnsResolverInboundEndpoint -Name myinboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
$inboundEndpoint.ToJsonString()
DNS 확인자 아웃바운드 엔드포인트 만들기
가상 네트워크에서 서브넷 만들기
인바운드 서브넷(snet-inbound)과는 다른 이전에 할당한 IP 주소 공간에서 가상 네트워크(Microsoft.Network/virtualNetworks/subnets)에 서브넷을 만듭니다. 아웃바운드 서브넷도 크기가 /28(IP 주소 16개) 이상이어야 합니다.
$virtualNetwork = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
Add-AzVirtualNetworkSubnetConfig -Name snet-outbound -VirtualNetwork $virtualNetwork -AddressPrefix "10.1.1.0/28"
$virtualNetwork | Set-AzVirtualNetwork
아웃바운드 엔드포인트 만들기
아웃바운드 엔드포인트를 사용하면 Azure에서 외부 DNS 서버로 조건부 이름 확인을 전달할 수 있습니다.
New-AzDnsResolverOutboundEndpoint -DnsResolverName mydnsresolver -Name myoutboundendpoint -ResourceGroupName myresourcegroup -Location westcentralus -SubnetId /subscriptions/<your sub id>/resourceGroups/myresourcegroup/providers/Microsoft.Network/virtualNetworks/myvnet/subnets/snet-outbound
아웃바운드 엔드포인트 확인
아웃바운드 엔드포인트가 생성되었고 할당된 서브넷 내에서 IP 주소가 할당되었는지 확인합니다.
$outboundEndpoint = Get-AzDnsResolverOutboundEndpoint -Name myoutboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
$outboundEndpoint.ToJsonString()
DNS 확인자 전달 규칙 집합 만들기
만든 아웃바운드 엔드포인트에 대한 DNS 전달 규칙 집합을 만듭니다.
New-AzDnsForwardingRuleset -Name myruleset -ResourceGroupName myresourcegroup -DnsResolverOutboundEndpoint $outboundendpoint -Location westcentralus
DNS 전달 규칙 집합 확인
전달 규칙 집합이 만들어졌는지 확인합니다.
$dnsForwardingRuleset = Get-AzDnsForwardingRuleset -Name myruleset -ResourceGroupName myresourcegroup
$dnsForwardingRuleset.ToJsonString()
DNS 전달 규칙 집합에 대한 가상 네트워크 링크 만들기
가상 네트워크 링크는 DNS 전달 규칙 집합을 사용하여 아웃바운드 엔드포인트에 연결된 가상 네트워크에 대한 이름 확인을 사용하도록 설정합니다.
$vnet = Get-AzVirtualNetwork -Name myvnet -ResourceGroupName myresourcegroup
$vnetlink = New-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup -VirtualNetworkLinkName "vnetlink" -VirtualNetworkId $vnet.Id -SubscriptionId <your sub id>
가상 네트워크 링크 확인
가상 네트워크 링크가 만들어졌는지 확인합니다.
$virtualNetworkLink = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup
$virtualNetworkLink.ToJsonString()
두 번째 가상 네트워크를 만들고 DNS 전달 규칙 집합에 연결
온-프레미스 또는 다른 환경을 시뮬레이션하는 두 번째 가상 네트워크를 만듭니다.
$vnet2 = New-AzVirtualNetwork -Name myvnet2 -ResourceGroupName myresourcegroup -Location westcentralus -AddressPrefix "12.0.0.0/8"
$vnetlink2 = New-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup -VirtualNetworkLinkName "vnetlink2" -VirtualNetworkId $vnet2.Id -SubscriptionId <your sub id>
두 번째 가상 네트워크 확인
두 번째 가상 네트워크가 만들어졌는지 확인합니다.
$virtualNetworkLink2 = Get-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup
$virtualNetworkLink2.ToJsonString()
전달 규칙 만들기
하나 이상의 대상 DNS 서버의 규칙 집합에 대한 전달 규칙을 만듭니다. 뒤에 점이 있는 FQDN(정규화된 도메인 이름)을 지정해야 합니다. New-AzDnsResolverTargetDnsServerObject cmdlet은 기본 포트를 53으로 설정하지만 고유한 포트를 지정할 수도 있습니다.
$targetDNS1 = New-AzDnsResolverTargetDnsServerObject -IPAddress 192.168.1.2 -Port 53
$targetDNS2 = New-AzDnsResolverTargetDnsServerObject -IPAddress 192.168.1.3 -Port 53
$targetDNS3 = New-AzDnsResolverTargetDnsServerObject -IPAddress 10.0.0.4 -Port 53
$targetDNS4 = New-AzDnsResolverTargetDnsServerObject -IPAddress 10.5.5.5 -Port 53
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "Internal" -DomainName "internal.contoso.com." -ForwardingRuleState "Enabled" -TargetDnsServer @($targetDNS1,$targetDNS2)
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "AzurePrivate" -DomainName "azure.contoso.com" -ForwardingRuleState "Enabled" -TargetDnsServer $targetDNS3
$forwardingrule = New-AzDnsForwardingRulesetForwardingRule -ResourceGroupName myresourcegroup -DnsForwardingRulesetName myruleset -Name "Wildcard" -DomainName "." -ForwardingRuleState "Enabled" -TargetDnsServer $targetDNS4
이 예에서는 다음이 적용됩니다.
- 10.0.0.4는 확인자의 인바운드 엔드포인트입니다.
- 192.168.1.2 및 192.168.1.3은 온-프레미스 DNS 서버입니다.
- 10.5.5.5는 보호 DNS 서비스입니다.
Important
이 빠른 시작에 표시된 규칙은 특정 시나리오에 사용할 수 있는 규칙의 예입니다. 이 문서에 설명된 전달 규칙은 필요하지 않습니다. 전달 규칙을 주의 깊게 테스트하고 규칙으로 인해 DNS 확인 문제가 발생하지 않는지 확인합니다.
규칙 집합에 와일드카드 규칙을 포함하는 경우 대상 DNS 서비스가 공용 DNS 이름을 확인할 수 있는지 확인합니다. 일부 Azure 서비스에는 공용 이름 확인에 대한 종속성이 있습니다.
프라이빗 확인자 테스트
이제 DNS 확인자로 DNS 트래픽을 보내고 다음을 비롯한 전달 규칙 집합에 따라 레코드를 확인할 수 있습니다.
- 확인자가 배포된 가상 네트워크에 연결된 Azure DNS 프라이빗 영역
- 공용 인터넷 DNS 네임스페이스의 DNS 영역
- 온-프레미스에서 호스트되는 프라이빗 DNS 영역
DNS 확인자 삭제
DNS 확인자를 삭제하려면 확인자 내에서 만든 리소스 인바운드 엔드포인트를 먼저 삭제해야 합니다. 인바운드 엔드포인트가 제거되면 부모 DNS 확인자를 삭제할 수 있습니다.
인바운드 엔드포인트 삭제
Remove-AzDnsResolverInboundEndpoint -Name myinboundendpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup
가상 네트워크 링크 삭제
Remove-AzDnsForwardingRulesetVirtualNetworkLink -DnsForwardingRulesetName $dnsForwardingRuleset.Name -Name vnetlink -ResourceGroupName myresourcegroup
DNS 전달 규칙 집합 삭제
Remove-AzDnsForwardingRuleset -Name $dnsForwardingRuleset.Name -ResourceGroupName myresourcegroup
아웃바운드 엔드포인트 삭제
Remove-AzDnsResolverOutboundEndpoint -DnsResolverName mydnsresolver -ResourceGroupName myresourcegroup -Name myoutboundendpoint
DNS 확인자 삭제
Remove-AzDnsResolver -Name mydnsresolver -ResourceGroupName myresourcegroup