Add PTR and NS Records to DNS Resolver possible?
-
Hello mobility_dev,
Many thanks for joining the discussion and for clarifying the required records.
I think the issue here is we need to find how best to create the required DNS records in 'Unbound' DNS (or 'DNS Resolver' as it is called in pfSense) so the Mobility Print App can successfully discover published printers.
In order to do this I believe the resident 'DNS Resolver' experts would be interested in gaining a better understanding of how the DNS records are utilised by the client application, I'll ask the following questions in order to get the ball rolling, everyone else feel free to jump in …
- Could you tell us how the client apps (Android, Windows, ChromeBook) search for the Mobility Print Server, do they specifically look for the subzone called 'pc-printer-discovery' with the same DNS suffix of the network the client device is connected to, or are the clients looking for the PTR records 'b._dns-sd._udp' & 'lb._dns-sd._udp' with the same DNS suffix of the network the client is connected to?
-
Hi trentuk,
Here are are my answer:Could you tell us how the client apps (Android, Windows, ChromeBook) search for the Mobility Print Server, do they specifically look for the subzone called 'pc-printer-discovery' with the same DNS suffix of the network the client device is connected to, or are the clients looking for the PTR records 'b._dns-sd._udp' & 'lb._dns-sd._udp' with the same DNS suffix of the network the client is connected to?
The Android, Windows will look for printers at a hard-coded URL: https://rpc.pc-printer-discovery:9164/printers (ChromeBook the URL is http://rpc.pc-printer-discovery:9163/printers). The OS will automatically append the search domain for you. If you setup the DNS delegation right, then this will return you a list of printer in JSON format.
The first step of the 'DNS Discovery Checks' says to test the IPPS pointer records, but this record isn't mentioned prior to this point, is this record required? If so is this the first record the Mobility Print App looks for? Should this record be returned by the local DNS or the Mobility Print Server DNS - https://www.papercut.com/products/ng/mobility-print/manual/troubleshooting/#test-the-ipps-pointer-records-dns-server
That record is "managed" by Mobility Print server itself (because it's under pc-printer-discovery subzone), so you should not add this record manually to your DNS server, you just need to setup the delegation subzone pc-printer-discovery under your search domain from your DNS server to Mobility Print server. That's it.
If you have more questions, please ask. -
if they are looking for rpc.pc-printer-discovery.domain.tld
And all your doing is pointing NS to the mobility then all that is needed in pfsense unbound would be a domain override for pc-printer-discovery.domain.tld. What is the point of the PTRs? why can not just delegate _dns-sd._udp.domain.tld, etc. unless your saying the mobility box won't respond to those - then why the need for the PTR at all if they are just looking for
rpc.pc-printer-discovery.yourdomain.tld
Why can I Not just put in a host override of rpc.pc-printer-discovery and point it to the IP of the mobility box? Which will serve up the xml? http(s)//:rpc.pc-printer-discovery.domain.tld:9164/printers
Why do we need all this subdomain delegation.. unless they look for Othersuff.pc-printer-discovery.domain.tld
-
Thanks johnpoz for your input.
Mobility Print supports many client device types: Android, Chromebook, Windows, iOS and macOS.
If the customer need to:- Support Android and Chromebook, then you are right. They only need to put the rpc.pc-printer-discovery.domain.tld using host override feature of Unbound as you said and it should work.
- Additionally support Windows, then they need to add another host override ipp.pc-printer-discovery.domain.tld to Unbound
- To support iOS and macOS, our server need to implement the DNS-SD RFC (http://www.dns-sd.org/) because iOS and macOS using DNS-SD to discovery printers. So the two records b._dns-sd._udp.domain.tld PTR pc-printer-discovery.domain.tld and lb._dns-sd._udp.domain.tld PTR pc-printer-discovery.domain.tld are required.
Here is a the DNS conversation of the iOS device with the DNS server (in this case Unbound) when it join a subnet with the search domain domain.tld and try to find the printers: - iOS devices: hey, in this search domain domain.tld, where should I browse for available services so that I can use?
(then it sends the query b._dns-sd._udp.domain.tld PTR to Unbound) - Unbound: I don't know, but you can ask pc-printer-discovery.domain.tld
(in this case we want Unbound to return the pc-printer-discovery.domain.tld as the data in the answer)
Next, because the iOS device want to find printing services, which is defined as _ipps._tcp in DNS-SD RFC - The iOS device will ask: Can you give me a list of printers so that I can print to?
(then it sends the query _ipps._tcp.pc-printer-discovery.domain.tld PTR TO Unbound and we expect Unbound forward this query to Mobility Print server. Mobility Print server will generate the answers returning to Unbound then Unbound returns the answers to the iOS device)
This is how it works in the case of BIND and Windows DNS server.
So it's just the matter to replicate this conversation by configuring Unbound.
Input from Unbound expert is appricated!For more information about DNS-SD: http://www.dns-sd.org/
-
That is great info thank you - how come that info is not listed on your site when looking to implement dns for your product? Or is it and just didn't find that document? If so could you provide link?
-
Just tried the host override in the web GUI. Unbound doesn't seem to like the "dot" after the "rpc". It returns an error in the staying "A valid hostname is specified, but the domain part should be omitted.
-
you wouldn't put in a dot after
The host would be rpc
The domain would be pc-printer-discovery.domain.tld
In your host override section.
-
Thanks for the clarification johnpoz. Rookie mistake on my part. I have all the records required for Android and two green check marks but I still can't seem to get the mobility app to find my printers.
-
I have gotten a bit side tracked.. I will try and find some time here tmrw morning to bring up the mobility on box on one of my wifi segments with printer and papercut ng on different segment to get this working.. And will turn off the functionality on the printer directly, etc.
Per this
"Support Android and Chromebook, then you are right. They only need to put the rpc.pc-printer-discovery.domain.tld using host override feature of Unbound as you said and it should work."All you should need is the override pointing to the IP of your box running the mobility.. As long as the mobility has your printer(s) setup, etc.
-
I did exactly that.
However, I'm not sure if the following makes a difference.
-papercut and mobility print are on the same machine
-printrr is on same subnet as above
-android phone is on a different subnet -
Hi thehammer86,
Can you access the URL http://rpc.pc-printer-discovery:9163/printers from a browser on your Android device?
It should return to you some JSON if you have some printers on your Mobility Print server. -
It returns JSON if I add .example.com.
I must be missing something in my unbound config?
-
What is the search domain (DNS suffix) on your Android device?
-
I don't seem to have that option available in my wifi. Running Android 6.0.1.
I have my search domain set in my DHCP server on pfSense.
I've also manually added it to my windows PCs. For the windows PCs I know the search domain is working because I don't have to add the example.xom part when I do an NS lookup.
-
Hello everybody,
I was wondering: was this issue solved in the end?
We are facing the same problem configuring Resolver with the Mobility records.
Checking the records using the Mobility application, we keep getting errors on the PTR records (the other 2 are working fine).
Screenshot of working DNS entries would be really great! -
Not yet with the Unbound resolver. I ended up setting up a separate sever just for bind9. I have everything working with that setup.
-
Is it possible to post the actual records you used (as an example/syntax)?
Screenshot of dns settings?
thanks! -
And what did you setup exactly – that has been the whole question... See you can for sure setup PTR records on unbound...
The person from Mobility print was suppose to be answering those questions.. Which I do not recall ever got answered.
-
I can tell this:
we are working on this issue with 2 experienced engineers. We have setup the 4 records as requested by the mobility print software.
nslookup confirms the 4 records are active and correct. After checking the records with the mobility software, we keep getting an error on the PTR records.
Fortunately we have an active Papercut license (it is a new install with 150 users), we created a support ticket…hope to get quick response.
If anyone has fixed this PTR issue, I would really like to see the DNS entries...
We also suggested a change to the mobility print client: a possibility to enter an ip-address instead of using the autodiscover option... -
Posting my named.conf file shortly for bind. Just obfuscating the IPs and domains.
Also, tech support was kind enough a few weeks ago to spend 2-3 hours on the phone with me to try an figure out the problem with unbound. I found something in Mobility Print's log files that may be of use.
Hold tight.