AD DNSフォワーダーと条件付きフォワーダーのマスタリング

Windows DNSフォワーダーとDNS条件付きフォワーダーは、DNSインフラストラクチャの重要な部分です。このチュートリアルでは、AD DNSフォワーダーとそれらを環境で管理する方法について説明します。

たまにはこれらのフォワーダーアドレスを追加または管理する必要があることに気付くでしょう。これらの変更のいくつかは、エンタープライズ内の複数のDNSサーバーで行う必要があります。幸いなことに、PowerShellのSet-DnsServerForwarderコマンドレットなどのコマンドを使用すると、これらのDNSサービスの両方を簡単に管理できます。

このブログ投稿には、TechSnipsの寄稿者であるDavid Lambによって作成された補足ビデオがあります。ご自由にご覧いただくか、テキストをご覧ください。

DNSフォワーダーの置換

DNSフォワーダーは、DNSサーバーが所属するゾーンに含まれていないアドレスのクエリを検索するために使用されます。これにより、DNSサーバーは名前を解決するための効率的な手段を提供します。フォワーダーが設定されていない場合、DNSサーバーは未知のアドレスを解決するためにルートヒントサーバーにクエリを送信する必要があります。

これらのフォワーダーアドレスは、各DNSサーバーごとに個別に設定されますが、PowerShellを使用すると、Set-DnsServerForwarderコマンドレットを使用して簡単に管理できます。

現在のローカルDNSサーバーの設定されているフォワーダーを表示してください。これには、Get-DnsServerForwarderコマンドレットを使用します。最初にGet-*コマンドレットを使用する理由は、既存のフォワーダーをすべて見つける必要があるためです。

以下のように、IPアドレスが8.8.8.8と8.8.4.4の2つのフォワーダーが設定されています。

PS> Get-DnsServerForwarder
Finding existing DNS server forwarders

次に、追加のフォワーダーを追加します。このフォワーダーは、おそらくDMZに設定した新しいDNSサーバーであるか、またはISPが提供した転送先アドレスを使用するかもしれません。この場合、Set-DnsServerForwarderコマンドレットを使用して新しいアドレスを設定し、Get-DnsServerForwarderを使用してアドレスが正しく設定されたかを確認します。

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

残念ながら、これは望んだ結果にはなりませんでした。上記のように、Set-DnsServerForwarderコマンドレットを使用すると、フォワーダーのリスト全体が置き換えられます。リスト全体ではなく、リストにアドレスを追加するためには、Add-DnsServerForwarderを使用する必要があります。

これを修正するために、リストを元の2つのフォワーダーで置き換え、新しいアドレスを追加し、成功したかどうかを確認してください。

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

これで、3つのフォワーダーがすべて追加されました。

DNSフォワーダーの削除

フォワーダーアドレスを削除したい場合は、以下に示すようにRemove-DnsServerForwarderコマンドレットを使用します。その後、アドレスが削除されたかどうかを確認します。

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を配置すると、1つのコマンドですべての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サーバは、tailspintoys.comドメインの所望のアドレスのためにリストアップされたDNSサーバに問い合わせます。

DNS条件付きフォワーダーの良い機能の1つは、任意の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/