この記事の著者は、ITコミュニティのメンバーであるAndrey Kaptelinです。
Windows Server Technical Preview 2のリリースでは、多くのサービスが更新されています。 名誉あるDNSネームサーバーも更新をバイパスしませんでした。 PowerShellからのDNSサーバー管理のサポートに加えて、新しい機能、DNSポリシーが登場しました。
DNSポリシーは、着信要求の内容に応じて操作を適応させるDNSサーバーの拡張機能です。 着信要求にポリシーを優先的に適用するため、意図的に不要な要求を除外するか、記述された規則に従って応答の内容を変更するようサーバーに指示することにより、サーバーの操作を大幅に促進することができます。
動作原理
ポリシーは、次の3つのカテゴリの要求に適用されます。
- 記録する許可のリクエスト 。 名前をIPアドレスに解決するための、またはTXT、MXおよびSRVレコードの値を受信するためのすべての通常のリクエスト。
- ゾーンを転送する要求 。 セカンダリサーバーからのゾーン情報の更新要求。 そのようなリクエストが外部サーバーに対して実行されると、ゾーンのすべてのコンテンツを受信します。
- 再帰クエリを実行する必要があるクエリ 。 たとえば、クライアントがゾーンにない名前を要求しました。 サーバーは、結果を取得するために親サーバーに再度問い合わせる必要があります。 外部クライアントの場合、そのようなリクエストの処理は必ずしも必要ではありません。
このゾーンがActive Directoryに統合されていない場合、ポリシーの範囲はサーバー全体または特定のゾーンのいずれかになります。
DNSサーバーポリシーを使用すると、次のアクションを実装できます。
- 別のレコードセットでゾーンを作成します。
- クライアントをIPアドレスで分類し、ポリシーを適用するためのルールでこれを使用します。
- サーバー全体と、ADに統合されていないゾーンにポリシーを適用します。
- 要求を受信したインターフェイスに応じて、異なるポリシーを適用します。
- 時刻に基づいてポリシーを適用します。
- 要求されたレコードのタイプに基づいてポリシーを適用します。
- ラウンドロビンが管理するのと同様に、ゾーンの異なるバージョンからのデータを事前に決められた割合で要求に応答します。
- ポリシーを順ゾーンに適用します。
- 要求を完了するために再帰が必要な場合は、目的のフィルターポリシーを適用します。
- ポリシーを正しい処理順序で配置します。
作成されたすべてのポリシーは、次のセクションのレジストリに保存されます。
ポリシールールで使用される指定されたサブネットは、レジストリキーに保存されます
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\ClientSubnets
サーバーに適用されるポリシーはレジストリキーに保存されます
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Policies
特定のゾーンに適用されるポリシーはレジストリキーに保存されます
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\{ }\Policies
再帰クエリルールで使用されるゾーンはレジストリキーに保存されます
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\ServerScopes
サーバー全体の再帰状態の値(ゾーン「。」が使用されます)は、セクションに保存されます
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
NoRecursionキーは「0」です-再帰はオンになり、「1」はオフになります。 オンからオフに切り替えるには、DNSサーバーサービスを再起動する必要があります。
ゾーンに対して代替コンテンツが作成された場合( Add-DnsServerZoneScope )、次の場所にあるファイルに配置されます。
C:\ Windows \ System32 \ dns \ {ゾーン名}
そして、構成がレジストリに書き込まれます
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DNS Server\Zones\{_}\ZoneScopes\
ゾーンの代替バージョンを削除すると、レジストリエントリが削除され、代替コンテンツファイルはそのまま残ります。
豊富な設定にもかかわらず、いくつかのPowerShellコマンドで設定を変更できます。
書き込み権限と再帰クエリのポリシーを使用するには:
Add-DnsServerQueryResolutionPolicy
Get-DnsServerQueryResolutionPolicy
Set-DnsServerQueryResolutionPolicy
Remove-DnsServerQueryResolutionPolicy
ゾーン転送要求を処理するには:
Add-DnsServerZoneTransferPolicy
Get-DnsServerZoneTransferPolicy
Set-DnsServerZoneTransferPolicy
Remove-DnsServerZoneTransferPolicy
ポリシー実行アクションは次のとおりです。
-Action ALLOW-クエリはDNSサーバーによって実行されます
-Action DENY -DNSサーバーが失敗します
-Action IGNORE-要求はDNSサーバーによって処理されません
ポリシーを処理する段階を理解するために、次のリクエストフローパターンがあります。
書き込み許可と再帰クエリを処理するためのスキーム:

ゾーンの転送要求を処理するスキーム:

