620 lines
24 KiB
Plaintext
620 lines
24 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
Internet Engineering Task Force (IETF) P. Wouters
|
||
Request for Comments: 7828 Red Hat
|
||
Category: Standards Track J. Abley
|
||
ISSN: 2070-1721 Dyn, Inc.
|
||
S. Dickinson
|
||
Sinodun
|
||
R. Bellis
|
||
ISC
|
||
April 2016
|
||
|
||
|
||
The edns-tcp-keepalive EDNS0 Option
|
||
|
||
Abstract
|
||
|
||
DNS messages between clients and servers may be received over either
|
||
UDP or TCP. UDP transport involves keeping less state on a busy
|
||
server, but can cause truncation and retries over TCP. Additionally,
|
||
UDP can be exploited for reflection attacks. Using TCP would reduce
|
||
retransmits and amplification. However, clients commonly use TCP
|
||
only for retries and servers typically use idle timeouts on the order
|
||
of seconds.
|
||
|
||
This document defines an EDNS0 option ("edns-tcp-keepalive") that
|
||
allows DNS servers to signal a variable idle timeout. This
|
||
signalling encourages the use of long-lived TCP connections by
|
||
allowing the state associated with TCP transport to be managed
|
||
effectively with minimal impact on the DNS transaction time.
|
||
|
||
Status of This Memo
|
||
|
||
This is an Internet Standards Track document.
|
||
|
||
This document is a product of the Internet Engineering Task Force
|
||
(IETF). It represents the consensus of the IETF community. It has
|
||
received public review and has been approved for publication by the
|
||
Internet Engineering Steering Group (IESG). Further information on
|
||
Internet Standards is available in Section 2 of RFC 5741.
|
||
|
||
Information about the current status of this document, any errata,
|
||
and how to provide feedback on it may be obtained at
|
||
http://www.rfc-editor.org/info/rfc7828.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 1]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
Copyright Notice
|
||
|
||
Copyright (c) 2016 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
|
||
(http://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 Simplified BSD License text as described in Section 4.e of
|
||
the Trust Legal Provisions and are provided without warranty as
|
||
described in the Simplified BSD License.
|
||
|
||
Table of Contents
|
||
|
||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||
2. Requirements Notation . . . . . . . . . . . . . . . . . . . . 4
|
||
3. The edns-tcp-keepalive Option . . . . . . . . . . . . . . . . 5
|
||
3.1. Option Format . . . . . . . . . . . . . . . . . . . . . . 5
|
||
3.2. Use by DNS Clients . . . . . . . . . . . . . . . . . . . 5
|
||
3.2.1. Sending Queries . . . . . . . . . . . . . . . . . . . 5
|
||
3.2.2. Receiving Responses . . . . . . . . . . . . . . . . . 6
|
||
3.3. Use by DNS Servers . . . . . . . . . . . . . . . . . . . 6
|
||
3.3.1. Receiving Queries . . . . . . . . . . . . . . . . . . 6
|
||
3.3.2. Sending Responses . . . . . . . . . . . . . . . . . . 6
|
||
3.4. TCP Session Management . . . . . . . . . . . . . . . . . 7
|
||
3.5. Non-clean Paths . . . . . . . . . . . . . . . . . . . . . 8
|
||
3.6. Anycast Considerations . . . . . . . . . . . . . . . . . 8
|
||
4. Intermediary Considerations . . . . . . . . . . . . . . . . . 8
|
||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 9
|
||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
|
||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 9
|
||
7.1. Normative References . . . . . . . . . . . . . . . . . . 9
|
||
7.2. Informative References . . . . . . . . . . . . . . . . . 10
|
||
Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 11
|
||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 11
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 2]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
1. Introduction
|
||
|
||
DNS messages between clients and servers may be received over either
|
||
UDP or TCP [RFC1035]. Historically, DNS clients used APIs that only
|
||
facilitated sending and receiving a single query over either UDP or
|
||
TCP. New APIs and deployment of DNSSEC validating resolvers on hosts
|
||
that in the past were using stub resolving only is increasing the DNS
|
||
client base that prefer using long-lived TCP connections. Long-lived
|
||
TCP connections can result in lower request latency than the case
|
||
where UDP transport is used and truncated responses are received.
|
||
This is because clients that retry over TCP following a truncated UDP
|
||
response typically only use the TCP session for a single (request,
|
||
response) pair, continuing with UDP transport for subsequent queries.
|
||
|
||
The use of TCP transport requires state to be retained on DNS
|
||
servers. If a server is to perform adequately with a significant
|
||
query load received over TCP, it must manage its available resources
|
||
to ensure that all established TCP sessions are well-used, and idle
|
||
connections are closed after an appropriate amount of time.
|
||
|
||
UDP transport is stateless, and hence presents a much lower resource
|
||
burden on a busy DNS server than TCP. An exchange of DNS messages
|
||
over UDP can also be completed in a single round trip between
|
||
communicating hosts, resulting in optimally short transaction times.
|
||
UDP transport is not without its risks, however.
|
||
|
||
A single-datagram exchange over UDP between two hosts can be
|
||
exploited to enable a reflection attack on a third party. Response
|
||
Rate Limiting [RRL] is designed to help mitigate such attacks against
|
||
authoritative-only servers. One feature of RRL is to let some amount
|
||
of responses "slip" through the rate limiter. These are returned
|
||
with the TC (truncation) bit set, which causes legitimate clients to
|
||
resend the same query using TCP transport.
|
||
|
||
[RFC1035] specified a maximum DNS message size over UDP transport of
|
||
512 bytes. Deployment of DNSSEC [RFC4033] and other protocols
|
||
subsequently increased the observed frequency at which responses
|
||
exceed this limit. EDNS0 [RFC6891] allows DNS messages larger than
|
||
512 bytes to be exchanged over UDP, with a corresponding increased
|
||
incidence of fragmentation. Fragmentation is known to be problematic
|
||
in general, and has also been implicated in increasing the risk of
|
||
cache poisoning attacks [fragmentation-considered-poisonous].
|
||
|
||
TCP transport is less susceptible to the risks of fragmentation and
|
||
reflection attacks. However, TCP transport for DNS as currently
|
||
deployed has expensive setup overhead, compared to using UDP (when no
|
||
retry is required).
|
||
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 3]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
The overhead of the three-way TCP handshake for a single DNS
|
||
transaction is substantial, increasing the transaction time for a
|
||
single (request, response) pair of DNS messages from 1x RTT to 2x
|
||
RTT. There is no such overhead for a session that is already
|
||
established; therefore, the overhead of the initial TCP handshake is
|
||
minimised when the resulting session is used to exchange multiple DNS
|
||
message pairs over a single session. The extra RTT time for session
|
||
setup can be represented as the equation (1 + N)/N, where N
|
||
represents the number of DNS message pairs that utilize the session
|
||
and the result approaches unity as N increases.
|
||
|
||
With increased deployment of DNSSEC and new RR types containing
|
||
application-specific cryptographic material, there is an increase in
|
||
the prevalence of truncated responses received over UDP with retries
|
||
over TCP. The overhead for a DNS transaction over UDP truncated due
|
||
to RRL is 3x RTT higher than the overhead imposed on the same
|
||
transaction initiated over TCP.
|
||
|
||
This document proposes a signalling mechanism between DNS clients and
|
||
servers that encourages the use of long-lived TCP connections by
|
||
allowing the state associated with TCP transport to be managed
|
||
effectively with minimal impact on the DNS transaction time.
|
||
|
||
This mechanism will be of benefit for both stub-resolver and
|
||
resolver-authoritative TCP connections. In the latter case, the
|
||
persistent nature of the TCP connection can provide improved defence
|
||
against attacks including DDoS.
|
||
|
||
The reduced overhead of this extension adds up significantly when
|
||
combined with other EDNS0 extensions, such as [CHAIN-QUERY] and
|
||
[DNS-over-TLS]. For example, the combination of these EDNS0
|
||
extensions make it possible for hosts on high-latency mobile networks
|
||
to natively and efficiently perform DNSSEC validation and encrypt
|
||
queries.
|
||
|
||
2. Requirements Notation
|
||
|
||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
|
||
document are to be interpreted as described in [RFC2119].
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 4]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
3. The edns-tcp-keepalive Option
|
||
|
||
This document specifies a new EDNS0 [RFC6891] option, edns-tcp-
|
||
keepalive, which can be used by DNS clients and servers to signal a
|
||
willingness to keep an idle TCP session open to conduct future DNS
|
||
transactions, with the idle timeout being specified by the server.
|
||
This specification does not distinguish between different types of
|
||
DNS client and server in the use of this option.
|
||
|
||
[RFC7766] defines an 'idle DNS-over-TCP session' from both the client
|
||
and server perspective. The idle timeout described here begins when
|
||
the idle condition is met per that definition and should be reset
|
||
when that condition is lifted, i.e., when a client sends a message or
|
||
when a server receives a message on an idle connection.
|
||
|
||
3.1. Option Format
|
||
|
||
The edns-tcp-keepalive option is encoded as follows:
|
||
|
||
1 2 3
|
||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||
+-------------------------------+-------------------------------+
|
||
! OPTION-CODE ! OPTION-LENGTH !
|
||
+-------------------------------+-------------------------------+
|
||
| TIMEOUT !
|
||
+-------------------------------+
|
||
|
||
where:
|
||
|
||
OPTION-CODE: the EDNS0 option code assigned to edns-tcp-keepalive,
|
||
11
|
||
|
||
OPTION-LENGTH: the value 0 if the TIMEOUT is omitted, the value 2
|
||
if it is present;
|
||
|
||
TIMEOUT: an idle timeout value for the TCP connection, specified in
|
||
units of 100 milliseconds, encoded in network byte order.
|
||
|
||
3.2. Use by DNS Clients
|
||
|
||
3.2.1. Sending Queries
|
||
|
||
DNS clients MUST NOT include the edns-tcp-keepalive option in queries
|
||
sent using UDP transport.
|
||
|
||
DNS clients MAY include the edns-tcp-keepalive option in the first
|
||
query sent to a server using TCP transport to signal their desire to
|
||
keep the connection open when idle.
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 5]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
DNS clients MAY include the edns-tcp-keepalive option in subsequent
|
||
queries sent to a server using TCP transport to signal their
|
||
continued desire to keep the connection open when idle.
|
||
|
||
Clients MUST specify an OPTION-LENGTH of 0 and omit the TIMEOUT
|
||
value.
|
||
|
||
3.2.2. Receiving Responses
|
||
|
||
A DNS client that receives a response using UDP transport that
|
||
includes the edns-tcp-keepalive option MUST ignore the option.
|
||
|
||
A DNS client that receives a response using TCP transport that
|
||
includes the edns-tcp-keepalive option MAY keep the existing TCP
|
||
session open when it is idle. It SHOULD honour the timeout received
|
||
in that response (overriding any previous timeout) and initiate close
|
||
of the connection before the timeout expires.
|
||
|
||
A DNS client that receives a response that includes the edns-tcp-
|
||
keepalive option with a TIMEOUT value of 0 SHOULD send no more
|
||
queries on that connection and initiate closing the connection as
|
||
soon as it has received all outstanding responses.
|
||
|
||
A DNS client that sent a query containing the edns-keepalive-option
|
||
but receives a response that does not contain the edns-keepalive-
|
||
option SHOULD assume the server does not support keepalive and behave
|
||
following the guidance in [RFC7766]. This holds true even if a
|
||
previous edns-keepalive-option exchange occurred on the existing TCP
|
||
connection.
|
||
|
||
3.3. Use by DNS Servers
|
||
|
||
3.3.1. Receiving Queries
|
||
|
||
A DNS server that receives a query using UDP transport that includes
|
||
the edns-tcp-keepalive option MUST ignore the option.
|
||
|
||
A DNS server that receives a query using TCP transport that includes
|
||
the edns-tcp-keepalive option MAY modify the local idle timeout
|
||
associated with that TCP session if resources permit.
|
||
|
||
3.3.2. Sending Responses
|
||
|
||
A DNS server that receives a query sent using TCP transport that
|
||
includes an OPT RR (with or without the edns-tcp-keepalive option)
|
||
MAY include the edns-tcp-keepalive option in the response to signal
|
||
the expected idle timeout on a connection. Servers MUST specify the
|
||
TIMEOUT value that is currently associated with the TCP session. It
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 6]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
is reasonable for this value to change according to local resource
|
||
constraints. The DNS server SHOULD send an edns-tcp-keepalive option
|
||
with a timeout of 0 if it deems its local resources are too low to
|
||
service more TCP keepalive sessions or if it wants clients to close
|
||
currently open connections.
|
||
|
||
3.4. TCP Session Management
|
||
|
||
Both DNS clients and servers are subject to resource constraints that
|
||
will limit the extent to which TCP sessions can persist. Effective
|
||
limits for the number of active sessions that can be maintained on
|
||
individual clients and servers should be established, either as
|
||
configuration options or by interrogation of process limits imposed
|
||
by the operating system. Servers that implement edns-tcp-keepalive
|
||
should also engage in TCP connection management by recycling existing
|
||
connections when appropriate, closing connections gracefully, and
|
||
managing request queues to enable fair use.
|
||
|
||
In the event that there is greater demand for TCP sessions than can
|
||
be accommodated, servers may reduce the TIMEOUT value signalled in
|
||
successive DNS messages to minimise idle time on existing sessions.
|
||
This also allows, for example, clients with other candidate servers
|
||
to query to establish new TCP sessions with different servers in
|
||
expectation that an existing session is likely to be closed or to
|
||
fall back to UDP.
|
||
|
||
Based on TCP session resources, servers may signal a TIMEOUT value of
|
||
0 to request clients to close connections as soon as possible. This
|
||
is useful when server resources become very low or a denial-of-
|
||
service attack is detected and further maximises the shifting of
|
||
TIME_WAIT state to well-behaved clients.
|
||
|
||
However, it should be noted that RFC 6891 states:
|
||
|
||
Lack of presence of an OPT record in a request MUST be taken as an
|
||
indication that the requestor does not implement any part of this
|
||
specification and that the responder MUST NOT include an OPT
|
||
record in its response.
|
||
|
||
Since servers must be faithful to this specification even on a
|
||
persistent TCP connection, it means that (following the initial
|
||
exchange of timeouts) a server may not be presented with the
|
||
opportunity to signal a change in the idle timeout associated with a
|
||
connection if the client does not send any further requests
|
||
containing EDNS0 OPT RRs. This limitation makes persistent
|
||
connection handling via an initial idle timeout signal more
|
||
|
||
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 7]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
attractive than a mechanism that establishes default persistence and
|
||
then uses a connection close signal (in a similar manner to HTTP 1.1
|
||
[RFC7230]).
|
||
|
||
If a client includes the edns-tcp-keepalive option in the first
|
||
query, it SHOULD include an EDNS0 OPT RR periodically in any further
|
||
messages it sends during the TCP session. This will increase the
|
||
chance of the client being notified should the server modify the
|
||
timeout associated with a session. The algorithm for choosing when
|
||
to do this is out of scope of this document and is left up to the
|
||
implementor and/or operator.
|
||
|
||
DNS clients and servers MAY close a TCP session at any time in order
|
||
to manage local resource constraints. The algorithm by which clients
|
||
and servers rank active TCP sessions in order to determine which to
|
||
close is not specified in this document.
|
||
|
||
3.5. Non-clean Paths
|
||
|
||
Many paths between DNS clients and servers suffer from poor hygiene,
|
||
limiting the free flow of DNS messages that include particular EDNS0
|
||
options or messages that exceed a particular size. A fallback
|
||
strategy similar to that described in [RFC6891], Section 6.2.2 SHOULD
|
||
be employed to avoid persistent interference due to non-clean paths.
|
||
|
||
3.6. Anycast Considerations
|
||
|
||
DNS servers of various types are commonly deployed using anycast
|
||
[RFC4786].
|
||
|
||
Changes in network topology between clients and anycast servers may
|
||
cause disruption to TCP sessions making use of edns-tcp-keepalive
|
||
more often than with TCP sessions that omit it, since the TCP
|
||
sessions are expected to be longer lived. It might be possible for
|
||
anycast servers to avoid disruption due to topology changes by making
|
||
use of TCP multipath [RFC6824] to anchor the server side of the TCP
|
||
connection to an unambiguously unicast address.
|
||
|
||
4. Intermediary Considerations
|
||
|
||
It is RECOMMENDED that DNS intermediaries that terminate TCP
|
||
connections implement edns-tcp-keepalive. An intermediary that does
|
||
not implement edns-tcp-keepalive but sits between a client and server
|
||
that both support edns-tcp-keepalive might close idle connections
|
||
unnecessarily.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 8]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
5. Security Considerations
|
||
|
||
The edns-tcp-keepalive option can potentially be abused to request
|
||
large numbers of long-lived sessions in a quick burst. When a DNS
|
||
server detects abusive behaviour, it SHOULD immediately close the TCP
|
||
connection and free the resources used.
|
||
|
||
Servers could choose to monitor client behaviour with respect to the
|
||
edns-tcp-keepalive option to build up profiles of clients that do not
|
||
honour the specified timeout.
|
||
|
||
Readers are advised to familiarise themselves with the security
|
||
considerations outlined in [RFC7766]
|
||
|
||
6. IANA Considerations
|
||
|
||
IANA has assigned an EDNS0 option code for the edns-tcp-keepalive
|
||
option from the "DNS EDNS0 Option Codes (OPT)" registry as follows:
|
||
|
||
+-------+--------------------+----------+-----------+
|
||
| Value | Name | Status | Reference |
|
||
+-------+--------------------+----------+-----------+
|
||
| 11 | edns-tcp-keepalive | Standard | RFC 7828 |
|
||
+-------+--------------------+----------+-----------+
|
||
|
||
7. References
|
||
|
||
7.1. Normative References
|
||
|
||
[RFC1035] Mockapetris, P., "Domain names - implementation and
|
||
specification", STD 13, RFC 1035, DOI 10.17487/RFC1035,
|
||
November 1987, <http://www.rfc-editor.org/info/rfc1035>.
|
||
|
||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||
Requirement Levels", BCP 14, RFC 2119,
|
||
DOI 10.17487/RFC2119, March 1997,
|
||
<http://www.rfc-editor.org/info/rfc2119>.
|
||
|
||
[RFC4033] Arends, R., Austein, R., Larson, M., Massey, D., and S.
|
||
Rose, "DNS Security Introduction and Requirements",
|
||
RFC 4033, DOI 10.17487/RFC4033, March 2005,
|
||
<http://www.rfc-editor.org/info/rfc4033>.
|
||
|
||
[RFC4786] Abley, J. and K. Lindqvist, "Operation of Anycast
|
||
Services", BCP 126, RFC 4786, DOI 10.17487/RFC4786,
|
||
December 2006, <http://www.rfc-editor.org/info/rfc4786>.
|
||
|
||
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 9]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
[RFC6891] Damas, J., Graff, M., and P. Vixie, "Extension Mechanisms
|
||
for DNS (EDNS(0))", STD 75, RFC 6891,
|
||
DOI 10.17487/RFC6891, April 2013,
|
||
<http://www.rfc-editor.org/info/rfc6891>.
|
||
|
||
[RFC7230] Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer
|
||
Protocol (HTTP/1.1): Message Syntax and Routing",
|
||
RFC 7230, DOI 10.17487/RFC7230, June 2014,
|
||
<http://www.rfc-editor.org/info/rfc7230>.
|
||
|
||
[RFC7766] Dickinson, J., Dickinson, S., Bellis, R., Mankin, A., and
|
||
D. Wessels, "DNS Transport over TCP - Implementation
|
||
Requirements", RFC 7766, DOI 10.17487/RFC7766, March 2016,
|
||
<http://www.rfc-editor.org/info/rfc7766>.
|
||
|
||
7.2. Informative References
|
||
|
||
[CHAIN-QUERY]
|
||
Wouters, P., "Chain Query requests in DNS", Work in
|
||
Progress, draft-ietf-dnsop-edns-chain-query-07, February
|
||
2016.
|
||
|
||
[DNS-over-TLS]
|
||
Hu, Z., Zhu, L., Heidemann, J., Mankin, A., Wessels, D.,
|
||
and P. Hoffman, "Specification for DNS over TLS", Work in
|
||
Progress, draft-ietf-dprive-dns-over-tls-09, March 2016.
|
||
|
||
[fragmentation-considered-poisonous]
|
||
Herzberg, A. and H. Shulman, "Fragmentation Considered
|
||
Poisonous", arXiv: 1205.4011, May 2012,
|
||
<http://arxiv.org/abs/1205.4011>.
|
||
|
||
[RFC6824] Ford, A., Raiciu, C., Handley, M., and O. Bonaventure,
|
||
"TCP Extensions for Multipath Operation with Multiple
|
||
Addresses", RFC 6824, DOI 10.17487/RFC6824, January 2013,
|
||
<http://www.rfc-editor.org/info/rfc6824>.
|
||
|
||
[RRL] Vixie, P. and V. Schryver, "DNS Response Rate Limiting
|
||
(DNS RRL)", ISC-TN 2012-1-Draft1, April 2012,
|
||
<https://ftp.isc.org/isc/pubs/tn/isc-tn-2012-1.txt>.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 10]
|
||
|
||
RFC 7828 The edns-tcp-keepalive EDNS0 Option April 2016
|
||
|
||
|
||
Acknowledgements
|
||
|
||
The authors acknowledge the contributions of Jinmei TATUYA and Mark
|
||
Andrews. Thanks to Duane Wessels for detailed review and the many
|
||
others who contributed to the mailing list discussion.
|
||
|
||
Authors' Addresses
|
||
|
||
Paul Wouters
|
||
Red Hat
|
||
|
||
Email: pwouters@redhat.com
|
||
|
||
|
||
Joe Abley
|
||
Dyn, Inc.
|
||
103-186 Albert Street
|
||
London, ON N6A 1M1
|
||
Canada
|
||
|
||
Phone: +1 519 670 9327
|
||
Email: jabley@dyn.com
|
||
|
||
|
||
Sara Dickinson
|
||
Sinodun Internet Technologies
|
||
Magdalen Centre
|
||
Oxford Science Park
|
||
Oxford OX4 4GA
|
||
United Kingdom
|
||
|
||
Email: sara@sinodun.com
|
||
URI: http://sinodun.com
|
||
|
||
|
||
Ray Bellis
|
||
Internet Systems Consortium, Inc
|
||
950 Charter Street
|
||
Redwood City, CA 94063
|
||
United States
|
||
|
||
Phone: +1 650 423 1200
|
||
Email: ray@isc.org
|
||
URI: http://www.isc.org
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
Wouters, et al. Standards Track [Page 11]
|
||
|