Configure printer discovery using DNS

Great! So you're keen to leverage the benefits of DNS (instead of the standard mDNS discovery) for your users' clients to discover printers.

DNS discovery does require some DNS configuration. This section assumes you have local DNS infrastructure and are able to make DNS record changes.


Before continuing, if you use Infoblox you need to head over to Setting up Mobility DNS records for Infoblox DDI. Otherwise, continue here.

In summary, DNS configuration involves adding the following new DNS records into your DNS server.

Record Type Example (Bind Notation)
A record pointing to your server running Mobility Print my-print-server IN A
A delegated subzone for pc-printer-discovery that points to the A record pc-printer-discovery IN NS my-print-server
Two Pointer (PTR) records in root DNS that connect the server to the subzone b._dns-sd._udp IN PTR pc-printer-discovery, lb._dns-sd._udp IN PTR pc-printer-discovery

Discover your printers using DNS:

If you need to configure multiple print servers with Windows DNS, you've got four solutions to choose from:

Step 1: Select your search domain

  1. Find out:

    • the name of the search domain(s) for the clients (Android phone, Chromebook etc.), for example

    • the number of subnets.

  2. NOTE

    Mobility Print attempts to detect your organization's search domains. In most cases it displays a list of domains; however, in some more complex environments your client's domain might not be detected and you'll need to manually enter it.

  3. Ensure that the clients are directed to the DNS servers where the Mobility Print DNS entries are located.

    If the clients are directed to use a different DNS service (such as Google), they won't be able to contact the Mobility Print server to find the printers.

  4. In the Mobility Print Admin interface, click Discovery Options.

  5. Click Configure DNS. The Configure DNS screen is displayed. This wizard guides you through configuring your DNS server to allow clients to discover printers published through Mobility Print. The images on the right of the screen show where to find the required information for iOS, Windows, and macOS clients.

    image alt text

  6. Click the button for the search domain used by the clients at your organization (for example, your users' iPhones). If the search domain is not listed:

    • Click My domain isn't listed.

    • Enter your clients' search domain.

  7. If you have a .local domain or you want to restrict printer access per subnet, add the subnets:

    • Click Add Subnets.

    • Enter the IP address and netmask for one client on each subnet. If you have clients on multiple subnets, click Add Another; then enter another IP address and netmask. image alt text

  8. Click Next.


If your clients are on more than one domain, run the configuration wizard for each domain.

Step 2: Add DNS records (Windows or BIND)

Mobility Print automatically generates the commands you need to run on the clients' DNS server (not the Mobility Print server).

If at any time during the setup you want to know exactly what DNS records are being created, take a look at Mobility Print DNS Record Examples.

The commands differ depending on whether you are using Windows or BIND.

Step 3: Verify DNS records

Mobility Print verifies the DNS configuration changes you have made.

  1. Click Verify your records.

    A green tick is displayed next to each correct record. If you have problems with any record, see the Troubleshooting Mobility Print section, or contact PaperCut Support.

    image alt text

  2. When all records are correct, click Next. mDNS discovery is turned off and DNS discovery is turned on.

Step 4: Test your clients

The final step is to test that you can print from all client types (for example, iPhones, Chromebooks). If you have multiple subnets, test each client type in each subnet.

  1. On the Configure DNS dialog, click the relevant Client Setup link.

  2. Follow the client setup instructions.

  3. On each client type, send a test print job (for example, XKCD, or an ASCII table if the boss is around).

  4. Check that the document printed correctly. On the Configure DNS screen, a green tick is displayed next to the client type that has successfully printed.

    image alt text

    If you experience any issues or problems, check out the Troubleshooting Mobility Print, section, or if you're stumped, contact PaperCut Support.

  5. Repeat for each device type.

  6. Click Done. You're now ready to roll out Mobility Print to your users.

Configure multiple print servers with Windows DNS

There are several ways that Mobility Print can be structured to serve extremely large environments. Below are some of the possible methods of rolling out Mobility Print when there are multiple print servers. The information offers a high-level overview and comparison of the different ways to architect a BYOD printing environment with PaperCut NG/MF.

You might also like to read about the Mobility Print architecture and take a look at some Mobility Print DNS Record Examples.

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, a simple and robust solution when setting up Mobility Print is to have a single Mobility Print server that only publishes the Find-Me print queue.

Users use Mobility Print to find the organization's Find-Me print queue to submit a job. Users print their jobs to this Find-Me print queue, then they can release their job at any printer or MFD.

Solution B: Use Mobility Print with mDNS broadcast on each Mobility Print print server

If there are multiple print servers, instead of using the DNS discovery option you can simply install Mobility Print on each one and use the built in mDNS.

If your site has more than one subnet, 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 might 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

If you're using the DNS discovery option, the maximum printer servers you can use is 20. If you have more than 20 print servers, see Mobility Print Architecture.

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.

Set up the DNS records 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 end up seeing the printers from each server, so it may be necessary to Restrict printer access per subnet in conjunction with this solution.

The potential challenge with this method is that it becomes unwieldy to manage the subnet restriction rules on each Mobility Print server. It can also be confusing if you make changes in the future and the DNS records need to be modified.

Sample script:

::Site 1, where the Mobility Print server ( is serving the subnet

dnscmd /ZoneAdd pc-printer-discovery-1. /dsforwarder

dnscmd /ZoneAdd /dsprimary

dnscmd /RecordAdd b._dns-sd._udp PTR

dnscmd /RecordAdd lb._dns-sd._udp PTR

::Site 2, where the Mobility Print server ( is serving two subnets, and

dnscmd /ZoneAdd pc-printer-discovery-2. /dsforwarder

dnscmd /ZoneAdd /dsprimary

dnscmd /RecordAdd b._dns-sd._udp PTR

dnscmd /RecordAdd lb._dns-sd._udp PTR

dnscmd /ZoneAdd /dsprimary

dnscmd /RecordAdd b._dns-sd._udp PTR

dnscmd /RecordAdd lb._dns-sd._udp PTR

Step 1. Set up the DNS Records

  1. Remove any Mobility Print DNS records that were previously created. Have a look at these DNS record examples to see what might need to be deleted.

  2. Modify the sample script above 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.

Step 2. Set the Index Number on each Mobility Print server

  1. On each server, open the following file in a text editor:


  2. Find the line that reads: ZoneIndex = 0

  3. Change it to: ZoneIndex = INDEX
    (where INDEX is the corresponding suffix number configured for each pc-printer-discovery)

Step 3. (Optional) Restrict Printer Access on each Mobility Print server

  1. On each Mobility Print server open the following file in a text editor:


  2. Delete the line SubnetFilterRule = [].

  3. At the bottom of the file add a new Subnet Filtering rule that specifies which printers to publish to what subnets. In the example below, * is 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 and


  4. Restart the 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 print servers with Mobility Print installed on each print server.

For this to work, each Mobility Print server needs its own Forward Lookup Zone and set of DNS records on the DNS server. The Mobility Print server that the clients access to retrieve the list of printers is determined by their DNS Search Suffix (matching the appropriate Forward Lookup Zone), which is specified by the local DHCP server using DHCP scope option 119.

In this scenario, a user connects to the organization's network and their device receives the DNS Search Suffix from the DHCP server. When the Mobility Print client checks with the DNS server for printing services, it appends the DNS Search Suffix to its queries and only looks 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 would be directed to the Mobility Print server and clients with the DNS search suffix would be directed to the Mobility Print server and so on.

Sample script:

::Site 1, where the Mobility Print server ( will serve clients with a DNS Search Suffix of ""

dnscmd /RecordAdd b._dns-sd._udp PTR

dnscmd /RecordAdd lb._dns-sd._udp PTR

dnscmd /RecordAdd pc-mobility-print-host A

dnscmd /RecordAdd pc-printer-discovery NS

::Site 2, where the Mobility Print server ( will serve clients with a DNS Search Suffix of ""

dnscmd /RecordAdd b._dns-sd._udp PTR

dnscmd /RecordAdd lb._dns-sd._udp PTR

dnscmd /RecordAdd pc-mobility-print-host A

dnscmd /RecordAdd pc-printer-discovery NS

::Site 3, where the Mobility Print server ( will serve clients with a DNS Search Suffix of ""

dnscmd /RecordAdd b._dns-sd._udp PTR

dnscmd /RecordAdd lb._dns-sd._udp PTR

dnscmd /RecordAdd pc-mobility-print-host A

dnscmd /RecordAdd pc-printer-discovery NS