例
再帰クエリの実行制限を構成する
内部クライアントに対してのみ再帰クエリを実行するようにDNSサーバーを構成するタスクがあります。 サーバーには2つのネットワークインターフェイスがあります。 外部IPアドレスは1.1.1.1、内部インターフェイスIPアドレスは10.0.0.39です。 このようなクエリの実行を内部インターフェイスのみに制限することにより、このタスクを実行できます。 これを行うには、サーバーレベルで再帰的な要求を禁止し、内部インターフェイスで受信した要求のみを許可する必要があります。
# «.» - .. Set-DnsServerRecursionScope -Name . -EnableRecursion $False # Add-DnsServerRecursionScope -Name "InternalClients" -EnableRecursion $True # , Add-DnsServerQueryResolutionPolicy -Name "SplitBrainRecursionPolicy" -Action ALLOW -ApplyOnRecursion -RecursionScope "InternalClients" -ServerInterfaceIP "EQ,10.0.0.39"
ポリシー作成チームをより詳細に分析します。
Add-DnsServerQueryResolutionPolicy-レコードおよび再帰クエリを処理するためのポリシーを作成するコマンドレット。
-Name "SplitBrainRecursionPolicy" -ポリシー名
-Action ALLOW-ポリシーアクション-リクエストを実行する
-ApplyOnRecursion-ポリシーは、再帰的リクエストを実行する必要があるリクエストのみを処理します
-RecursionScope "InternalClients-以前に定義された領域の再帰の許可または禁止の値を取得します
-ServerInterfaceIP“ EQ、10.0.0.39” -ポリシー施行規則-10.0.0.39に等しいIPv4アドレスを持つサーバーインターフェイスに到着する要求のみ。
名前解決要求への応答の変更
同社は、ヨーロッパとオーストラリアの2つのサイトにフォールトトレラントWebサーバーを設置しています。 両方のサイトの速度は常に同じですが、夜はレンタルコストが低くなります。 会社は時刻に応じてサイトを使用することにしました。 これを行うために、80/20の割合で顧客の要求を昼夜のデータセンターに配布することが決定されました。
# Add-DnsServerZoneScope -ZoneName "testzone.z" -Name "EuropeDC" Add-DnsServerZoneScope -ZoneName "testzone.z" -Name "AustralianDC" # - Add-DnsServerResourceRecord -ZoneName "testzone.z" -A -Name "www" -IPv4Address "1.1.1.1" -ZoneScope "EuropeDC" Add-DnsServerResourceRecord -ZoneName "testzne.oz" -A -Name "www" -IPv4Address "2.2.2.2" -ZoneScope "AustralianDC" # Add-DnsServerQueryResolutionPolicy -Name "www-6-18" -Action ALLOW -ZoneScope "AustralianDC,4;EuropeDC,1" –TimeOfDay “EQ,06:00-18:00” -ZoneName "testzone.z" –ProcessingOrder 1 Add-DnsServerQueryResolutionPolicy -Name "www-0-6" -Action ALLOW -ZoneScope "AustralianDC,1;EuropeDC,4" –TimeOfDay “EQ,00:00-06:00” -ZoneName "testzone.z" –ProcessingOrder 2 Add-DnsServerQueryResolutionPolicy -Name "www-18-24" -Action ALLOW -ZoneScope "AustralianDC,1;EuropeDC,4" –TimeOfDay “EQ,18:00-23:59” -ZoneName "testzone.z" –ProcessingOrder 3
ポリシー作成チームをより詳細に分析します。
Add-DnsServerQueryResolutionPolicy-ポリシーコマンドレットの作成
-Name "www-6-18" -ポリシー名
-Action ALLOW-ポリシーアクション-リクエストを実行する
-ZoneScope "AustralianDC、4; EuropeDC、1" -ゾーンの2つのバージョンを4対1の割合で使用するようにポリシーに指示し、ヨーロッパおよびオーストラリアのゾーンのバージョンからのデータ出力で80%から20%の必要な比率を取得します
–TimeOfDay“ EQ、06:00-18:00” -ポリシーの期間
-ZoneName„ testzone.z“ -ポリシーが適用されるゾーンの名前
–ProcessingOrder 1-このゾーンのポリシーにポリシーを適用する優先度
ゾーン転送リクエストを制限する
この会社には、外部ゾーン用のプライマリDNSサーバーと、異なるプロバイダーがホストする2つのセカンダリDNSサーバーがあります。 ファイアウォールがポート53のTCPを介してメインサーバーにアクセスするのを防ぐことはできません。 ゾーンには、UDPパケットサイズを超えるエントリがあります。 これらの目的でDNSポリシーを使用することが決定されました。
# DNS- Add-DnsServerClientSubnet -Name "DNSsecondary1" -IPv4Subnet 4.4.4.4/32 Add-DnsServerClientSubnet -Name "DNSsecondary2" -IPv4Subnet 5.5.5.5/32 # Add-DnsServerZoneTransferPolicy -Name "Allow secondary DNS" -ZoneName "testzone.z" -Action IGNORE -ClientSubnet "ne,DNSsecondary1,DNSsecondary2"
ポリシー作成チームをより詳細に分析します。
Add-DnsServerZoneTransferPolicy-ゾーン転送要求処理ポリシーの作成コマンドレット
-Name「セカンダリDNSを許可する」 -ポリシー名
-ZoneName„ testzone.z“ -ポリシーが動作するゾーンの名前
-Action IGNORE-ポリシーアクション
-ClientSubnet„ ne、DNSsecondary1、DNSsecondary2“ -サーバーを除くすべてのサーバーのアプリケーション条件
ご覧のとおり、多くの問題を解決するために、DNSポリシーを使用できるようになりました。 クエリをDNSサーバーに渡すためのルールを正しく説明すると、サービスを最適化できるだけでなく、不要なクエリを除外することでDNSサーバーの負荷を軽減できます。
関連リンク
DNSポリシーの概要
Windowsネットワークチームのブログ記事[MSFT]