DNSOP Working Group                                            C. Almond
Internet-Draft                                                       ISC
Intended status: Standards Track                             P. van Dijk
Expires: 22 November 2023                                       PowerDNS
                                                          M.W. Groeneweg
                                                           S.W.J. Ubbink
                                                                    SIDN
                                                              D. Salzman
                                                                  CZ.NIC
                                                               W. Toorop
                                                              NLnet Labs
                                                             21 May 2023


                     DNS Out Of Protocol Signalling
          draft-grubto-dnsop-dns-out-of-protocol-signalling-02

Abstract

   This document seeks to specify a method for name servers to signal
   programs outside of the name server software, and which are not
   necessarily involved with the DNS protocol, about conditions that can
   arise within the name server.  These signals can be used to invoke
   actions in areas that help provide the DNS service, such as routing.

   Currently this document serves as a requirements document to come to
   a signalling mechanism that will suit the use cases best.  Part of
   that effort is to assemble a list of conditions with potential
   associated out of DNS protocol actions, as well as inventory and
   assess existing signalling mechanisms for suitability.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at https://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on 22 November 2023.




Almond, et al.          Expires 22 November 2023                [Page 1]

Internet-Draft                  dns-oops                        May 2023


Copyright Notice

   Copyright (c) 2023 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents (https://trustee.ietf.org/
   license-info) in effect on the date of publication of this document.
   Please review these documents carefully, as they describe your rights
   and restrictions with respect to this document.  Code Components
   extracted from this document must include Revised BSD License text as
   described in Section 4.e of the Trust Legal Provisions and are
   provided without warranty as described in the Revised BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Terminology and Definitions . . . . . . . . . . . . . . . . .   3
   3.  Conditions to be signalled from within the name server  . . .   3
     3.1.  All zones are loaded and ready to serve . . . . . . . . .   4
     3.2.  DNSSEC signatures are (about to) expire . . . . . . . . .   4
     3.3.  DNSSEC signatures will no longer expire soon  . . . . . .   4
     3.4.  Query rate is exceeding a threshold . . . . . . . . . . .   4
     3.5.  Query rate is below a threshold again . . . . . . . . . .   4
     3.6.  Extended DNS Error conditions . . . . . . . . . . . . . .   4
   4.  Conditions to be signalled from outside the name server . . .   5
     4.1.  The name server is running and can respond to queries . .   5
     4.2.  A zone is loaded and ready to serve . . . . . . . . . . .   5
     4.3.  A zone is updated to a new version  . . . . . . . . . . .   5
     4.4.  A zone is (about to) expire . . . . . . . . . . . . . . .   5
     4.5.  Shutting down . . . . . . . . . . . . . . . . . . . . . .   6
     4.6.  The nameserver has crashed  . . . . . . . . . . . . . . .   6
   5.  Requirements for signalling mechanisms and channels . . . . .   6
   6.  Existing signalling mechanisms and channels . . . . . . . . .   6
     6.1.  Notify  . . . . . . . . . . . . . . . . . . . . . . . . .   6
     6.2.  Extended DNS Error reporting  . . . . . . . . . . . . . .   6
     6.3.  D-Bus as publication channel  . . . . . . . . . . . . . .   6
   7.  Security and Privacy Considerations . . . . . . . . . . . . .   7
   8.  Implementation Status . . . . . . . . . . . . . . . . . . . .   7
   9.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   7
   10. Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   7
   11. Normative References  . . . . . . . . . . . . . . . . . . . .   7
   12. Informative References  . . . . . . . . . . . . . . . . . . .   7
   Appendix A.  Implementation Status  . . . . . . . . . . . . . . .   8
   Appendix B.  Change History . . . . . . . . . . . . . . . . . . .   8
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   8





Almond, et al.          Expires 22 November 2023                [Page 2]

Internet-Draft                  dns-oops                        May 2023


