次の方法で共有


DNS ポリシーの概要

このトピックを使用して、Windows Server 2016 の新機能である DNS ポリシーについて学習することができます。 DNS ポリシーを使用して地理的な場所に基づくトラフィック管理や時刻に基づくインテリジェント DNS 応答を実現し、スプリット ブレイン展開用に構成された単一の DNS サーバーを管理して、DNS クエリに対するフィルターの適用などを行うことができます。 次の項目では、これらの機能の詳細を示します。

  • アプリケーションの負荷分散。 複数の異なる場所にアプリケーションの複数のインスタンスをデプロイした場合は、DNS ポリシーを使用して、アプリケーションのトラフィック負荷を動的に割り当て、アプリケーション インスタンス間でトラフィック負荷のバランスを取ることができます。

  • 地理的な場所に基づくトラフィック管理。 DNS ポリシーを使用して、プライマリとセカンダリの DNS サーバーが、クライアントとクライアントが接続しようとしているリソースの両方の地理的な場所に基づいて DNS クライアントのクエリに応答でき、最も近いリソースの IP アドレスをクライアントに提供します。

  • スプリット ブレイン DNS。 スプリット ブレイン DNS では、DNS レコードが同じ DNS サーバー上の異なるゾーン スコープに分割され、DNS クライアントは、それらが内部、外部のどちらのクライアントであるかに基づいて応答を受信します。 スプリット ブレイン DNS は、Active Directory 統合ゾーン用またはスタンドアロン 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 アドレスで複数のスコープに存在する可能性があります。 また、ゾーン転送はゾーン スコープ レベルで行われます。 つまり、プライマリ ゾーン内の 1 つのゾーン スコープのレコードは、セカンダリ ゾーン内の同じゾーン スコープに転送されます。

ポリシーの種類

DNS ポリシーは、レベルと種類によって分類されます。 クエリ解決ポリシーを使用してクエリの処理方法を定義し、ゾーン転送ポリシーを使用してゾーン転送の実行方法を定義できます。 各ポリシーの種類は、サーバー レベルまたはゾーン レベルで適用できます。

クエリ解決ポリシー

DNS クエリ解決ポリシーを使用して、受信する解決クエリを DNS サーバーで処理する方法を指定できます。 すべての DNS クエリ解決ポリシーには、次の要素が含まれています。

フィールド 説明 設定可能な値
名前 ポリシー名 - 256 文字まで
- ファイル名に有効な任意の文字を含めることができます
状態 [ポリシーの状態] - 有効 (既定値)
- 無効
レベル ポリシー レベル - サーバー
- ゾーン
処理順序 クエリがレベルによって分類されて適用されると、サーバーはクエリが条件に一致する最初のポリシーを検索し、クエリに適用します - 数値
- 同じレベルを含み、値に適用されるポリシーごとの一意の値
アクション DNS サーバーによって実行されるアクション - 許可 (ゾーン レベルの場合の既定値)
- 拒否 (サーバー レベルでの既定値)
- 無視
条件 ポリシー条件 (AND/OR) と、ポリシーを適用するために満たされる条件の一覧 - 条件演算子 (AND/OR)
- 条件の一覧 (下の条件表を参照)
スコープ ゾーン スコープの一覧およびスコープごとの重み付け値。 重み付け値は負荷分散に使用されます。 たとえば、この一覧に重み 3 の datacenter1 と、重み 5 の datacenter2 が含まれる場合、サーバーは 8 回の要求のうち 3 回、datacentre1 からのレコードで応答します - ゾーン スコープの一覧 (名前別) と重み

Note

サーバー レベルのポリシーには、アクションとして [拒否 ] または [無視 ] の値のみを指定できます。

DNS ポリシー条件フィールドは、次の 2 つの要素で構成されます。

名前 説明 サンプルの値
クライアント サブネット 定義済みのクライアントのサブネットの名前です。 クエリの送信元となるサブネットを確認するために使用します。 - EQ、スペイン、フランス - サブネットがスペインまたはフランスのいずれかとして識別される場合は true に解決されます
- NE、Canada、Mexico - クライアント サブネットがカナダとメキシコ以外のサブネットである場合は true に解決されます
トランスポート プロトコル トランスポート プロトコル クエリで使用をします。 使用可能なエントリは UDPTCP です - 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.comORwoodgrove.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 に解決されます

