Load balancing Microsoft Remote Desktop Services (RDS/RDP)
Benefits of load balancing Microsoft Remote Desktop Services
Load balancing Microsoft Remote Desktop Services (RDS/RDP) provides a number of important benefits, including:
- High Availability (HA): Load balancing is critical for ensuring your RDS environment remains available, even if individual servers fail. A load balancer constantly monitors the health of all the RDS Session Host servers. If one server fails or goes offline, the load balancer automatically detects the issue and redirects all new traffic and existing users (upon reconnection) to the remaining healthy servers. This minimizes downtime and ensures a reliable, fault-tolerant service. It also allows administrators to take specific servers offline for planned maintenance, patching, or upgrades without interrupting service for users connected to other servers.
- Enhanced scalability: Load balancing makes it easy to handle growing user bases or sudden spikes in demand. When the user load increases beyond the capacity of the current servers, administrators can simply add new RDS Session Host servers to the farm. The load balancer automatically incorporates these new servers and distributes the incoming user sessions across the expanded capacity. This allows organizations to scale out (add more, smaller servers) instead of scaling up (buying one larger, more expensive server), providing a more flexible and cost-efficient way to meet performance requirements.
- Improved performance: By intelligently distributing the workload, load balancing ensures a better and more consistent user experience. Load balancers use algorithms to direct new user sessions to the server that is currently the least busy, rather than just round-robin. This prevents any single server from becoming a bottleneck or getting overwhelmed. Distributing sessions based on actual server load (CPU, memory usage) ensures that all users experience stable, optimal performance and reduces application latency, which is crucial for remote desktop users.
About Microsoft Remote Desktop Services
Microsoft Remote Desktop Services (RDS) is an industry leading desktop virtualization platform. It is the successor to Microsoft Terminal Services and facilitates the efficient, flexible and secure deployment of a Windows desktop environment and/or Windows applications, to users both locally and remotely.
Remote Desktop Services can be used to provide:
- Access to full remote desktops: This can be either session-based or VM-based and can be provided locally from PC’s, laptops & thin clients or from virtually anywhere using mobile devices
- Access to applications: RemoteApp can be used to provide users with access to applications running on RD Session Host servers. These applications look and feel just like locally installed programs
- Secure remote access: Remote Desktop Gateway (RD Gateway) can be used to provide secure remote access to desktops and applications without the need for a VPN
Why Loadbalancer.org for Microsoft Remote Desktop Services?
Loadbalancer’s intuitive Enterprise Application Delivery Controller (ADC) is designed to save time and money with a clever, not complex, WebUI.
Easily configure, deploy, manage, and maintain our Enterprise load balancer, reducing complexity and the risk of human error. For a difference you can see in just minutes.
And with WAF and GSLB included straight out-of-the-box, there’s no hidden costs, so the prices you see on our website are fully transparent.
More on what’s possible with Loadbalancer.org.
How to load balance Microsoft Remote Desktop Services (RDS/RDP)
The load balancer can be deployed in 4 fundamental ways: Layer 4 DR mode, Layer 4 NAT mode, Layer 4 SNAT mode, and Layer 7 Reverse Proxy (Layer 7 SNAT mode).
For Microsoft Remote Desktop Services, Layer 7 Reverse Proxy is recommended.
The load balancer is typically used to load balance multiple Connection Brokers, multiple Web Access Servers and multiple Gateway Servers. Session Hosts are normally load balanced by the Connection Brokers, although the load balancer can also be used as detailed in the deployment guide referenced below.
RDS deployment options
There are two deployment options:
- Virtual machine-based desktop deployment: Provides users with access to a full Windows client operating system that runs on a VM, for example, Windows 7 or Windows 10.
- Session-based desktop deployment: A session based virtual desktop deployment the same as the traditional “Terminal Server” concept where multiple client sessions run on the same server.
- You must decide which RDS deployment type is best for your environment based on various requirements. Consider whether the applications run correctly on windows Server and whether it works properly in a multi-user environment. Also, consider that a VM-based virtual desktop deployment typically requires a more powerful server infrastructure and more disk storage than a session-based virtual desktop deployment for the same number of users. Generally, Microsoft recommend session-based virtual desktops if possible. Session-based virtual desktops support a larger number of users than VM-based virtual desktops on the same hardware.
Load balanced ports and services
| Protocol | Port | Purpose |
|---|---|---|
| TCP/HTTPS | 443 | HTTPS (RD Gateway, RD Web Access) |
| TCP/UDP/RDP | 3389 | RDP (UDP transport was added in RDP v8.0) |
| UDP | 3391 | RDP (RD Gateway) |
Virtual service (VIP) requirements
The following VIPs are normally configured on the load balancer when load balancing Remote Desktop Services:
- VIP1 – the connection point for the load balanced Web Access Servers.
- VIP2 – the connection point for the load balanced Connection Brokers, DNS must be configured so that the FQDN specified in DNS Name for the RD Connection Broker Cluster (Deployment Properties > High Availability) resolves to this VIP.
- VIP3 – the connection point for the load balanced RD Gateway Servers.

- The initial connection is from RDP client to Connection Broker as recommended by Microsoft
- The Loadbalancer.org server feedback agent cannot be used in this case because the Session Hosts are load balanced by the built-in load balancing mechanism and not by the Loadbalancer.org appliance.
- A Session Collection is simply a way to group Session Hosts for load balancing, RemoteApp publishing, and common settings purposes. For example, if you set the Idle session limit to 3 hours in the properties of the collection, then all Session Hosts that are part of the collection will have a 3 hour idle timeout.

