AD DNS 포워더 및 조건부 포워더 마스터링

Windows DNS 전달자와 DNS 조건부 전달자는 DNS 인프라의 중요한 부분입니다. 이 튜토리얼에서는 AD DNS 전달자에 대해 알아보고 환경에서 이를 관리하는 방법을 다룰 것입니다.

가끔씩 전달자 주소를 추가하거나 관리해야 할 때가 있습니다. 이러한 변경 사항 중 일부는 기업의 여러 DNS 서버에서 수행해야 합니다. 다행히도 PowerShell의 Set-DnsServerForwarder cmdlet과 같은 명령을 사용하여 이 두 가지 DNS 서비스를 쉽게 관리할 수 있습니다.

이 블로그 포스트에는 TechSnips 기고자인 David Lamb가 만든 동영상이 함께 제공됩니다. 관심이 있다면 동영상을 시청하거나 텍스트로 계속 읽으세요!

DNS 전달자 대체

DNS 전달자는 DNS 서버가 자체적으로 권한이 없는 주소에 대한 쿼리를 조회하기 위해 사용됩니다. 이를 통해 DNS 서버는 이름을 해결하는 효율적인 방법을 제공받게 됩니다. 전달자가 없으면 DNS 서버는 알려지지 않은 주소를 해결하기 위해 루트 힌트 서버에 쿼리를 보내야 합니다.

전달자 주소는 각각의 DNS 서버에서 별도로 구성되지만, PowerShell을 사용하면 Set-DnsServerForwarder cmdlet을 사용하여 이를 훨씬 쉽게 관리할 수 있습니다.

현재 구성된 로컬 DNS 서버의 포워더를 확인하는 것부터 시작하십시오. 이를 위해 Get-DnsServerForwarder cmdlet을 사용합니다. 우리는 먼저 Get-* cmdlet을 사용하는 이유는 기존의 포워더를 먼저 찾아야 하기 때문입니다.

아래에서 볼 수 있듯이, IP 주소가 8.8.8.8과 8.8.4.4인 두 개의 포워더가 구성되어 있습니다.

PS> Get-DnsServerForwarder
Finding existing DNS server forwarders

이제 추가적인 포워더를 추가하세요. 이 포워더는 DMZ에 구성한 새로운 DNS 서버이거나 ISP에서 제공하는 포워딩 주소를 사용할 수도 있습니다. 이 경우, 새 주소를 설정하기 위해 Set-DnsServerForwarder cmdlet을 사용하고, 주소가 올바르게 설정되었는지 확인하기 위해 Get-DnsServerForwarder를 사용합니다.

Set-DnsServerForwarder -IPAddress 192.168.1.1
Get-DnsServerForwarder
Confirming DNS server forwarder change

안타깝게도, 이는 원하는 결과를 얻지 못했습니다. 위에서 볼 수 있듯이, Set-DnsServerForwarder cmdlet을 사용하면 포워더 목록 전체를 대체하는 것이 아니라 대체합니다. 목록에 주소를 추가하려면 전체 목록을 대체하는 대신 Add-DnsServerForwarder를 사용해야 합니다.

이를 수정하기 위해 원래의 두 개의 포워더로 목록을 대체하고, 새 주소를 추가한 후에 성공적인지 확인하세요.

Set-DnsServerForwarder -IPAddress 8.8.8.8, 8.8.4.4
Add-DnsServerForwarder -IPAddress 192.168.1.1
Get-DnsServerForwarder
Confirming DNS server forwarder addition

이제 세 개의 포워더가 모두 추가되었습니다.

포워더 제거

포워더 주소를 제거하려면 아래와 같이 Remove-DnsServerForwarder cmdlet을 사용합니다. 그런 다음 주소가 제거되었는지 확인하세요.

Set-DnsServerForwarder가 DNS 포워더를 대체한다면, Remove-DnsServerForwarder는 완전히 제거합니다.

Remove-DnsServerForwarder -IPAddress 192.168.1.1
Get-DnsServerForwarder
Confirming DNS server forwarder removal

여러 개의 DNS 서버로 스케일링

가끔은 여러 개의 DNS 서버에 대해 전달자 주소를 추가하거나 제거해야 할 수도 있습니다. 이 경우에는 Set-DnsServerForwarder가 작동하지 않습니다. 다행히도 PowerShell을 사용하면 여러 개의 DNS 서버로 이 작업을 상대적으로 쉽게 확장할 수 있습니다. Invoke-Command를 사용하면 DNS 서버의 목록을 포함한 스크립트 블록 매개변수 값에 Add-DnsServerForwarder를 넣을 수 있습니다. 이렇게 하면 단일 명령으로 모든 DNS 서버를 수정할 수 있습니다. 그리고 비슷한 명령을 사용하여 변경 사항의 결과를 확인할 수 있습니다.

Invoke-Command -ComputerName DC01, DC02, DC03 -ScriptBlock {
    Add-DnsServerForwarder -IPAddress 192.168.1.1
}
Invoke-Command -ComputerName DC01, DC02, DC03 -ScriptBlock { Get-DnsServerForwarder }
Adding DNS server forwarders on multiple DNS Servers

DNS 조건부 전달자

A special type of forwarder, called a conditional forwarder, cannot be modified with the Set-DnsServerForwarder cmdlet. This type of forwarder can be used when you have been provided with the IP address(es) of the DNS server(s) for a known DNS domain name.

DNS 조건부 전달자는 이 문서에서 이전에 나열된 서버 전달자를 사용하기 전에 DNS 서버에서 사용됩니다.

예를 들어, tailspintoys.com에 대해 조건부 전달자가 구성되어 있다면, DNS 서버는 자신이 권한을 가지고 있지 않은 도메인인지 확인한 후 조건부 전달자를 확인하고 해당 도메인의 원하는 주소를 위한 DNS 서버가 있는지 확인합니다.

DNS 조건부 전달자의 좋은 기능 중 하나는 Active Directory 통합 DNS Zone과 마찬가지로 다른 DNS 서버로 복제될 수 있다는 것입니다.

Get-DnsServerZone cmdlet을 사용하여 조건부 전달자가 구성되었는지 확인하세요.

PS> Get-DnsServerZone
Finding DNS server zones

조건부 전달자는 ZoneTypeforwarder로 표시됩니다. 이 경우, 구성된 전달자가 없습니다. 따라서 Add-DnsServerConditionalForwarderZone을 사용하여 조건부 전달자를 생성하고, 전체 Active Directory 포레스트로 복제되도록 설정한 다음, 생성되었는지 확인합니다.

PS> Add-DnsServerConditionalForwarderZone `
    -Name tailspintoys.com `
    -MasterServers 10.10.14.240,10.10.14.241 `
    -ReplicationScope Forest

PS> Get-DnsServerZone
Verifying new DNS server conditional forwarder zone

출력에는 조건부 전달자가 구성되어 있고 사용할 준비가 되어 있다는 것을 보여줍니다.

요약

PowerShell을 사용하면 DNS 전달자를 쉽게 관리할 수 있습니다! 이제 PowerShell을 사용하여 AD DNS 전달자를 다양한 방법으로 관리하고 자동화할 수 있을 것입니다. 이제 우리는 거의 모든 측면에서 이 전달자를 다루었습니다.

Source:
https://adamtheautomator.com/dns-conditional-forwarder/