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, . [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, May 2017, . 12. Informative References [D-Bus] Pennington, H., Carlsson, A., Larsson, A., Herzberg, S., McVittie, S., and D. Zeuthen, "D-Bus Specification", February 2023, . [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, . 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, . [NSD-oops-branch] NLnet Labs, "NSD feature/oops branch", May 2023, . [RFC1996] Vixie, P., "A Mechanism for Prompt Notification of Zone Changes (DNS NOTIFY)", RFC 1996, DOI 10.17487/RFC1996, August 1996, . 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]