Internet-Draft dns-oops May 2023
Almond, et al. Expires 22 November 2023 [Page]
Workgroup:
DNSOP Working Group
Internet-Draft:
draft-grubto-dnsop-dns-out-of-protocol-signalling-02
Published:
Intended Status:
Standards Track
Expires:
Authors:
C. Almond
ISC
P. van Dijk
PowerDNS
M.W. Groeneweg
SIDN
S.W.J. Ubbink
SIDN
D. Salzman
CZ.NIC
W. Toorop
NLnet Labs

DNS Out Of Protocol Signalling

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.

Table of Contents

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.

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:

3.6. Extended DNS Error conditions

Action:

  • Dependent on the DNS Error condition

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

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.

7. Security and Privacy Considerations

Signalling MUST be performed in an authenticated and private manner.

8. Implementation Status

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, , <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, , <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", , <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, , <https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-dns-error-reporting-04>.
[Knot-DNS-3.1.6]
CZ.NIC, "Knot DNS - Version 3.1.6", , <https://www.knot-dns.cz/2022-02-08-version-316.html>.
[NSD-oops-branch]
NLnet Labs, "NSD feature/oops branch", , <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, , <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.

Updates after discussion during the port53 hackathon in Rotterdam.

Initial version

Authors' Addresses

Cathy Almond
Internet Systems Consortium, Inc.
PO Box 360
Newmarket, NH 03857
United States of America
Peter van Dijk
PowerDNS
Den Haag
Netherlands
Marc Groeneweg
Stichting Internet Domeinregistratie Nederland
Postbus 5022
6802EA Arnhem
Netherlands
Stefan Ubbink
Stichting Internet Domeinregistratie Nederland
Postbus 5022
6802EA Arnhem
Netherlands
Daniel Salzman
CZ.NIC
Czechia
Willem Toorop
NLnet Labs
Science Park 400
1098 XH Amsterdam
Netherlands