DNS 정책 개요

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016

이 항목을 사용하여 Windows Server 2016의 새로운 DNS 정책에 대해 알아볼 수 있습니다. 지리적 위치 기반 트래픽 관리에 대한 DNS 정책, 하루 중 시간에 따른 지능형 DNS 응답을 사용하여 분할 브레인 배포를 위해 구성된 단일 DNS 서버를 관리하고 DNS 쿼리에 필터를 적용하는 등의 작업을 수행할 수 있습니다. 다음 항목은 이러한 기능에 대한 자세한 정보를 제공합니다.

  • 애플리케이션 부하 분산. 여러 위치에 애플리케이션의 여러 인스턴스를 배포한 경우 DNS 정책을 사용하여 서로 다른 애플리케이션 인스턴스 간의 트래픽 부하를 분산하여 애플리케이션에 대한 트래픽 부하를 동적으로 할당할 수 있습니다.

  • 지리적 위치 기반 트래픽 관리. DNS 정책을 사용하여 클라이언트와 클라이언트가 연결하려는 리소스의 지리적 위치에 따라 주 및 보조 DNS 서버가 DNS 클라이언트 쿼리에 응답하도록 허용하여 클라이언트에 가장 가까운 리소스의 IP 주소를 제공할 수 있습니다.

  • 분할 DNS 두뇌합니다. 분할 브레인 DNS를 사용하면 DNS 레코드가 동일한 DNS 서버의 다른 영역 범위로 분할되고 DNS 클라이언트는 클라이언트가 내부 클라이언트인지 외부 클라이언트인지에 따라 응답을 받습니다. Active Directory 통합 영역 또는 독립 실행형 DNS 서버의 영역에 대해 분할 브레인 DNS를 구성할 수 있습니다.

  • 필터링. 제공하는 조건에 따라 쿼리 필터를 만들도록 DNS 정책을 구성할 수 있습니다. DNS 정책에서 쿼리 필터를 사용 하는 DNS 쿼리 및 DNS 쿼리를 보내는 DNS 클라이언트에 따라 사용자 지정 방식으로 응답 하도록 DNS 서버를 구성할 수 있습니다.

  • 포렌식 DNS 정책을 사용하여 악의적인 DNS 클라이언트를 연결하려는 컴퓨터로 리디렉션하는 대신 존재하지 않는 IP 주소로 리디렉션할 수 있습니다.

  • 하루 중 시간 기반 리디렉션합니다. DNS 정책을 사용하여 하루 중 시간을 기반으로 하는 DNS 정책을 사용하여 애플리케이션의 여러 지리적으로 분산된 인스턴스에 애플리케이션 트래픽을 분산할 수 있습니다.

새로운 개념

위에 나열된 시나리오를 지원하는 정책을 만들려면 영역의 레코드 그룹, 네트워크의 클라이언트 그룹, 기타 요소 중에서 식별할 수 있어야 합니다. 이러한 요소는 다음과 같은 새 DNS 개체로 표시됩니다.

  • 클라이언트 서브넷: 클라이언트 서브넷 개체는 쿼리가 DNS 서버에 제출되는 IPv4 또는 IPv6 서브넷을 나타냅니다. 서브넷을 만들어 나중에 요청이 들어오는 서브넷에 따라 적용할 정책을 정의할 수 있습니다. 예를 들어 분할 브레인 DNS 시나리오에서 www.microsoft.com 같은 이름 확인 요청은 내부 서브넷의 클라이언트에 대한 내부 IP 주소 및 외부 서브넷의 클라이언트에 대한 다른 IP 주소로 응답할 수 있습니다.

  • 재귀 범위: 재귀 범위는 DNS 서버에서 재귀를 제어하는 설정 그룹의 고유한 인스턴스입니다. 재귀 범위 전달자의 목록을 포함 하 고 재귀 사용 되는지 여부를 지정 합니다. DNS 서버는 여러 재귀 범위를 가질 수 있습니다. DNS 서버 재귀 정책을 사용하면 쿼리 집합에 대한 재귀 범위를 선택할 수 있습니다. DNS 서버가 특정 쿼리에 대해 신뢰할 수 없는 경우 DNS 서버 재귀 정책을 사용하면 해당 쿼리를 확인하는 방법을 제어할 수 있습니다. 사용할 전달자 및 재귀 사용 여부를 지정할 수 있습니다.

  • 영역 범위: DNS 영역에는 여러 영역 범위가 있을 수 있으며 각 영역 범위에는 자체 DNS 레코드 집합이 포함됩니다. 동일한 레코드는 IP 주소가 다른 여러 범위에 있을 수 있습니다. 또한 영역 전송은 영역 범위 수준에서 수행됩니다. 즉, 기본 영역의 영역 범위에서 레코드가 보조 영역의 동일한 영역 범위로 전송됩니다.

