Knowledgebase
Knowledgebase: PaperCut > Configuration
Multiple Mobility Print Servers with Windows DNS
Last modified on 08 March 2018 12:26 PM

What if our organization wants to roll out Mobility Print for multiple print servers?

There are several ways that PaperCut and Mobility Print can be structured to serve extremely large environments. Below, we’ve included details on several possible methods of rolling out Mobility Print when there are multiple print servers. This is not intended to be a detailed step by step guide, but instead is intended to offer a high-level overview and comparison of the different ways to architect a BYOD printing environment with PaperCut.

This is an advanced article, so before reading through this we recommend having a look through these other knowledge base articles on Mobility Print to understand what’s going on.

Use a single Mobility Print server to share the Find-Me print queue

If you are a PaperCut MF customer that already uses Find-Me Printing, then a simple and robust solution is to have a single Mobility Print server which only publishes the Find-Me print queue. Jobs submitted to this Find-Me print queue could then be released at any copier that is running the PaperCut embedded software. From the user’s perspective, they would use Mobility Print to find their organization’s Find-Me print queue to submit a job, then they would sign into the nearest copier to release their print job. Customers interested in implementing Find-Me printing in tandem with PaperCut Mobility Print should speak with their PaperCut Authorized Solutions Center for assistance.

Use Mobility Print with mDNS broadcast on each print server

If a print server is already set up locally at each site then you could simply install Mobility Print on each one and use the built in mDNS. If a site has more than one subnet then just patch this print server into both and Mobility Print will automatically broadcast the printers through each network interface. This method is limited by the fact that it may not be practical to patch the server into more than two or three networks.

Create Conditional Forwarders for up to 20 Mobility Print servers

There is a method of setting up the DNS records discussed on this page that will work for up to 20 Mobility Print servers. Windows, Android, and Chrome Mobility Print clients are programmed to query the DNS server for not only pc-printer-discovery but also pc-printer-discovery-1, pc-printer-discovery-2… and so on, up to pc-printer-discovery-20. The DNS records can be set up so a Conditional Forwarder for each of the pc-printer-discovery-# zones points to a different Mobility Print server. For each subnet where printers need to be discovered, pointer records are created in reverse lookup zones that are searched by iOS/Mac clients for service. Windows, Android, and Chrome devices will query all 20 zones and will end up seeing the printers from each server, so it may be necessary to Restrict Printer Access per Subnet as well in conjunction with this solution. The challenge with this method is that it becomes unwieldy to manage the subnet restriction rules on each Mobility Print server. It also can be confusing when changes need to be made in the future and the DNS records need to be modified.

Sample script:

::Site 1, where the Mobility Print server (10.0.0.5) is serving the subnet 10.1.0.0
dnscmd 127.0.0.1 /ZoneAdd pc-printer-discovery-1. /dsforwarder 10.0.0.5
dnscmd 127.0.0.1 /ZoneAdd 0.0.1.10.in-addr.arpa. /dsprimary
dnscmd 127.0.0.1 /RecordAdd 0.0.1.10.in-addr.arpa. b._dns-sd._udp PTR 0.0.1.10.pc-printer-discovery-1.
dnscmd 127.0.0.1 /RecordAdd 0.0.1.10.in-addr.arpa. lb._dns-sd._udp PTR 0.0.1.10.pc-printer-discovery-1.

::Site 2, where the Mobility Print server (10.0.0.6) is serving two subnets, 10.2.0.0 and 10.3.0.0
dnscmd 127.0.0.1 /ZoneAdd pc-printer-discovery-2. /dsforwarder 10.0.0.6
dnscmd 127.0.0.1 /ZoneAdd 0.0.2.10.in-addr.arpa. /dsprimary
dnscmd 127.0.0.1 /RecordAdd 0.0.2.10.in-addr.arpa. b._dns-sd._udp PTR 0.0.2.10.pc-printer-discovery-2.
dnscmd 127.0.0.1 /RecordAdd 0.0.2.10.in-addr.arpa. lb._dns-sd._udp PTR 0.0.2.10.pc-printer-discovery-2.