1.  Introduction

   Operators of name servers can benefit from automatically taking
   action upon certain conditions in the name server software.  Some
   conditions can be monitored from outside the name server software,
   but for adequate and immediate action, the name server software can
   signal itself about the condition immediately when it occurs to
   invoke action by a listener for these signals.

   An example of such a condition is when all zones, from a set served
   from an anycasted prefix, are loaded and ready to be served, with the
   associated automatic actions to only announce a prefix route from the
   point-of-presence where the name server is running, if all zones from
   the set are ready to be served, and to withdraw the prefix route if
   one of the zones cannot be served.  This way queries for zones will
   only reach the point-of-presence if the name server software can
   answer those queries.

   Operators of anycasted DNS authoritative services with diverse
   implementations will benefit from standardizing of the name server
   signalling, but before coming to a specification for the mechanism,
   this document will serve to inventorise the already available
   standardized and non-standardized signalling channels and assess them
   for usability for out of protocol signalling.

   Recursive server operators could also benefit from this, having an
   eventdriven infrastructure - when recursive server is ready to serve,
   start announcing the service address with BGP.  The usual way to do
   this is by polling the server, and spending resources waiting for
   this service to come up.

2.  Terminology and Definitions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119][RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  Conditions to be signalled from within the name server

   This section served to collect a list of conditions for which actions
   outside of the DNS protocol may be interesting.  It is by no means
   meant to be a complete list, but serves to inventorise the
   requirements for the signalling channel.






Almond, et al.          Expires 22 November 2023                [Page 3]

Internet-Draft                  dns-oops                        May 2023


3.1.  All zones are loaded and ready to serve

   Action:

   *  Start announcing the prefix on which these zones are served with
      BGP.

3.2.  DNSSEC signatures are (about to) expire

   The period before expiration may be configurable.  A value of 0 will
   emit the signal the DNSSEC signature expires.

   Action:

   *  Stop the BGP announcement of the prefix on which the zone is
      served.  It may be reannounced when the zone becomes DNSSEC valid
      again (See Section 3.3).

3.3.  DNSSEC signatures will no longer expire soon

   Action:

   *  Start announcing the prefix on which this zone is served with BGP.

3.4.  Query rate is exceeding a threshold

   Action:

   *  Lengthen the AS path for the BGP announcement for a prefix, to
      demotivate the anycast node that receives all the queries.

   *  Or if the query rate is indicating a denial of service attack,
      keep the BGP AS path short, to absorb the attack.

   *  Signal to SIEM and logging that problem has been observed.

3.5.  Query rate is below a threshold again

   Action:

   *  Recover from the measures taken in Section 3.4

3.6.  Extended DNS Error conditions

   Action:

   *  Dependent on the DNS Error condition




Almond, et al.          Expires 22 November 2023                [Page 4]

Internet-Draft                  dns-oops                        May 2023


4.  Conditions to be signalled from outside the name server

4.1.  The name server is running and can respond to queries

   How to identify:

   *  check if the name server is running and do a query to see if it
      responds

   Action:

   *  Start announcing the prefix on which this zone is served with BGP

4.2.  A zone is loaded and ready to serve

   How to identify:

   *  Query the zone, see responses

   Input: zone and prefix to announce Output: prefix to announce

   Action:

   *  Start announcing the prefix on which this zone is served with BGP.

4.3.  A zone is updated to a new version

   How to identify:

   *  Query zone SOA record, register value and then compare to expected
      version

   Action:

   *  Verify the zone content.  Is it DNSSEC valid, does the ZONEMD
      validate.

4.4.  A zone is (about to) expire

   The period before expiration may be configurable.  A value of 0 will
   emit the signal the moment the zone expires.

   Action:

   *  Stop the BGP announcement of the prefix on which the zone is
      served.  It may be reannounced when the zone becomes available
      again (See Section 3.1).




Almond, et al.          Expires 22 November 2023                [Page 5]

Internet-Draft                  dns-oops                        May 2023


4.5.  Shutting down

   How to identify:

   *  Maintenance, before shutting down the name server, initiate at
      least the BGP withdrawl

   Action:

   *  Stop the BGP announcement of the prefix

4.6.  The nameserver has crashed

   How to identify:

   *  The name server is no longer running (or does not respond to
      queries, although that might also be the case when it is under an
      attack)

   Action:

   - Stop the BGP announcement of the prefix

5.  Requirements for signalling mechanisms and channels

   The following requirements can be distilled from Section 3 and
   Section 4.

6.  Existing signalling mechanisms and channels

   What follows is a list of existing signalling mechanisms assessed on
   their suitability based on the requirements outlined in the previous
   paragraph.

6.1.  Notify

   [RFC1996]

6.2.  Extended DNS Error reporting

   [I-D.ietf-dnsop-dns-error-reporting]

6.3.  D-Bus as publication channel

   [D-Bus]






Almond, et al.          Expires 22 November 2023                [Page 6]

Internet-Draft                  dns-oops                        May 2023


7.  Security and Privacy Considerations

   Signalling MUST be performed in an authenticated and private manner.

8.  Implementation Status

   *  Knot DNS has support for D-Bus notifications (See Section 6.3) for
      significant server and zone events with the "dbus-event"
      configuration parameter since version 3.1.6 [Knot-DNS-3.1.6]

   *  NSD has a feature branch [NSD-oops-branch] where work is being
      done on the implementation

9.  IANA Considerations

   This document has no IANA actions

10.  Acknowledgements

   We would like to thank the people of the port53 hackathon in
   Rotterdam for their contributions.  Mainly Doris Hauser, Lars-Johan
   Liman, Vilhelm Prytz and Henrik Kramselund

11.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

12.  Informative References

   [D-Bus]    Pennington, H., Carlsson, A., Larsson, A., Herzberg, S.,
              McVittie, S., and D. Zeuthen, "D-Bus Specification",
              February 2023, <https://dbus.freedesktop.org/doc/dbus-
              specification.html>.

   [I-D.ietf-dnsop-dns-error-reporting]
              Arends, R. and M. Larson, "DNS Error Reporting", Work in
              Progress, Internet-Draft, draft-ietf-dnsop-dns-error-
              reporting-04, 3 February 2023,
              <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-
              dns-error-reporting-04>.




Almond, et al.          Expires 22 November 2023                [Page 7]

Internet-Draft                  dns-oops                        May 2023


   [Knot-DNS-3.1.6]
              CZ.NIC, "Knot DNS - Version 3.1.6", February 2022,
              <https://www.knot-dns.cz/2022-02-08-version-316.html>.

   [NSD-oops-branch]
              NLnet Labs, "NSD feature/oops branch", May 2023,
              <https://github.com/NLnetLabs/nsd/tree/features/oops>.

   [RFC1996]  Vixie, P., "A Mechanism for Prompt Notification of Zone
              Changes (DNS NOTIFY)", RFC 1996, DOI 10.17487/RFC1996,
              August 1996, <https://www.rfc-editor.org/info/rfc1996>.

Appendix A.  Implementation Status

   *Note to the RFC Editor*: please remove this entire appendix before
   publication.

   Knot currently uses [D-Bus] for this.

Appendix B.  Change History

   *Note to the RFC Editor*: please remove this entire appendix before
   publication.

   *  draft-grubto-dnsop-dns-out-of-protocol-signalling-02

   |  Updates after discussion during the port53 hackathon in Rotterdam.

   *  draft-grubto-dnsop-dns-out-of-protocol-signalling-00

   |  Initial version

Authors' Addresses

   Cathy Almond
   Internet Systems Consortium, Inc.
   PO Box 360
   Newmarket,  NH 03857
   United States of America
   Phone: +1 650 423 1300
   Email: cathya@isc.org


   Peter van Dijk
   PowerDNS
   Den Haag
   Netherlands
   Email: peter.van.dijk@powerdns.com



Almond, et al.          Expires 22 November 2023                [Page 8]

Internet-Draft                  dns-oops                        May 2023


   Marc Groeneweg
   Stichting Internet Domeinregistratie Nederland
   Postbus 5022
   6802EA Arnhem
   Netherlands
   Email: marc.groeneweg@sidn.nl


   Stefan Ubbink
   Stichting Internet Domeinregistratie Nederland
   Postbus 5022
   6802EA Arnhem
   Netherlands
   Email: stefan.ubbink@sidn.nl


   Daniel Salzman
   CZ.NIC
   Czechia
   Email: daniel.salzman@nic.cz


   Willem Toorop
   NLnet Labs
   Science Park 400
   1098 XH Amsterdam
   Netherlands
   Email: willem@nlnetlabs.nl























Almond, et al.          Expires 22 November 2023                [Page 9]