DNS.EXE allocates 5000+ ports immediately
Solution 1:
This is a well-known side effect of the hotfix distributed to address MS08-037, since the hotfix is intended to decrease the predictability of ports used for DNS responses.
You can restrict the amount of ports used by defining a lower Socket Pool Size, as described in this article:
Using dnscmd.exe
- Open an elevated Command Prompt (Run as Administrator...)
- Issue
dnscmd /Config /SocketPoolSize <value>
where<value>
is a number between 0 and 10000
Using regedit.exe
- Open
regedit.exe
and expand theHKLM
hive - Navigate to
SYSTEM\CurrentControlSet\services\DNS\Parameters
- If not already present, create a new
DWORD
value namedSocketPoolSize
- Set a decimal value between 0 and 10000
- Restart the DNS Server service:
net stop dns && net start dns
Be aware that setting the value too low, effectively defeats the purpose of MS08-037
If you're on Windows Server 2008 R2 and just want to make sure that a number of individual UDP endpoints are not used by DNS, you can also specify a list of port ranges to be excluded from use by DNS:
dnscmd /Config /SocketPoolExcludedPortRanges <start>-<end>