DNS Out Of Protocol Signalling
Internet Systems Consortium, Inc.PO Box 360
Newmarket
NH 03857
United States of America
+1 650 423 1300
cathya@isc.org
PowerDNS
Den Haag
Netherlands
peter.van.dijk@powerdns.com
Stichting Internet Domeinregistratie NederlandPostbus 5022
Arnhem
6802EA
Netherlands
marc.groeneweg@sidn.nl
Stichting Internet Domeinregistratie NederlandPostbus 5022
Arnhem
6802EA
Netherlands
stefan.ubbink@sidn.nl
CZ.NIC
CZ
daniel.salzman@nic.cz
NLnet LabsScience Park 400
Amsterdam
1098 XH
Netherlands
willem@nlnetlabs.nl
Internet
DNSOP Working Group
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.
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.
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 when, and only when, they appear in all
capitals, as shown here.
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.
All zones are loaded and ready to serve
Action:
- Start announcing the prefix on which these zones are served with BGP.
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 ).
DNSSEC signatures will no longer expire soon
Action:
- Start announcing the prefix on which this zone is served with BGP.
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.
Query rate is below a threshold again
Action:
- Recover from the measures taken in
Extended DNS Error conditions
Action:
- Dependent on the DNS Error condition
Conditions to be signalled from outside the name server
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
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.
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.
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 ).
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
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
Requirements for signalling mechanisms and channels
The following requirements can be distilled from and .
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.
Extended DNS Error reporting
D-Bus as publication channel
Security and Privacy Considerations
Signalling MUST be performed in an authenticated and private manner.
Implementation Status
- Knot DNS has support for D-Bus notifications (See ) for significant server and zone events with the "dbus-event" configuration parameter since version 3.1.6
- NSD has a feature branch where work is being done on the implementation
IANA Considerations
This document has no IANA actions
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
Normative References
Informative References
D-Bus Specification
Red Hat, Inc.
CodeFactory AB
Red Hat, Inc.
Imendio AB
Collabora Ltd.
Knot DNS - Version 3.1.6
CZ.NIC
NSD feature/oops branch
NLnet Labs
Implementation Status
Note to the RFC Editor: please remove this entire appendix before publication.
Knot currently uses for this.
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