You are here: Setting up Mobility Print > Step 2: Configure Mobility Print > Discover your printers using DNS

Discover your printers using DNS

Great! So you’re keen to leverage the benefits of DNS discovery over the standard mDNS discovery. DNS discovery does require some DNS configuration. This section assumes you have local DNS infrastructure and are able to make DNS record changes.

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

Record Type Example (Bind Notation)
An A record pointing to your server running Mobility Print my-print-server IN A 10.1.1.4
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:

Discover your printers using DNS

Step 1: Select your search domain

NOTE

Before you configure DNS service discovery, make sure you have the following information:

  • If you have subnets, the IP address and netmask for one device on each subnet.
  • The name of the search domain(s) for your clients (Android phone, Chromebook etc.), for example college.org.

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.

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

  2. 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

  3. 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.

  4. 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

  5. Click Next.

NOTE

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.

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 (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.

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:

    [app-path]/data/config/dns.conf.toml

  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:

    [app-path]/data/config/printer.conf.toml

  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 10.2.0.0/24 and 10.3.0.0/24.

    [[SubnetFilterRule]]PrinterName="*"Subnets=["10.2.0.0/24", "10.3.0.0/24"]

  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 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