정책 유형

DNS 정책은 수준 및 유형으로 나뉩니다. 쿼리 확인 정책을 사용하여 쿼리 처리 방법을 정의하고 영역 전송 정책을 사용하여 영역 전송이 발생하는 방식을 정의할 수 있습니다. 서버 수준 또는 영역 수준에서 각 정책 유형을 적용할 수 있습니다.

쿼리 확인 정책

DNS 쿼리 확인 정책을 사용하여 DNS 서버에서 들어오는 확인 쿼리를 처리하는 방법을 지정할 수 있습니다. 모든 DNS 쿼리 확인 정책에는 다음 요소가 포함됩니다.

필드 설명 사용 가능한 값:
이름 정책 이름 - 최대 256자
- 파일 이름에 유효한 문자를 포함할 수 있습니다.
시스템 상태 정책 상태 - 사용(기본값)
-비활성화
수준 정책 수준 서버
-영역
처리 순서 쿼리가 수준별로 분류되고 적용되면 서버는 쿼리가 조건과 일치하는 첫 번째 정책을 찾아 쿼리에 적용합니다. - 숫자 값
- 동일한 수준을 포함하는 정책당 고유 값이며 값에 적용됩니다.
동작 DNS 서버에서 수행할 작업 - 허용(영역 수준의 기본값)
- 거부(서버 수준에서 기본값)
-무시
조건 정책 조건(AND/OR) 및 정책을 적용하기 위해 충족할 조건 목록 - 조건 연산자(AND/OR)
- 조건 목록(아래 기준 표 참조)
범위 범위당 영역 범위 및 가중치 값의 목록입니다. 가중치 값은 부하 분산 분산에 사용됩니다. 예를 들어 이 목록에 가중치가 3인 datacenter1과 가중치가 5인 datacenter2가 포함된 경우 서버는 8개 요청 중 3번 데이터 센터의 레코드로 응답합니다. - 영역 범위(이름별) 및 가중치 목록

참고 항목

서버 수준 정책에는 거부 또는 무시만 작업으로 사용할 수 있습니다.

DNS 정책 조건 필드는 다음 두 가지 요소로 구성됩니다.