上の表を出発点として使用して、次の表を使用して、インターフェイス 10.0.0.3 を介して午後 8 時から午後 10 時までの間に TCP 経由で 10.0.0.0/24 サブネット内のクライアントから送信される contoso.com ドメイン内の、SRV レコードを除くあらゆる種類のレコードに対するクエリと一致するために使用される条件を定義できます。

名前 [値]
クライアント サブネット 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 ポリシーの処理

再帰ポリシー

再帰ポリシーは、特殊な 種類 のサーバー レベル ポリシーです。 再帰ポリシーでは、DNS サーバーがクエリの再帰を実行する方法を制御します。 再帰ポリシーは、クエリ処理が再帰パスに達した場合にのみ適用されます。 一連のクエリの再帰に対して DENY または IGNORE の値を選択できます。 または、一連のクエリに対して一連のフォワーダを選択できます。

再帰ポリシーを使用して、スプリット ブレイン DNS 構成を実装できます。 この構成では、DNS サーバーは、一連のクライアントに対してクエリの再帰を実行しますが、この DNS サーバーは、別のクライアントに対してそのクエリの再帰を実行しません。

再帰ポリシーには、通常の DNS クエリ解決ポリシーに含まれているのと同じ要素のほかに、次の表の要素が含まれています。

名前 説明
再帰に適用する このポリシーを再帰にのみ使用する必要がある場合に指定します。
再帰スコープ 再帰スコープの名前。

Note

再帰ポリシーは、サーバー レベルでのみ作成できます。

ゾーン転送ポリシー

ゾーン転送ポリシーは、ゾーン転送が DNS サーバーによって許可されるかどうかを制御します。 ゾーン転送ポリシーは、サーバー レベルまたはゾーン レベルで作成できます。 サーバー レベル ポリシーは、DNS サーバーで実行されるすべてのゾーン転送クエリに適用されます。 ゾーン レベル ポリシーは、DNS サーバーでホストされているゾーンのクエリにのみ適用されます。 ゾーン レベル ポリシーの最も一般的な使用方法は、ブロック リストまたはセーフ リストを実装する場合です。

Note

ゾーン転送ポリシーでは、アクションとして DENY または IGNORE のみを使用できます。

次のサーバー レベルのゾーン転送ポリシーを使用して、特定のサブネットからの contoso.com ドメインのゾーン転送を拒否できます。

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

処理順序の値が異なっていれば、同じレベルの複数のゾーン転送ポリシーを作成できます。 複数のポリシーが使用可能な場合、DNS サーバーは次の方法で受信クエリを処理します。

複数のゾーン転送ポリシーの DNS プロセス

DNS ポリシーの管理

PowerShell を使用して DNS ポリシーを作成および管理できます。 次の例では、DNS ポリシーを使用して構成できるさまざまなサンプル シナリオを示します。

トラフィック管理

DNS クライアントの場所に応じて、FQDN に基づいてトラフィックを別のサーバーに送信できます。 次の例は、トラフィック管理ポリシーを作成して、顧客を特定のサブネットから北米のデータセンターに、別のサブネットからヨーロッパのデータセンターに送信する方法を示しています。

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

スクリプトの最初の 2 行で、北米とヨーロッパのクライアント サブネット オブジェクトを作成します。 その後の 2 行で、地域ごとに 1 つずつ、contoso.com ドメイン内にゾーン スコープを作成します。 その後の 2 行は、 www.contoso.com を異なる IP アドレスに関連付けるレコードを各ゾーンに作成します。1 つはヨーロッパ用、もう 1 行は北米用です。 最後に、スクリプトの最後の行で 2 つの DNS クエリ解決ポリシーが作成され、1 つは北米のサブネットに、もう 1 つはヨーロッパのサブネットに適用されます。

ドメインのクエリをブロックする

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"

スクリプトの最初の行では、再帰を無効にするために、単に "."(ドット) という名前で既定の再帰スコープを変更します。 2 行目では、再帰が有効になっている InternalClients という名前の再帰スコープが作成されます。 3 行目では、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 という名前のサブネット オブジェクトを作成します。 2 行目では、前に作成したサブネット上の任意の 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 ポリシーを使用する方法については、このガイドの次のトピックを参照してください。

読み取り専用ドメイン コントローラーでの DNS ポリシーの使用

DNS ポリシーは、読み取り専用ドメイン コントローラーと同時に使用できます。 読み取り専用ドメイン コントローラーに新しい DNS ポリシーを読み込むには、DNS サーバー サービスの再起動が必要であることに注意してください。 これは、書き込み可能なドメイン コントローラーでは必要ありません。