Randomize your DNS source ports
There are some DNS attacks that can take advantage of the predictability of the source port for DNS responses a computer sends out. The predictability can allow the attacker to hijack a response to a DNS client and send the client to a site under the attacker’s control. You can reduce the risk of this attack being successful by increasing the number of source ports available for randomization.
You do this by increasing the size of the socket pool. For Windows Server 2008 R2 DNS servers, the default size of the socket pool is 2500. You can increase the number of available sockets for randomization to a maximum value of 10,000.
Use the following dnscmd command to change the socket pool value:
dnscmd /Config /SocketPoolSize<value>
If you want to see the current size of the socket pool, then use this dnscmd command:
Dnscmd /Info /SocketPoolSize
You can also exclude ranges of ports used by the socket pool, using the followingdnscmd command:
dnscmd /Config /SocketPoolExcludedPortRanges<excluded port ranges>
Keep in mind that it will take more memory to support more sockets. On Windows Server 2008 R2, around 2.5 KB of memory is allocated for each socket, plus 7.2 KB of memory per receive buffer. The number of receive buffers is two on a single or dual processor server, and equal to the number of CPUs if more than two are present.