이름 설명 샘플 값
클라이언트 서브넷 미리 정의 된 클라이언트 서브넷의 이름입니다. 쿼리를 전송한 서브넷을 확인 하는 데 사용 합니다. - EQ, 스페인, 프랑스 - 서브넷이 스페인 또는 프랑스로 식별되면 true로 확인됩니다.
- NE, 캐나다, 멕시코 - 클라이언트 서브넷이 캐나다 및 멕시코 이외의 서브넷인 경우 true로 확인됩니다.
전송 프로토콜 쿼리에 사용 되는 프로토콜을 전송 합니다. 가능한 항목은 UDP 및 TCP입니다. - EQ,TCP
- EQ,UDP
인터넷 프로토콜 쿼리에서 사용 되는 네트워크 프로토콜입니다. 가능한 항목은 IPv4IPv6입니다. - EQ,IPv4
- EQ,IPv6
서버 인터페이스 IP 주소 들어오는 DNS 서버 네트워크 인터페이스의 IP 주소 - EQ,10.0.0.1
- EQ,192.168.1.1
FQDN 쿼리에서 레코드의 FQDN(와일드 카드 사용 가능) - EQ,www.contoso.com - 쿼리가 www.contoso.com FQDN을 확인하려는 경우에만 true로 확인됩니다.
- EQ,*.contoso.com,*.woodgrove.com - 쿼리가 contoso.com 또는woodgrove.com끝나는 레코드에 대한 쿼리인 경우 true로 확인됩니다.
쿼리 유형 쿼리되는 레코드 유형(A, SRV, TXT) - EQ,TXT,SRV - 쿼리가 TXT 또는 SRV 레코드를 요청하는 경우 true로 확인됩니다.
- EQ,MX - 쿼리가 MX 레코드를 요청하는 경우 true로 확인됩니다.
하루 중 시간 쿼리가 수신되는 시간 - EQ,10:00-12:00,22:00-23:00 - 쿼리가 오전 10시부터 정오 사이에 수신되거나 오후 10시에서 오후 11시 사이에 수신되면 true로 확인됩니다.

위의 표를 시작점으로 사용하여 아래 표는 모든 유형의 레코드에 대한 쿼리를 일치시키는 데 사용되지만 contoso.com SRV 레코드를 일치시키는 데 사용되는 조건을 정의하는 데 사용할 수 있습니다기본 인터페이스 10.0.0.3을 통해 오후 8시에서 10시 사이에 TCP를 통해 10.0.0.0/24 서브넷의 클라이언트에서 가져옵니다.

속성
클라이언트 서브넷 EQ,10.0.0.0/24
전송 프로토콜 EQ,TCP
서버 인터페이스 IP 주소 EQ,10.0.0.3
FQDN EQ,*.contoso.com
쿼리 유형 NE,SRV
하루 중 시간 EQ,20:00-22:00

처리 순서에 다른 값이 있는 한 동일한 수준의 여러 쿼리 확인 정책을 만들 수 있습니다. 여러 정책을 사용할 수 있는 경우 DNS 서버는 다음과 같은 방식으로 들어오는 쿼리를 처리합니다.

DNS policy processing

재귀 정책

재귀 정책은 특별한 유형의 서버 수준 정책입니다. 재귀 정책은 DNS 서버가 쿼리에 대한 재귀를 수행하는 방법을 제어합니다. 재귀 정책은 쿼리 처리가 재귀 경로에 도달할 때만 적용됩니다. 쿼리 집합에 대한 재귀에 대해 DENY 또는 IGNORE 값을 선택할 수 있습니다. 또는 쿼리 집합에 대한 전달자 집합을 선택할 수 있습니다.

재귀 정책을 사용하여 Split-brain DNS 구성을 구현할 수 있습니다. 이 구성에서 DNS 서버는 쿼리에 대한 클라이언트 집합에 대해 재귀를 수행하는 반면 DNS 서버는 해당 쿼리에 대한 다른 클라이언트에 대한 재귀를 수행하지 않습니다.

재귀 정책에는 아래 표의 요소와 함께 일반 DNS 쿼리 확인 정책에 포함된 것과 동일한 요소가 포함됩니다.

이름 설명
재귀 시 적용 이 정책은 재귀에만 사용되도록 지정합니다.
재귀 범위 재귀 범위의 이름입니다.

참고 항목

재귀 정책은 서버 수준에서만 만들 수 있습니다.

영역 전송 정책

영역 전송 정책은 DNS 서버에서 영역 전송이 허용되는지 여부를 제어합니다. 서버 수준 또는 영역 수준에서 영역 전송에 대한 정책을 만들 수 있습니다. 서버 수준 정책은 DNS 서버에서 발생하는 모든 영역 전송 쿼리에 적용됩니다. 영역 수준 정책은 DNS 서버에서 호스트되는 영역의 쿼리에만 적용됩니다. 영역 수준 정책의 가장 일반적인 용도는 차단되거나 안전한 목록을 구현하는 것입니다.

