by Dan Schlimme
I recently had to load balance our Exchange SMTP Relay and IIS SMTP Relay. Both of these require the use of DSR which I was unfamiliar with and wanted to share my experience.
Important Pieces of Information
- Netscaler Firmware
- NS 10.5 61.11.nc
- Exchange Environment
- Exchange 2010
- Server OS
- Server 2012 R2
- Your vip needs to be on the same VLAN as your load balanced servers
- You will need a SNIP for the VLAN of your load balanced servers
- You will need to add the VLAN of your load balanced servers to your network port
- MAC based forwarding needs to be enabled
Netscaler and Server Networking configuration are the same for Exchange SMTP Relay and IIS SMTP Relay
Netscaler Configuration
- Add the VLAN you will be working with to your Netscaler
- Navigate to System\Network\VLANs
- Select Add
- Enter the VLAN ID
- Bind to the Interface you need
- I tagged the traffic, but this may not be needed in your environment
- Select Add
- Navigate to System\Network\VLANs

- Add SNIP to the Netscaler on the VLAN you just added
- Navigate to System\Network\IPs
- Select Add
- Enter the IP
- Enter the Netmask
- Select IP Type as Subnet IP
- OPTIONAL STEP – Uncheck “Enable Management Access control to support the below listed applications”
- Select Add
- Navigate to System\Network\IPs

- Add the servers you want to load balance
- Create the SMTP Monitor
- Standard Parameters
- Give it a name
- Set the port number to 25
- Standard Parameters

- Special Parameters
- Select Script of nssmtp.pl
- Set Dispatcher IP to 127.0.0.1
- Set Dispatcher port to 3013

- Create the Service Group
- Basic Settings Configuration
- Give it a name
- Set Protocol to ANY
- Basic Settings Configuration

- Settings Configuration
- Select Use Proxy Port
- Select Down State Flush
- Select Use Client IP

- Monitor Configuration
- Add the SMTP Monitor you created earlier
- You also need to add a second monitor of TCP/Ping/ARP
- I used ARP
- This has something to do with learning the MAC address. I am not entirely certain.
- I used ARP
- Service Group Members Configuration
- Add the Servers you added earlier
- Create the Virtual Server
- Basic Settings Configuration
- Give it a name
- Set Protocol to ANY
- Assign IP
- Set Redirection Mode to MAC Based
- Basic Settings Configuration

- Service and Service Groups Configuration
- Bind the Service Group you created earlier
- Method Configuration
- Set Load Balancing Method to Round Robin

- Persistence Configuration
- Set Persistence to SourceIP

- Traffic Settings Configuration
- Select Sessionless Load Balancing

- Your Virtual Server is now configured
Server Configuration
- Add a loopback network adapter
- Rename Ethernet adapter to Ethernet
- Rename the Loopback adapter to Loopback
- Open properties of the Loopback adapter
- Uncheck everything except Internet Protocol Version 4 (TCP/IPv4)

- Select Internet Protocol Version 4 (TCP/IPv4) and select Properties
- General Settings Configuration
- Add the IP you used for your SMTP Virtual Server
- Set the Subnet Mask to 255.255.255.255
- Do not set DNS
- General Settings Configuration

- Advanced Configuration Settings
- IP Settings
- Uncheck Automatic metric
- Set Interface Metric to 254
- This prevents the ip from arping
- IP Settings

- DNS
- Uncheck Register this connection’s address in DNS

- WINS
- Select Disable NetBIOS over TCP/IP

- From command line run the following commands with elevated privileges
- netsh int ipv4 set int “Loopback” weakhostreceive=enabled weakhostsend=enabled
- netsh int ipv4 set int “Ethernet” weakhostreceive=enabled
- arp -d *
- Your Server is now configured for DSR
IIS SMTP Relay Configuration
- Open IIS on your Relay server
- Go to properties of your SMTP Virtual server in IIS
- General Settings
- You will see an IP in the middle, this is the IP of the Relay server itself.
- Select Advanced next to the Relay Server IP
- General Settings

- Select Add
- Choose the IP of the VIP created earlier
- Set the port to 25

- Access Settings
- Select Relay

Select Add

Add the VIP you created earlier

- IIS SMTP Relay is now configured
Exchange SMTP Relay Configuration
- Open Exchange Management Console
- Expand Server Configuration
- Select Hub Transport
- Select a Hub Transport
- Select Hub Transport

- Right Click on your SMTP Relay Receive Connector and Select Properties
- If you do not already have an SMTP Relay Receive Connector, this link will help you create one
- Select the Network Tab

- In the “Use these local IP addresses to receive mail” section, select Add
- Select “Specify an IP address”
- Enter the VIP you created earlier
- Set the Port to 25

- You now need to do the same step to all of your Hub Transport Servers
- Your Exchange SMTP Relay is now Configured
Read this if DSR and Netscaler isn’t working for you
https://discussions.citrix.com/topic/361612-exchange-and-source-ip/
As per the comment from rbarrick on the above article, I also found the same problem. I had more than one VIP with the same IP and even though they were disabled it would not connect until I deleted the disabled Virtual Servers with the same IP. I had them setup after following this article on Exchange Load balancing so when it came to configuring DSR I had multiple VIP’s with the same IP. Deleting them or changing the IP they use is the only solution. Hope this saves someone some head scratching.
[…] of through the Citrix ADC appliance. This process is actually documented in a great article here (credit to Dan Schlimme on the CUGC blog) but this approach wouldn’t be able to meet the […]