KB Home | Multiple Mobility Print Servers with Windows DNS
“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.
Solution A: Share the Find-Me print queue from one Mobility Print Server
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.
Solution B: Use Mobility Print with mDNS broadcast on each Mobility 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.
Solution C: 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.
::Site 1, where the Mobility Print server (10.0.0.5) is serving the subnet 10.1.0.0/24
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/24 and 10.3.0.0/24
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.
Set up the DNS Records
To start, remove any Mobility Print DNS records that were previously created. Have a look at these examples to see what may need to be deleted.
Modify the sample script above with the correct Mobility Print server IP addresses and subnets.
Run the commands in an elevated command prompt window on the DNS server and make sure that each record is created without errors.
Set the Index Number on each Mobility Server
On each server open the following file in a text editor: [app-path]/data/config/dns.conf.toml
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.)
Restrict Printer Access on each Mobility Print Server
On each server open the following file in a text editor: [app-path]/data/config/printer.conf.toml
Delete the line SubnetFilterRule = .
At the bottom of the file add a new Subnet Filtering rule that specifies which printers should be published to what subnets. In the example below, we’ve used * to denote that we want the rule to apply to all of the printers, and we want to share the printers with devices from subnets 10.2.0.0/24 and 10.3.0.0/24.
Then restart PaperCut Mobility Print service from services control panel.
Solution D: 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 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.
::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
Still have questions?
Feel free to leave a comment below or visit our Support Portal for assistance.