Windows ServerのDNSが大量にポートを確保するのを止める
目次
Windows ServerでDNSサーバを有効にすると、かなり多くのポートをListenするようなので、数を減らすメモ
結論
dnscmd /config /socketpoolsize 250
net stop dns && net start dns
# 確認: DNS.exeが確保しているポート数が上記で設定した数(250 x 2 = 500)になっていることを確認する。
netstat -ano
そもそも
初期設定ではIPv4, IPv6それぞれで2500ポートずつ、合計5000ポートを確保する設定になっている。
古いバージョンのドキュメントだが、
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee649174(v=ws.10)?redirectedfrom=MSDN
によると、DNSキャッシュポイズニング対策として、このプールの中からランダムにポートを使用してDNSの通信を行っているそう。
そのため、今回の設定を入れると、DNSキャッシュポイズニングには弱くなるかもしれないので、要注意。
また、これによって確保されているポートは使うことができないので、もし使いたい場合は以下のコマンドでプールから除外する。
dnscmd /Config /SocketPoolExcludedPortRanges <excluded port ranges>