精通 AD DNS 轉發器和條件轉發器

Windows DNS轉發器和DNS條件轉發器是您DNS基礎架構的重要組成部分。在本教程中,我們將介紹AD DNS轉發器以及如何在您的環境中管理它們。

您會發現,有時需要添加或管理這些轉發器地址。其中一些更改需要在企業中的多個DNS服務器上進行。幸運的是,使用像PowerShell的Set-DnsServerForwarder cmdlet等命令,您可以輕鬆管理這兩個DNS服務。

這篇博客文章有一個由

替換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

您現在已經添加了所有三個轉發器。

刪除DNS轉發器

假設您想要刪除一個轉發器地址,您將使用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伺服器轉發之前由DNS伺服器使用的。

例如,如果您已為tailspintoys.com配置了條件轉發,則您的DNS伺服器在檢查它不是授權域之後,將檢查條件轉發並找到存在的條目。此時,您的DNS伺服器會查詢tailspintoys.com域中所需地址的DNS伺服器。

DNS條件轉發的一個好處是它們可以像任何Active Directory整合的DNS區域一樣被複製到其他DNS伺服器中。

首先,使用Get-DnsServerZone命令確認是否已配置條件轉發。

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/