dnscmd 127.0.0.1 /ZoneAdd 0.0.3.10.in-addr.arpa. /dsprimary
dnscmd 127.0.0.1 /RecordAdd 0.0.3.10.in-addr.arpa. b._dns-sd._udp PTR 0.0.3.10.pc-printer-discovery-2.
dnscmd 127.0.0.1 /RecordAdd 0.0.3.10.in-addr.arpa. lb._dns-sd._udp PTR 0.0.3.10.pc-printer-discovery-2. 
 
  1. To start, remove any Mobility Print DNS records that were previously created, including the Delegated Subzone for pc-printer-discovery and the _DNS-SD folder in their Forward Lookup Zone.
  2. Modify the sample script with the correct Mobility Print server IP addresses and subnets.
  3. Run the commands in an elevated command prompt window on the DNS server and make sure that each record is created without errors.
  4. On each server open the following file in a text editor: [app-path]/data/config/dns.conf.toml
  5. Find the line that reads: ZoneIndex = 0 and change it to: ZoneIndex = INDEX (Where INDEX is the corresponding suffix number configured for each pc-printer-discovery.)
  6. Then restart PaperCut Mobility Print service from services control panel.

Notice : When you are configuring multiple servers make sure you don’t have the un-indexed zone in your DNS (pc-printer-discovery). Including this zone will make some of the clients unable to discover printers published on all servers.

Create unique Forward Lookup Zones for each Mobility Print server

This is a very scalable solution and could work with an extremely large number of Mobility Print servers.

For this to work, each Mobility Print server would have it’s own Forward Lookup Zone and set of DNS records on the DNS server. Which Mobility Print server the clients access to retrieve the list of printers will be determined by their DNS Search Suffix (matching the appropriate Forward Lookup Zone) which will be specified by the local DHCP server using DHCP scope option 119.

In this scenario, a user would connect to the organization’s network and their device will receive the DNS Search Suffix from the DHCP server. When Mobility Print clients look check with the DNS server for printing services, they will append the DNS Search Suffix to their queries and only look inside that particular Forward Lookup Zone. The “pc-printer-discovery” NS record in that Forward Lookup Zone will point towards the appropriate Mobility Print server for that particular network.

Below is a sample script of DNSCMDs to set up the records for three different Mobility Print servers, each serving a network with a unique DNS search suffix. For example, clients with the DNS search suffix site0001.domain.org would be directed to the Mobility Print server 10.0.1.1 and clients with the DNS search suffix site0002.domain.org would be directed to the Mobility Print server 10.0.1.2 and so on.

Sample script:

::Site 1, where the Mobility Print server (10.0.1.1) will serve clients with a DNS Search Suffix of "site0001.domain.org"
dnscmd /RecordAdd site0001.domain.org b._dns-sd._udp PTR pc-printer-discovery.site0001.domain.org
dnscmd /RecordAdd site0001.domain.org lb._dns-sd._udp PTR pc-printer-discovery.site0001.domain.org
dnscmd /RecordAdd site0001.domain.org pc-mobility-print-host A 10.0.1.1
dnscmd /RecordAdd site0001.domain.org pc-printer-discovery NS pc-mobility-print-host.site0001.domain.org

::Site 2, where the Mobility Print server (10.0.1.2) will serve clients with a DNS Search Suffix of "site0002.domain.org"
dnscmd /RecordAdd site0002.domain.org b._dns-sd._udp PTR pc-printer-discovery.site0002.domain.org
dnscmd /RecordAdd site0002.domain.org lb._dns-sd._udp PTR pc-printer-discovery.site0002.domain.org
dnscmd /RecordAdd site0002.domain.org pc-mobility-print-host A 10.0.1.2
dnscmd /RecordAdd site0002.domain.org pc-printer-discovery NS pc-mobility-print-host.site0002.domain.org

::Site 3, where the Mobility Print server (10.0.1.3) will serve clients with a DNS Search Suffix of "site0003.domain.org"
dnscmd /RecordAdd site0003.domain.org b._dns-sd._udp PTR pc-printer-discovery.site0003.domain.org
dnscmd /RecordAdd site0003.domain.org lb._dns-sd._udp PTR pc-printer-discovery.site0003.domain.org
dnscmd /RecordAdd site0003.domain.org pc-mobility-print-host A 10.0.1.3
dnscmd /RecordAdd site0003.domain.org pc-printer-discovery NS pc-mobility-print-host.site0003.domain.org