참고 항목

영역 전송 정책은 DENY 또는 IGNORE만 작업으로 사용할 수 있습니다.

아래 서버 수준 영역 전송 정책을 사용하여 지정된 서브넷에서 contoso.com 기본 영역 전송을 거부할 수 있습니다.

Add-DnsServerZoneTransferPolicy -Name DenyTransferOfContosoToFabrikam -Zone contoso.com -Action DENY -ClientSubnet "EQ,192.168.1.0/24"

처리 순서에 다른 값이 있는 한 동일한 수준의 여러 영역 전송 정책을 만들 수 있습니다. 여러 정책을 사용할 수 있는 경우 DNS 서버는 다음과 같은 방식으로 들어오는 쿼리를 처리합니다.

DNS process for multiple zone transfer policies

DNS 정책 관리

PowerShell을 사용하여 DNS 정책을 만들고 관리할 수 있습니다. 아래 예제에서는 DNS 정책을 통해 구성할 수 있는 다양한 샘플 시나리오를 살펴봅니다.

트래픽 관리

DNS 클라이언트의 위치에 따라 FQDN 기반 트래픽을 다른 서버로 보낼 수 있습니다. 아래 예제에서는 특정 서브넷에서 북아메리카n 데이터 센터로, 다른 서브넷에서 유럽 데이터 센터로 고객을 안내하는 트래픽 관리 정책을 만드는 방법을 보여 줍니다.

Add-DnsServerClientSubnet -Name "NorthAmericaSubnet" -IPv4Subnet "172.21.33.0/24"
Add-DnsServerClientSubnet -Name "EuropeSubnet" -IPv4Subnet "172.17.44.0/24"
Add-DnsServerZoneScope -ZoneName "Contoso.com" -Name "NorthAmericaZoneScope"
Add-DnsServerZoneScope -ZoneName "Contoso.com" -Name "EuropeZoneScope"
Add-DnsServerResourceRecord -ZoneName "Contoso.com" -A -Name "www" -IPv4Address "172.17.97.97" -ZoneScope "EuropeZoneScope"
Add-DnsServerResourceRecord -ZoneName "Contoso.com" -A -Name "www" -IPv4Address "172.21.21.21" -ZoneScope "NorthAmericaZoneScope"
Add-DnsServerQueryResolutionPolicy -Name "NorthAmericaPolicy" -Action ALLOW -ClientSubnet "eq,NorthAmericaSubnet" -ZoneScope "NorthAmericaZoneScope,1" -ZoneName "Contoso.com"
Add-DnsServerQueryResolutionPolicy -Name "EuropePolicy" -Action ALLOW -ClientSubnet "eq,EuropeSubnet" -ZoneScope "EuropeZoneScope,1" -ZoneName contoso.com

스크립트의 처음 두 줄은 북아메리카 및 유럽용 클라이언트 서브넷 개체를 만듭니다. 그 후 두 줄은 각 지역에 대해 하나씩 contoso.com do기본 내에 영역 범위를 만듭니다. 그 후 두 줄은 www.contoso.com 서로 다른 IP 주소에 연결하는 레코드를 각 영역에 만듭니다. 하나는 유럽의 경우, 다른 하나는 북아메리카. 마지막으로 스크립트의 마지막 줄은 두 개의 DNS 쿼리 확인 정책을 만듭니다. 하나는 북아메리카 서브넷에 적용되고 다른 하나는 유럽 서브넷에 적용됩니다.

할 일의 쿼리를 차단합니다기본

DNS 쿼리 확인 정책을 사용하여 할 일기본 대한 쿼리를 차단할 수 있습니다. 아래 예제에서는 treyresearch.net 모든 쿼리를 차단합니다.

Add-DnsServerQueryResolutionPolicy -Name "BlackholePolicy" -Action IGNORE -FQDN "EQ,*.treyresearch.com"

