The dns.exe process on Windows Server 2008 R2 reserves all available ports, preventing Backup Pro applications from communicating i.e. AccountServers, StorageServers and backup clients.
You might also encounter the following error in your Backup Pro logs:
14:10:04,459 ERROR Startup - Application already running on port 49371
java.net.BindException: Address already in use: JVM_Bind
The DNS server reserves contiguous UDP ports in batches of 2500 by default (as per the SocketPoolSize parameter) - known as the DNS socket pool. It then randomly selects a port from the pool (usually from port 40 000 and higher) when issuing DNS queries. Microsoft uses this technique to prevent DNS cache poisoning attacks.
However, we have found that on occasion around three times the number of ports are reserved compared to the SocketPoolSize value.
A. Reduce the SocketPoolSize
Limit the number of ports available to the DNS socket pool by lowering the SocketPoolSize - a value of 500 is recommended. Run the following command to do this:
Note: Ensure that the DNS role is installed on the server to be able to run the command.
dnscmd /Config /SocketPoolSize 500
net stop dns
net start dns
B. Exclude certain port ranges
In addition, you can also exclude certain port ranges from the DNS socket pool if those ports are meant for other processes:
dnscmd /config /SocketPoolExcludedPortRanges 1-10000
(Change the range value according to your applications)