Skip to content

Qname minimisation #2311

Description

@bortzmeyer

It would be nice to have an implementation of qname minimisation http://datatracker.ietf.org/doc/draft-ietf-dnsop-qname-minimisation/ in PowerDNS Recursor. It would allow to perform quantitative tests (such as differences in the number of packets sent to authoritative name servers) on this technique, thus allowing to discuss the draft with actual facts.

To gain experience, and to be able to assert with absolute certainty that qname minimization works, it would be great to have a widely used DNS resolver implement it.

Since the intended status for the Internet-Draft is "experimental", a compilation option (with default off) would be enough. (By the way, why there is currently zero compilation options in the recursor ?)

Activity

  1. ahupowerdns commented on Mar 4, 2015

    @ahupowerdns
    Contributor

    Hi Stephane,

    This almost fits into what the Lua preoutquery hook can do, and perhaps that would be a great place to experiment with this feature. Currently preoutquery can only block a query to auth servers, but with a little bit of work it could be made to modify such queries. postoutquery could then restore things perhaps.

    We'll be looking into it.

  2. Habbie commented on Mar 4, 2015

    @Habbie
    Member

    (As for the secondary question, we do have a compilation option - whether or not you want Lua, and if so, where it lives. We don't have any other compilation options because so far we've managed to make everything configurable at runtime or startuptime.)

  3. added this to the milestone on Dec 15, 2015
  4. removed this from the milestone on Feb 20, 2017
  5. added this to the rec-helpneeded milestone on Mar 7, 2017
  6. johnhtodd commented on May 3, 2017

    @johnhtodd

    We (PCH) are interested in qname minimization for our recursive resolver array, which partially uses powerdns recursor. Since we serve a set of clients with a charter of privacy, it seems that qname minimization serves that interest by hiding the full query from resolvers that have no need to see it. We can put some funding towards this work.

  7. bortzmeyer commented on May 5, 2017

    @bortzmeyer
    Author

    By the way, since the opening of this issue, QNAME minimisation RFC has been published, RFC 7816.

  8. MichaelSchroll commented on Aug 14, 2017

    @MichaelSchroll
  9. johnhtodd commented on Oct 11, 2017

    @johnhtodd

    Ping. Our PDNS resolvers are starting to look shabby when they are tested against the DNS-OARC "Test My DNS" page - they only have "QNAME Minimization" as the only failure test. While I believe this should be implemented for privacy reasons, sometimes it takes a bit of publicity in comparison to other resolvers to encourage a patch. :-) https://cmdns.dev.dns-oarc.net/

  10. mnordhoff commented on Jan 10, 2018

    @mnordhoff
    Contributor

    I'm not sure how consistent that is with Unbound's current implementation. They use A queries now, for example.

  11. zeha commented on Feb 5, 2018

    @zeha
    Collaborator

    Wild idea from a few days ago: use public suffix list to determine which outqueries should undergo qname minimization. If infra would be there to do this in preoutquery, even better.

  12. bortzmeyer commented on Feb 5, 2018

    @bortzmeyer
    Author

    @zeha Strong NO. The Public Suffix List is outdated (because it is not maintained by the domain name holders), and stops mostly at the second level. Also, QNAME minimisation is a DNS thing and should not rely on non-DNS resources.

  13. 8 remaining items

  14. omoerbeek commented on Jun 15, 2019

    @omoerbeek
    Member
  15. pieterlexis commented on Jun 18, 2019

    @pieterlexis
    Contributor

    First version has been merged to master in #7757

  16. maznu commented on Jul 5, 2019

    @maznu

    Strangely enough, QNAME Minimization is part of the "Mozilla Policy Requirements for DNS over HTTPs Partners".

    Am looking forward to being able to try this out, as we are tentatively considering doing something with Mozilla. Thank you, @pieterlexis!

  17. added a commit that references this issue on Jul 5, 2019
  18. omoerbeek commented on Jul 8, 2019

    @omoerbeek
    Member

    If you want, you can run the master branch builds found in https://repo.powerdns.com; these already contain the qname minimization code I committed last month. Feedback is very welcome.

  19. crami commented on Aug 14, 2019

    @crami

    just tried installing pdns-recursor_4.2.0~rc1%2Bmaster.581.gda24df4ac-1pdns.stretch_amd64.deb from stretch-rec-master which was built this morning. But it looks like that is not containing your code.

  20. Habbie commented on Aug 14, 2019

    @Habbie
    Member

    But it looks like that is not containing your code.

    It really should, please check again..

  21. crami commented on Aug 15, 2019

    @crami

    Ok, I tried it again, but is stills seams not to do anything. What I did:
    apt install pdns-recursor=4.2.0~rc1+master.585.gcff66f2dc-1pdns.stretch
    as I had to downgrade from 4.2.0-1.
    Then did a tcpdump to verify outgoing queries:

    07:28:52.266657 IP 193.5.68.65.30064 > ns3.afrinic.net.domain: 9602 [1au] PTR? 208.118.246.194.in-addr.arpa. (57)
    07:28:52.280656 IP 193.5.68.65.56007 > ns2.as8758.net.domain: 10980 [1au] PTR? 208.118.246.194.in-addr.arpa. (57)
    

    the first query should have ben minimized in my opinion.

    Also https://cmdns.dev.dns-oarc.net/ says qname minimisation is not done

  22. Habbie commented on Aug 15, 2019

    @Habbie
    Member

    You do need to enable the feature (qname-minimization=yes).

    We are discussing on a closed ticket; for further help, please find us on IRC or the mailing lists

  23. crami commented on Aug 15, 2019

    @crami

    For everyone ending up here... It works missing piece was adding
    qname-minimization=yes
    to recursor.conf

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions