Add PTR and NS Records to DNS Resolver possible?



  • Ok I'm sorry, I did forget to mention an important thing:

    The print-server-host (Papercut Mobility Print Server) where I'm pointing the DNS records to, is a DNS server itself.

    So what papercut says is basically:
    Configure the four DNS records on your local DNS Server to point to the Mobility Print Server.
    The Mobility Print Server will then make the printers discoverable over all subnets, via Airprint etc…


  • Rebel Alliance Global Moderator

    "pc-printer-discovery IN NS  print-server-host"

    That is the NS you point to for that domain..

    But your PTR query is for this domain
    "pc-printer-discovery**.XXX.com.**"

    That is not the same, so that NS record does not point you to the printserverhost..

    Dude its very difficult to work with out the actual FQDN.. If you want more help from me your going to need to actual post what your putting in, not the template..



  • The DNS suffix from pfSense is: lew.wohnheim

    The FQDN from pfSense is: gate.lew.wohnheim

    The papercut support says, I need to add these DNS delegations:

    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

    So when adding the entries:

    b._dns-sd._udp      IN PTR pc-printer-discovery
    lb._dns-sd._udp      IN PTR pc-printer-discovery
    pc-printer-discovery IN NS  mobility
    mobility    IN A  10.100.15.34

    the following lookup isn't working:

    nslookup -query=ptr _ipps._tcp.pc-printer-discovery.lew.wohnheim.

    Even when I'm adding these entries:

    b._dns-sd._udp.lew.wohnheim      IN PTR pc-printer-discovery
    lb._dns-sd._udp.lew.wohnheim      IN PTR pc-printer-discovery
    pc-printer-discovery.lew.wohnheim IN NS  mobility
    mobility.lew.wohnheim    IN A  10.100.15.34

    the lookup isn't working.

    Is this the right syntax for unbound? How do I add a delegated subzone?


  • Rebel Alliance Global Moderator

    that is the correct syntax I showed doing a query for those entries..

    "pc-printer-discovery.lew.wohnheim IN NS  mobility"

    This is not VALID… mobility is not a valid FQDN..  What is suppose to be the NS?  10.100.15.34?  For what domain?

    "pc-printer-discovery IN NS  print-server-host"

    Then it would be

    pc-printer-discovery IN NS  mobility.lew.wohnheim
    mobility.lew.wohnheim    IN A  10.100.15.34



  • So, I was interested in the product too.  I have it half working, meaning that two of the DNS requirements are met and only the PTR records remain to be configured.  However, apparently those are only needed for iOS and MacOS and not Android.  Yet, when I tried to discover the printer on Android nothing shows up.  The following entries I added to Unbound Resolver's custom options field:

    server:
    local-zone: "example.com." transparent
    local-data: "mobility-print-host.example.com. A 192.168.71.3"
    local-data: "pc-printer-discovery.example.com. NS mobility-print-host."

    I'm not sure how important the periods are at the end of each subdomain.  Whether its "mobility-print-host." or "mobility-print-host" seems to work just fine in Mobility Print's eyes.

    Working on the PTR records now and will update if I get anywhere.

    ![papercut ng mobility print dns.png](/public/imported_attachments/1/papercut ng mobility print dns.png)
    ![papercut ng mobility print dns.png_thumb](/public/imported_attachments/1/papercut ng mobility print dns.png_thumb)



  • Hi all,

    I'm trying to get Mobility Print working with DNS Resolver too but without success, here are my custom options, all seem to be correct & present when doing a lookup from a client but I still can't see any printers in the Mobility Print app on Android or from any Apple iOS/OSX devices.

    –-------------------------------------------------------------------------------------
    server:
    local-data: "b._dns-sd._udp IN PTR pc-printer-discovery"
    local-data: "lb._dns-sd._udp IN PTR pc-printer-discovery"
    local-data: "_ipps._tcp IN PTR pc-printer-discovery"
    local-data: "pc-printer-discovery IN NS lipa-printers.mydomain.removed"
    local-data: "lipa-printers.mydomain.removed IN A 10.2.1.5"

    Just to be clear, I've removed my actual domain and replaced with 'mydomain.removed'

    Any thoughts, suggestions, offers of moral support gratefully received!  ;)


  • Rebel Alliance Global Moderator

    "'mydomain.removed' "

    What is the domain.. Did you set this zone as transparent?  Can not help you people your going to obfuscate and ask why it doesn't work.. My guess is the domain actually resolve on public and its looking for something you didn't put in so it gets back NX..

    If all the stuff you put responds when you query unbound.. How is unbound not doing what you told it to do?

    b._dns-sd._udp IN PTR pc-printer-discovery
        lb._dns-sd._udp IN PTR pc-printer-discovery
        pc-printer-discovery IN NS print-server-host
        print-server-host IN A XXX.XXX.XXX.XXX

    I don't see any . periods on the end of your entries..

    What I would suggest is connect them for the setting up in unbound.  Keep in mind unbound is not really meant to be an authoritative dns..

    This is suppose to be a delegated domain.. So what domain are you using local? yourdomain.com? what??

    Says right on their site
    "The name of the search domain(s) for your devices (eg. Android phone, Chromebook)"

    So what FQDN are you using for pc-printer-discovery ???  Its suppose to be pc-printer-discovery.yourdomain.tld and your client is suppose to be using a search suffix to find that record!!!





  • Banned

    
    local-data: "b._dns-sd._udp IN PTR pc-printer-discovery"
    local-data: "lb._dns-sd._udp IN PTR pc-printer-discovery"
    local-data: "_ipps._tcp IN PTR pc-printer-discovery"
    
    

    Dafuq?!


  • Rebel Alliance Global Moderator

    Exactly!!!


  • Banned

    @OP: Here's some valid example of PTR:

    
    local-data-ptr: "192.0.2.1 foo.example.com"
    local-data-ptr: "2001:db8:a:b:c::1 foo.example.com"
    
    

  • Rebel Alliance Global Moderator

    Nope they want PTR setup for b._dns-sd._udp

    I have downloaded the damn product they have a 40 day trial… I have to go out for my morning walk.. And then work.. But will try and get it setup today so I can screen shot exactly how to get it working with the domain your using as your search domain.. And that their papercut ng interface shows it all green, etc.  And you can print from some mobile client..


  • Banned

    AFAICT this shit wants/needs mDNS/Zeroconf and messing with Unbound will do zero useful work there. Perhaps look at Avahi instead.

    Junk.



  • You can do either DNS records or mDNS.  I tried the mDNS discovery option in PaperCut NG Mobility print and my printer does show up in their Android app but I can an internal server error.  Also, I found the avahi daemon to crash intermittently with default settings.

    Would much prefer to get the DNS PTR records working.



  • Thanks for offering to have a look at this johnpoz, very much appreciated!

    This site is using split DNS, by this I mean they're using the same domain internally as externally, thus you're probably correct that something is missing from the DNS config in pfSense and the Mobility Print client is then looking at the public DNS to find it and then receives NX.

    I've asked the IT Director if I can post the domain name here but they would prefer not to, therefore could we use 'yourdomain.ltd' whilst discussing the configuration?

    pfSense version: 2.3.4-RELEASE-p1

    System - General Setup - Domain: yourdomain.ltd

    DNS Resolver - System Domain Local Zone Type: Transparent

    Client DNS Suffix is: yourdomain.ltd

    Given the above information, would you suggest something along the following lines in DNS Resolver - Custom Options:

    b._dns-sd._udp.yourdomain.ltd. IN PTR pc-printer-discovery.yourdomain.ltd.
    lb._dns-sd._udp.yourdomain.ltd. IN PTR pc-printer-discovery.yourdomain.ltd.
    pc-printer-discovery.yourdomain.ltd. IN NS print-server-host.yourdomain.ltd.
    print-server-host.yourdomain.ltd. IN A XXX.XXX.XXX.XXX

    Many thanks in advance …


  • Netgate

    I think OP really wants to configure SRV records for that, not PTR records.

    I would say the confusion knob is turned up to 11.


  • Rebel Alliance Global Moderator

    I have downloaded the software, and yeah something is not right that is for sure with their instructions.

    Sorry to say I will most likely not get back this for a few days.. I got new internet at home 500/50 and it consuming my interest ;)

    What I noticed was didn't even see the client doing a dns query for the PTR.. I think the current mdns that was on the segment was confusing it, etc.  I will have to turn off the mdns on the printer, etc.  And need to run the mobility client on different machine than the papercut ng, etc.



  • Hello Derelict,

    @Derelict:

    I think OP really wants to configure SRV records for that, not PTR records.

    I would say the confusion knob is turned up to 11.

    The software vendor specify a requirement for the following records:

    ;–-------------- Mobility Print records --------------

    b._dns-sd._udp      IN PTR pc-printer-discovery
    lb._dns-sd._udp      IN PTR pc-printer-discovery
    pc-printer-discovery IN NS  print-server-host
    print-server-host    IN A  XXX.XXX.XXX.XXX

    ;--------------- End of Mobility Print records ---------

    https://www.papercut.com/products/ng/mobility-print/manual/how-to-setup/step-2-configuration/discover-your-printers-using-dns/

    Which is possibly the cause of the confusion knob being turned past its recommended level  ;)



  • Hello johnpoz,

    No problem, glad I'm not the only one struggling with this  ???

    Enjoy the new connection, hopefully see you back here once you've downloaded the entire internet at blisteringly fast speeds ;)



  • Thanks again johnpoz,

    This configuration has many of us perplexed.

    Have fun with the new 500/50 connection.  I'm sure the increased upload is the best part.


  • Netgate

    The software vendor specify a requirement for the following records:

    ;–-------------- Mobility Print records --------------

    b._dns-sd._udp      IN PTR pc-printer-discovery
    lb._dns-sd._udp      IN PTR pc-printer-discovery
    pc-printer-discovery IN NS  print-server-host
    print-server-host    IN A  XXX.XXX.XXX.XXX

    ;--------------- End of Mobility Print records ---------

    The software vendor's confusion knob is turned up to at least 12. That makes no sense at all. PTR records do not have names on both sides. They are used to lookup a name when all you have is an address, like 198.51.100.101.



  • They look like SRV records…. at least the left-hand side.... maybe you can "sniff" the correct format from a working setup using some form of dns-sd -Z



  • I think the software is looking to be a delegation server for a specific subdomain.

    Base domain: example.com
    Delegation server: mobility-print-host.example.com
    subdomains to delegate: xxxxprinter.b._dns-sd._udp.pc-printer-discovery.

    ???


  • Netgate

    Unless the LHS of those PTR records is supposed to be replaced with at least part of an IP address, to be completed with .in-addr.arpa., they are nonsense.

    Or we're going to need a lot more information about what it is they are trying to do.



  • The configuration example on their website (that we've all shared here) is specifically for BIND.  Not sure if it translates 1:1 for Unbound.


  • Netgate

    DNS is DNS is DNS. I have not looked at the document there.



  • I get that.  But something with the way PTR records are handled internally in the software (BIND vs Unbound) must be different.


  • Banned

    No it doesn't translate 1:1 for Unbound, plus, instead of copy-paste of nonsensical instructions they are providing, it'd be way more useful to explain what they are trying to implement. Is that shitty product trying to delegate some subdomain to their own nameserver/printserver, or what?


  • Rebel Alliance Global Moderator

    Exactly dok from the few minutes I looked at it when I installed the trial is they seem to try and delegate the domain your using to the box running the mobility software.  I can tell you that when you install it does listen on 53.. But doesn't seem to answer queries for its own name or for those PTR even when you directly query it.

    I sniffed the papercut ng box when it was running the test to try and see exactly what it was doing a query for so could put in the correct stuff in unbound to what it was looking for.  But I didn't see it do any queries.  It sent out a mdns query that the printer answered directly etc.  Which doesn't seem like a smart thing to do if what your running is a validation of the dns method, etc.

    When I get a chance I will turn off the airprint on the printer and move the mobility software to a box running on a different segment and then on my ios put in their software to see if can get it to find the printer and see what dns it actually does query for, etc.  But might take me a bit since my network at home is in a shambles after moving to that clunky usg as my router..



  • @johnpoz:

    I sniffed the papercut ng box when it was running the test to try and see exactly what it was doing a query for so could put in the correct stuff in unbound to what it was looking for.  But I didn't see it do any queries.  It sent out a mdns query that the printer answered directly etc.  Which doesn't seem like a smart thing to do if what your running is a validation of the dns method, etc.

    Just a quick check…does the FQDN set in the box itself have to match the A record and NS record?

    e.g. When the box is assigned a static IP through the DHCP server and Unbound is set to record static DHCP entries. In the DHCP setting then should the hostname be set to "my-print-server" or can it be say "host1" and the additional custom options be added as well?



  • Hi,
    I am a developer from Mobility Print team at PaperCut Software. Here are some clarification about our documentation on setting up Mobility Print.

    ;---------------- Mobility Print records --------------
    
    b._dns-sd._udp       IN PTR pc-printer-discovery
    lb._dns-sd._udp      IN PTR pc-printer-discovery
    pc-printer-discovery IN NS  print-server-host
    print-server-host    IN A   XXX.XXX.XXX.XXX
    
    ;--------------- End of Mobility Print records --------- 
    

    Basically what we want is to set up a delegation to pc-printer-discovery.myschool.edu to the IP of the Mobility Print server. The two PTR records are defined by te DNS-SD RFC just for iOS and macOS devices

    Again, the syntax above is very specific to BIND. Here is the equivalent syntax but using FQDN:

    b._dns-sd._udp.myschool.edu.       IN PTR pc-printer-discovery.myschool.edu.
    lb._dns-sd._udp.myschool.edu.      IN PTR pc-printer-discovery.myschool.edu.
    pc-printer-discovery.myschool.edu. IN NS  print-server-host.myschool.edu.
    print-server-host.myschool.edu.    IN A   XXX.XXX.XXX.XXX
    

    I am happy to answer any technical questions about how to setup Mobility Print in your environment.



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


  • Rebel Alliance Global Moderator

    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/


  • Rebel Alliance Global Moderator

    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.


  • Rebel Alliance Global Moderator

    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.


  • Rebel Alliance Global Moderator

    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