Microsoft and Cisco® have developed a joint solution that allows customers to deploy the Cisco Content Switching Module (CSM) server load balancer in a Microsoft Terminal Server computing environment. This white paper describes how to set up the Cisco CSM so that it is token aware, providing a new level of intelligent load balancing that improves reliability and the end-user experience.
Cisco CSM Overview
The Cisco CSM is a line card for the Cisco Catalyst® 6500 Series Switches that enhances the response of client traffic to endpoints, such as groups of servers, caches, firewalls, Secure Sockets Layer (SSL) devices, and VPN termination devices. The Cisco CSM provides a high-performance, cost-effective load-balancing solution for enterprise and Internet service provider networks, allowing these organizations to provide customers, employees, and business partners with the best possible online experience. The Cisco CSM meets the demands of high-speed content delivery networks, tracking network sessions and server load conditions in real time and directing client requests to the appropriate devices. Fault-tolerant Cisco CSM configurations maintain full state information and provide the true transparent failover required for mission-critical applications.
Microsoft Terminal Services Session Directory Overview
Microsoft Terminal Services Session Directory is a technology that lets users run Microsoft Windows applications on a remote Windows Server 2003 computer. In a Microsoft Terminal Server computing environment, all application execution and data processing occurs on the server. In a load-balanced environment, a farm of terminal servers have incoming session connections distributed in a balanced manner across the servers in the farm. The session directory keeps a list of sessions indexed by user name and allows the user to reconnect to the terminal server where the user's disconnected session resides and resume that session.
Technical Setup and Details
Microsoft Terminal Services Session Directory provides functions that allow a group of terminal servers to coordinate the reconnection of disconnected sessions from clients. The Remote Desktop Protocol (RDP) uses routing token information to redirect client sessions to Microsoft Terminal Servers.
The dynamic routing token will go in the initial data packet of the second (redirected) connection. It is possible that there will be no routing token. However, if a routing token is present, it will begin at TCP payload decimal byte offset 11 (0 based) of the first packet that the client sends to the server. Port 3389 is the standard terminal server connection port. It is also configurable by the user.
Introduced in the Cisco Catalyst 6500 CSM Software Version 4.2, a new environment variable, MSTS_RDP_VIP_LIST, can be defined to contain a list of Versatile Interface Processor (VIP) names that support the Microsoft Terminal Services Remote Desktop Protocol (MSTS-RDP). This new capability makes the Cisco CSM token aware, allowing for improved capability and reliability for terminal server clients.
The length of the variable is limited to 256 bytes. An MSTS-RDP-enabled VIP is treated as a Layer 7 virtual server (vserver). If the Layer 7 load balancer fails to identify a real server from the routing token, or if the routing token is empty, the CSM falls back to whatever load-balancing algorithm is configured for that vserver.
The addresses and topology in the following configurations are presented only as examples for the purpose of this document. This configuration is a simple routed Cisco CSM configuration and does not include any other configurations that are unique to the Cisco Catalyst 6500 Series or any other topology beyond this sample configuration. Also, the vserver and server farm names are examples only for the purpose of this document and may be different for each environment.
The following commands show how to configure the MSTS_RDP_VIP_LIST variable for a Cisco CSM that is installed in slot 2. The variable name must be entered exactly as in the example, and the VIP names must match the vserver names desired to support token redirection.
Router# configure terminal
Enter configuration commands, one per line. End with
In this sample configuration, the terminal servers that are listed in the server farm TS_RDP_POOL1 should have their gateways set to the IP address or alias address of the server VLAN to avoid direct server return. Note that the environment variable MSTS_RDP_VIP_LIST is also set to enable Session Directory token awareness on each VIP that is listed in the variable. Figure 1 shows the topology of the sample network.
Figure 1. Cisco CSM Flow in a Microsoft Terminal Services Session Directory Deployment
• Terminal servers must be running Microsoft Windows Server 2003 Enterprise Edition or Datacenter Edition to participate in a Session Directory-enabled farm.
• Cisco CSM is deployed in the Cisco Catalyst 6500 Series with a supervisor engine that is running Cisco IOS® Software and a Cisco CSM that is running Version 4.2 or higher.
The following, based on the topology shown in the diagram, is a sample Cisco CSM configuration in slot 2 of a Cisco Catalyst 6500 Series Switch:
module ContentSwitchingModule 2
variable MSTS_RDP_VIP_LIST VIP_1
vlan 100 client
ip address 10.199.0.39 255.255.255.0
vlan 99 server
ip address 192.168.0.40 255.255.255.0
alias 192.168.0.39 255.255.255.0
no nat client
virtual 10.199.0.38 any
The following command example displays the environmental variables in the configuration for VIP_1 and a Cisco CSM that is installed in slot 2:
Router# show mod csm 2 variable
The following command example displays the environmental variable details:
Router# show mod csm 2 variable detail
Valid values:String (0 to 256 chars)
List of VIPs supporting MSTS-RDP Protocol
For More Information
For more information about this joint solution, contact your local Microsoft or Cisco account representative or go to: