このコマンドは、DNS.EXEによってすべての開いているUDPポートをクリアします
net stop dns
DNSサービスを再起動した後、DNS.EXEは5000以上のポートを割り当てます。
net start dns
大量のメモリやCPUを消費しません。しかし、タイムアウトのためにサーバーへの多くのhttp/smtp/pop3接続の問題に気づき、警告しました。 DNS.EXEで大量のオープンポートを調べて見つけました。 Currportsは50000から56000までのUDPローカルポートを表示します。ローカルアドレスは::で、リモートアドレスは空です。 netstatの最後の行-コマンドは以下のとおりです。
UDP [::]:55976 *:*
UDP [::]:55977 *:*
UDP [::]:55978 *:*
UDP [::]:55979 *:*
UDP [::]:55980 *:*
UDP [::]:55981 *:*
UDP [::]:55982 *:*
以前はこれらのポートに気づかなかったので、それが大丈夫かどうかはわかりません。どう思いますか?サーバーを再起動しましたが、監視/警告メールが継続していません。
これは よく知られているsideeffect アドレスに配布された修正プログラム MS08-037 です。 DNS応答に使用されるポートの予測可能性を低下させることを目的としています。
この記事 で説明されているように、より低いソケットプールサイズを定義することで、使用するポート数を制限できます。
dnscmd /Config /SocketPoolSize <value>
を発行します。ここで、<value>
は0〜10000の数値ですregedit.exe
を開き、HKLM
ハイブを展開しますSYSTEM\CurrentControlSet\services\DNS\Parameters
に移動しますDWORD
という名前の新しいSocketPoolSize
値を作成しますnet stop dns && net start dns
値を低く設定しすぎると、MS08-037の目的を効果的に無効にすることに注意してください。
Windows Server 2008 R2を使用していて、多数の個別のUDPエンドポイントがDNSで使用されないようにしたい場合は、DNSでの使用から除外するポート範囲のリストを指定することもできます。
dnscmd /Config /SocketPoolExcludedPortRanges <start>-<end>