こんにちは、Windows プラットフォーム サポートの串田です。
今回は、先日総務省より通達があった DNSSEC を利用する際に使用されているルート ゾーン KSK の更新に伴う Windows の DNS サーバー上での対策の必要性の確認方法についてご紹介いたします。
ICANN は、ルートゾーン KSK と呼ばれる、DNSSEC で使用される暗号化鍵のペアを更新することをアナウンスしました。
ルート DNS サーバーを経由する、DNSSEC を利用したインターネット上の名前解決には、ルートゾーン KSK が利用されるため、適切な対策が求められています。
これを受けて 2017 年 7 月 14 日(金) に、総務省からも対策の必要性が発表されています。
現在、サポート チームではそもそも運用環境にて DNSSEC を利用しているのか?利用していない場合でも対策が必要なのか?というご質問が多く寄せられています。
そこで以下では、Windows の DNS サーバーにおいて、ルート KSK の更新に伴う対策の必要性、および注意事項についてご案内いたします。
Q1.
Windows の DNS サーバーにおいてルート ゾーン KSK の更新に伴い、対策を実施する必要があるのか。
A1.
結論として、Windows OS の DNS サーバーにおいては DNSSEC の構成の有無に関わらずルート ゾーン KSK の更新に伴う対策は不要です。
一般的には、ルート ゾーン KSK を管理しているパブリックのルート DNS サーバー (権威ある DNS サーバー) に対して明示的に DNSSEC を利用するように構成されているか否かが判断基準となります。
このため、DNSSEC を構成せずに DNS サーバーを利用している環境においては、今回の更新に伴う対策は必要なく、具体的な影響もないと判断できます。
Windows において DNSSEC を利用するように構成されている場合 “Windows Server 2012” 以降の OS であれば RFC5011 (トラストアンカーの自動更新) に準拠しているため、DNS サーバーは自動更新が有効であり、対策は不要です。
更に、Windows Server 2008 R2、Windows Server 2008 ではハッシュ アルゴリズムとして "RSA/SHA-256" に非対応であり、今回更新されるパブリックのルート DNS サーバーは "RSA/SHA-256" のみ対応しているため、DNSSEC を設定することができません。
このため、Windows Server 2008 R2 および Windows Server 2008 についても対策は不要となります。
Q2.
DNSSEC の利用可否に関わらず、注意事項などはあるでしょうか。
A2.
DNSSEC の利用の可否に関わらず、パブリックのルート DNS サーバーに対して名前解決を実施している場合、(ルート DNS サーバーが通常の名前解決パケットに公開鍵情報を付与して応答を返す為)、DNS パケットのデータ量が増大することが公表されています。
DNS プロトコルの規格上、UDP で DNS 応答を返す場合のパケット サイズの上限値は 512 バイトと定められています。
このため、512 バイト以上の応答パケットを処理する場合、以下の 2 つの方法のいずれかを使用する必要があります。
----------------------------------------------------------------
・ TCP フォールバックの使用
・ EDNS0 の機能により、UDP のパケット サイズの上限値を拡張
----------------------------------------------------------------
運用環境で利用されている DNS サーバーが "Windows Server 2008 R2" 以降であれば上記の設定は両方とも既定で有効です。
*** 留意事項 ****************
Windows Server 2008 では “EDNS0” が既定で無効になっていますが、TCP フォールバックの機能は有効です。
なお、EDNS0 は以下のコマンドで、有効/無効の確認が可能です。
dnscmd /info /enableednsprobes
また、以下のコマンドで、有効にすることが可能です。
dnscmd /config /enableednsprobes 1
******************************
なお、現状、DNSSEC を利用しない構成の場合でも、ルート DNS サーバーや他のインターネット上の名前解決を担う DNS サーバーからの応答パケットが512 バイトを超える場合は多く見受けられます。
このため、現時点で問題なくインターネット上の名前解決が行われている環境であれば、前述のいずれかの機能が正常に使用できている可能性が高いため、影響はないと考えられます。
ただし、前述の通り Windows の DNS サーバーとしては 512 バイトを超える応答パケットを処理することが可能ですが、念のため経路上のネットワーク機器において、これらのパケット (TCP 53 番ポートの通信や、512 バイトを超える UDP 53 番ポートの通信) がドロップされる設定になっていないかをご確認いただくことをお勧めいたします。
<参考情報>
----------------------------------------------------------------
Overview of DNSSEC
<https://msdn.microsoft.com/en-us/library/jj200221(v=ws.11).aspx#RR>
Step-by-Step: Demonstrate DNSSEC in a Test Lab
<https://msdn.microsoft.com/en-us/library/hh831411(v=ws.11).aspx#config_dc2>
DNS Servers
<https://msdn.microsoft.com/en-us/library/dn593674(v=ws.11).aspx>
Trust Anchors
<https://msdn.microsoft.com/en-us/library/dn593672(v=ws.11).aspx>
Procedure: Deploy a Root Trust Point
<https://msdn.microsoft.com/en-us/en-jp/library/dn593676(v=ws.11).aspx>
----------------------------------------------------------------
<補足情報>
----------------------------------------------------------------
運用環境の DNS サーバーにおいて、DNSSEC の機能の有効・無効の確認方法、および DNSSEC を利用するように構成されているか否かを確認する方法をおまとめしましたので、必要に応じてご参照ください。
(※ 前述しましたように、Windows Server 2008、Windows Server 2008 R2 ではパブリックのルート DNS サーバーに対して DNSSEC 検証を利用するように構成することができませんので、省略しております)
DNSSEC の機能の有効・無効の確認手順
---------------------------------------------------
1). DNS サーバーに管理者権限を保持するドメイン ユーザーでログオンします。
2). [サーバー マネージャー] - [DNS] と移動します。
3). [DNS マネージャー] が起動しますので、[<DNS 名>] を右クリックし、[プロパティ] を選択します。
4). [<DNS 名> のプロパティ] が表示されますので、[詳細設定] タブを選択し、”リモート応答の DNSSEC 検証を有効にする” にチェックが入っていれば、DNSSEC の機能自体は有効です。
(※ 該当の設定は既定で “有効” です)
DNSSEC の構成の有無についての確認手順
------------------------------------------------------
1). DNS サーバーに管理者権限を保持するドメイン ユーザーでログオンします。
2). [サーバー マネージャー] - [DNS] と移動します。
3). [DNS マネージャー] が起動しますので、左ペインから以下のパスに移動します。
*********************************
[DNS] - [<DNS 名>] - [トラスト ポイント]
*********************************
4). [トラスト ポイント] を指定した際に右ペインに "このビューに表示する項目はありません" と表示された場合、DNSSEC のトラスト ポイントは構成されておらず、キャッシュ DNS サーバーとして DNSSEC を利用していないことを示します。