This guide provides a detailed guide to enhancing the performance of Microsoft Print Server by implementing a high availability and load balancing architecture. This setup is designed to ensure scalability, resilience to failures, and improved cybersecurity.
High Availability in Print Servers #
High availability refers to the ability of a system or component to maintain a high level of operational performance, particularly uptime, over an extended period. For MS Print Server, configuring high availability addresses the following challenges:
- Inefficiencies when handling a large number of requests on a single server.
- Preservation of session data during server failure.
- Performing updates without service interruptions.
What is a Print Server #
A print server manages the connection between printers and client computers over a network. It typically operates over TCP and UDP port 170. In this guide, we focus on the Microsoft Print Server, which supports several network printing protocols, including:
- Server Message Block (SMB). TCP 445 (modern version), 139 (NetBIOS over TCP)
- Line Printer Remote (LPR). TCP 515
- Line Printer Daemon (LPD). TCP 515
- Remote Procedure Call (RPC). TCP and UDP 135
- Internetwork Packet Exchange (IPX). IPX is a layer 3 protocol, not TCP/UDP based
- Internet Printing Protocol (IPP). TCP and UDP 631
- Transmission Control Protocol/Internet Protocol (TCP/IP)
- AppleTalk
- Simple Network Management Protocol (SNMP). 161 (for SNMP management), 162 (for SNMP traps)
Setting Up RELIANOID Load Balancer #
In this configuration, you’ll need to install at least one instance of RELIANOID Load Balancer and multiple instances of Microsoft Print Server.
Step 1: Create a Virtual IP (VIP) #
To begin, create a virtual IP (VIP) from the RELIANOID interface.
Configure the VIP within the same subnet as the physical device and save the configuration.
Step 2: Create L4XNAT Farm #
A farm is a group of servers that provides services by distributing the load. This setup improves the high availability and performance of your print services. To create the farm:
- Navigate to LSLB > Farms and create a new farm.
- Name the farm (e.g., “ms-print-nat”), select the L4xNAT profile, and assign the previously created VIP.
- Set the Port to * (wildcard), enabling the farm to serve across various protocols.
Step 3: Configure Farm Parameters #
Once the farm is created, configure its parameters:
- Set the NAT Type to NAT (Network Address Translation). This method remaps one IP address space into another, ensuring that client requests are properly routed through the farm.
- Enable Persistence by selecting IP Client address. This ensures that each client remains connected to the same backend server, preventing potential issues such as printing jobs being split across multiple printers.
Step 4: Advanced Health Checks #
To ensure backend servers are active and capable of handling requests, configure Farm Guardian to perform advanced health checks. This step involves creating a custom command to monitor the print service’s availability.
For example, use the following command to monitor port 135:
check_tcp -H HOST -p 135 -t 10 -c 10 -w 10
-H HOST: The backend server’s hostname or IP, in our case, name is HOST.
-p 135:The port being monitored, in the case of L4xNAT with all ports defined in the backends it can’t be PORT, we need to define a specific port like 135.
-t 10: Timeout in seconds.
-c 10: Critical status response time.
-w 10: Warning status response time.
Step 5: Configure Backend Servers #
After setting up the health checks, configure the Backend servers where the actual MS Print Server services are running. Go to LSLB > Farms, edit the created farm, and add backend servers in the Backends section.
Step 6: Microsoft Print Server Configuration #
The configurtion is ready in RELIANOID Load Balancer. Now it is time to apply some changes in the MS Print Server. By other hand, in each backend server the file hosts should be modified. By default in Microsoft windows this file is located in the path C:\windows\system32\drivers\etc.
Following our example, we have to take into account that clients will connect to the FQDN printserver.mydomain.com or a NetBIOS name printserver that in both case will resolve the VIP 192.168.56.200. That we are going to do in each Print Server is forcing the resolution IP of used names printserver.mydomain.com or printserver to resolve each local server IP.
In every backend please add:
<OWN_BACKEND_IP> <SERVICE_DOMAIN> <OWN_BACKEND_IP> <SERVICE_NAME>
In our example, on the backend 192.168.1.160, add the following line:
192.168.1.160 printserver.mydomain.com 192.168.1.160 printserver
and on the backend 192.168.1.161:
192.168.1.161 printserver.mydomain.com 192.168.1.161 printserver
And restart both print services.
Once completed, clients will be able to connect to the MS Print Server with high availability and load balancing in place.
Alternative configuration with DSR mode #
Microsoft Print Services can be also load balanced using a Direct Server Return (DSR) farm configuration to ensure that the client IP address is visible on the Microsoft Print Servers. In a DSR setup, incoming print requests are directed to the load balancer, which distributes traffic to multiple print servers without modifying the source IP. The response from the print servers bypasses the load balancer and is sent directly back to the client. This allows the print servers to see the actual client IP address, which can be critical for logging, auditing, and troubleshooting, ensuring efficient and scalable print services.
Conclusion #
This setup provides a robust solution for handling high-volume print requests, ensuring that the MS Print Server remains scalable and resilient to failures. The integration of RELIANOID Load Balancer further enhances the system’s ability to manage network traffic, distribute loads efficiently, and maintain continuous uptime.