서브넷에서 쿼리를 차단

특정 서브넷에서 들어오는 쿼리를 차단할 수도 있습니다. 아래 스크립트는 172.0.33.0/24에 대한 서브넷을 만든 다음, 해당 서브넷에서 들어오는 모든 쿼리를 무시하는 정책을 만듭니다.

Add-DnsServerClientSubnet -Name "MaliciousSubnet06" -IPv4Subnet 172.0.33.0/24
Add-DnsServerQueryResolutionPolicy -Name "BlackholePolicyMalicious06" -Action IGNORE -ClientSubnet  "EQ,MaliciousSubnet06"

내부 클라이언트에 대한 재귀 허용

DNS 쿼리 확인 정책을 사용하여 재귀를 제어할 수 있습니다. 아래 샘플은 분할 브레인 시나리오에서 외부 클라이언트에 대해 사용하지 않도록 설정하면서 내부 클라이언트에 대한 재귀를 사용하도록 설정하는 데 사용할 수 있습니다.

Set-DnsServerRecursionScope -Name . -EnableRecursion $False
Add-DnsServerRecursionScope -Name "InternalClients" -EnableRecursion $True
Add-DnsServerQueryResolutionPolicy -Name "SplitBrainPolicy" -Action ALLOW -ApplyOnRecursion -RecursionScope "InternalClients" -ServerInterfaceIP  "EQ,10.0.0.34"

스크립트의 첫 번째 줄은 ""로 명명된 기본 재귀 범위를 변경합니다. (점) 재귀를 사용하지 않도록 설정합니다. 두 번째 줄은 재귀를 사용하도록 설정된 InternalClients라는 재귀 범위를 만듭니다. 그리고 세 번째 줄은 IP 주소로 10.0.0.34가 있는 서버 인터페이스를 통해 들어오는 모든 쿼리에 새로 만든 재귀 범위를 적용하는 정책을 만듭니다.

서버 수준 영역 전송 정책 만들기

DNS 영역 전송 정책을 사용하여 보다 세분화된 형식으로 영역 전송을 제어할 수 있습니다. 아래 샘플 스크립트를 사용하여 지정된 서브넷의 모든 서버에 대한 영역 전송을 허용할 수 있습니다.

Add-DnsServerClientSubnet -Name "AllowedSubnet" -IPv4Subnet 172.21.33.0/24
Add-DnsServerZoneTransferPolicy -Name "NorthAmericaPolicy" -Action IGNORE -ClientSubnet "ne,AllowedSubnet"

스크립트의 첫 번째 줄은 IP 블록이 172.21.33.0/24인 AllowedSubnet이라는 서브넷 개체를 만듭니다. 두 번째 줄은 이전에 만든 서브넷의 DNS 서버로 영역 전송을 허용하는 영역 전송 정책을 만듭니다.

영역 수준 영역 전송 정책 만들기

영역 수준 영역 전송 정책을 만들 수도 있습니다. 아래 예제에서는 IP 주소가 10.0.0.33인 서버 인터페이스에서 들어오는 contoso.com 대한 영역 전송 요청을 무시합니다.

Add-DnsServerZoneTransferPolicy -Name "InternalTransfers" -Action IGNORE -ServerInterfaceIP "eq,10.0.0.33" -PassThru -ZoneName "contoso.com"

DNS 정책 시나리오

특정 시나리오에 DNS 정책을 사용하는 방법에 대한 자세한 내용은 이 가이드의 다음 항목을 참조하세요.

읽기 전용 Do기본 컨트롤러에서 DNS 정책 사용

DNS 정책은 읽기 전용 Do기본 컨트롤러와 호환됩니다. 읽기 전용 Do기본 컨트롤러에 새 DNS 정책을 로드하려면 DNS 서버 서비스를 다시 시작해야 합니다. 쓰기 가능 do기본 컨트롤러에는 이 작업이 필요하지 않습니다.