mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-04 00:25:29 +00:00
new draft
This commit is contained in:
396
doc/draft/draft-janardhan-dnsext-aging-00.txt
Normal file
396
doc/draft/draft-janardhan-dnsext-aging-00.txt
Normal file
@@ -0,0 +1,396 @@
|
|||||||
|
Internet Engineering Task Force Kamal Janardhan
|
||||||
|
Internet-Draft Levon Esibov
|
||||||
|
November 13, 2001 Expires: May 13 2002
|
||||||
|
|
||||||
|
DNS Stale Resource Records Removal Mechanism
|
||||||
|
<draft-janardhan-dnsext-aging-00.txt>
|
||||||
|
|
||||||
|
Status of this Memo
|
||||||
|
|
||||||
|
This document is an Internet-Draft and is in full conformance
|
||||||
|
with all provisions of Section 10 of RFC2026.
|
||||||
|
|
||||||
|
Internet-Drafts are working documents of the Internet Engineering
|
||||||
|
Task Force (IETF), its areas, and its working groups. Note that
|
||||||
|
other groups may also distribute working documents as
|
||||||
|
Internet-Drafts.
|
||||||
|
|
||||||
|
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."
|
||||||
|
|
||||||
|
The list of current Internet-Drafts can be accessed at
|
||||||
|
http://www.ietf.org/ietf/1id-abstracts.txt
|
||||||
|
|
||||||
|
The list of Internet-Draft Shadow Directories can be accessed at
|
||||||
|
http://www.ietf.org/shadow.html.
|
||||||
|
|
||||||
|
|
||||||
|
Copyright Notice
|
||||||
|
|
||||||
|
Copyright (C) The Internet Society (2001). All Rights Reserved.
|
||||||
|
|
||||||
|
|
||||||
|
Abstract
|
||||||
|
|
||||||
|
The Dynamic DNS Update Protocol assumes that the devices/applications
|
||||||
|
performing dynamic registration of the DNS records will delete the
|
||||||
|
records from the DNS database when the records become invalid. Initial
|
||||||
|
deployment of the devices supporting the Dynamic DNS Update protocol
|
||||||
|
indicated that there are multiple legitimate scenarios when records
|
||||||
|
dynamically registered in DNS are not removed from the database by the
|
||||||
|
devices that originally registered them. This can result in a
|
||||||
|
substantial number of stale records. This document describes a
|
||||||
|
mechanism to clean up these stale records.
|
||||||
|
|
||||||
|
|
||||||
|
1. Introduction
|
||||||
|
|
||||||
|
The Dynamic DNS Update Protocol assumes that the entities performing
|
||||||
|
dynamic registration of the DNS records will delete the records from
|
||||||
|
the DNS database when the records become invalid. Initial deployment of
|
||||||
|
the devices supporting the Dynamic DNS update protocol indicated that
|
||||||
|
there are multiple legitimate scenarios when records dynamically
|
||||||
|
registered in DNS, are not removed from the database by the devices
|
||||||
|
that originally registered them. Such scenarios are more likely to
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Esibov, Janardhan [Page 1]
|
||||||
|
|
||||||
|
|
||||||
|
INTERNET-DRAFT Stale Records Removal November 2001
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
occur in a network that has mobile devices. For example if a device is
|
||||||
|
unexpectedly unplugged from the network (and is never connected back
|
||||||
|
into the network) after it registered its DNS resource record in a DNS
|
||||||
|
database, its record will remain in the DNS database infinitely until
|
||||||
|
administrator manually deletes the record. This can result in a
|
||||||
|
substantial number of stale records.
|
||||||
|
Presence of these stale resource records results in use of the
|
||||||
|
information that is not current when a DNS server responds to
|
||||||
|
queries and causes space consumption in the database. It also may
|
||||||
|
prevent other devices from registering new DNS records with the
|
||||||
|
same owner-name. This document describes a mechanism to clean up
|
||||||
|
these stale resource records.
|
||||||
|
|
||||||
|
The goal of the protocol described in this document is to enable
|
||||||
|
removal of the stale DNS records from the DNS database without
|
||||||
|
modifications to the DNS wire format and without modification to the
|
||||||
|
meaning of the currently used fields in the DNS wire format.
|
||||||
|
|
||||||
|
It is not a goal of this protocol to ensure the immediate removal of
|
||||||
|
stale records. The goal is to ensure that stale records are eventually
|
||||||
|
removed without the administrator's involvement.
|
||||||
|
|
||||||
|
|
||||||
|
2. Aging and removal of stale records protocol
|
||||||
|
|
||||||
|
2.1 Client requirements of this protocol
|
||||||
|
|
||||||
|
Each client performing dynamic DNS registration/update of a resource
|
||||||
|
record MUST periodically repeat the dynamic update requests for each
|
||||||
|
record it dynamically registered/updated, even when record itself is
|
||||||
|
not modified.
|
||||||
|
|
||||||
|
2.2 Server requirements of this protocol
|
||||||
|
Every DNS server hosting a primary DNS zone MUST maintain a timestamp
|
||||||
|
for each record in such zone. The timestamp contains the value
|
||||||
|
corresponding to a moment of time when the resource record was last
|
||||||
|
updated. Every time a server processes a Dynamic Update request for a
|
||||||
|
record or a Dynamic Update Request containing a prerequisite section
|
||||||
|
that requires existence of that resource record, the server MUST
|
||||||
|
update the timestamp of the record that is supposed to be removed by
|
||||||
|
this mechanism. Thus, the server MUST update the timestamp of a
|
||||||
|
resource record even when the resource record specified in the dynamic
|
||||||
|
update request is identical to the record stored by the
|
||||||
|
DNS server. An exception to this rule is allowed to suppress an
|
||||||
|
unnecessarily large number of consecutive dynamic updates for the same
|
||||||
|
record, that could be caused by poorly written applications or by attackers
|
||||||
|
initiating Denial of Service attacks. For this purpose
|
||||||
|
DNS servers MAY be configured to not update a record<72>s timestamp for
|
||||||
|
a short period of time after previous update to the timestamp. We refer
|
||||||
|
to this time period as a NoRefresh Interval.
|
||||||
|
|
||||||
|
Notice that some records in a zone may not be subjected to cleanup
|
||||||
|
procedure described below. Such records, for example, may include those
|
||||||
|
manually created by an administrator. Such records MUST
|
||||||
|
be properly marked as different. A way to mark this difference could
|
||||||
|
|
||||||
|
|
||||||
|
Esibov, Janardhan [Page 2]
|
||||||
|
|
||||||
|
|
||||||
|
INTERNET-DRAFT Stale Records Removal November 2001
|
||||||
|
|
||||||
|
|
||||||
|
be to use the timestamp field by assigning it some special value.
|
||||||
|
|
||||||
|
Update of a timestamp, but not any other field of a record, MUST NOT
|
||||||
|
cause SOA serial number modification. The timestamp is not propagated
|
||||||
|
from the primary to secondary DNS servers during zone transfers. The
|
||||||
|
advantage of this behavior is that it doesn<73>t require any changes to
|
||||||
|
the wire format of the records in the zone transfer and there is no
|
||||||
|
increase in network traffic caused by frequent updates to the
|
||||||
|
timestamp on the primary server.
|
||||||
|
The disadvantage of this behavior is that if the primary server
|
||||||
|
becomes unavailable, and secondary server for the zone is configured as
|
||||||
|
a new primary, then it will not be able to perform
|
||||||
|
removal of the stale records unless it loads the zone data from the file
|
||||||
|
imported from the previously primary DNS server.
|
||||||
|
|
||||||
|
Each DNS server performing removal of the stale records MUST be
|
||||||
|
configured with a time interval called Refresh Interval. Any resource
|
||||||
|
record that is configured to remain in the database
|
||||||
|
until the administrator removes it, i.e. a record that is configured
|
||||||
|
to be removed by the clean-up operation, is declared to be stale
|
||||||
|
when its timestamp has not been updated for a period of time
|
||||||
|
exceeding Refresh Interval. The DNS server MUST determine whether a
|
||||||
|
resource record is stale by comparing a value of its timestamp to
|
||||||
|
the result of subtraction of the Refresh Interval from the current
|
||||||
|
time. If the timestamp is less than the result of subtraction of
|
||||||
|
the Refresh Interval from the current time, then the record is stale.
|
||||||
|
Each primary DNS server MUST periodically review the DNS database to
|
||||||
|
find the stale records and remove them from the database.
|
||||||
|
|
||||||
|
Notice that if a DNS server is configured to not update a record<72>s
|
||||||
|
timestamp for a short period of time after the timestamp was updated
|
||||||
|
last time, as mentioned above, then DNS server MUST determine whether
|
||||||
|
a resource record is stale by comparing a value of its timestamp to
|
||||||
|
the result of subtraction of the sum of the Refresh and NoRefresh
|
||||||
|
Intervals from the current time. If the timestamp is less than the
|
||||||
|
result of subtraction of the Refresh and NoRefresh Intervals
|
||||||
|
from the current time, then the record is stale. In the rest of the
|
||||||
|
examples used in this document, for simplicity, it is assumed that
|
||||||
|
the DNS server is not configured with NoRefresh Interval.
|
||||||
|
|
||||||
|
To prevent deletion of the valid records, the Refresh Interval
|
||||||
|
specified for any primary DNS zone MUST be longer than longest interval
|
||||||
|
between two consecutive Dynamic Update requests for the
|
||||||
|
same resource record sent by a device. For example, if a DNS
|
||||||
|
client performs periodic registration of a DNS record as often or
|
||||||
|
less than once a week, then the Refresh Interval of a zone
|
||||||
|
hosting that record MUST be longer than one week. It is a DNS server
|
||||||
|
administrator<EFBFBD>s responsibility to set the appropriate Refresh Interval.
|
||||||
|
|
||||||
|
There are some scenrios when a primary DNS server may not always
|
||||||
|
be able to update the timestamps at the clients request for e.g.
|
||||||
|
the server is temporarily offline. For this reason, a DNS server
|
||||||
|
MUST NOT perform removal of the stale records for the length
|
||||||
|
of the Refresh Interval after the server has retined to online
|
||||||
|
status. This ensures a period of time when the server is
|
||||||
|
available for records' timestamps to be refreshed to prevent
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Esibov, Janardhan [Page 3]
|
||||||
|
|
||||||
|
|
||||||
|
INTERNET-DRAFT Stale Records Removal November 2001
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
records that could not be refreshed from being incorrectly removed.
|
||||||
|
|
||||||
|
|
||||||
|
3. Example Section
|
||||||
|
The following scenario illustrates the stale records removal protocol.
|
||||||
|
Two clients, A and B, are configured to perform Dynamic Update of the
|
||||||
|
DNS host resource records for the names a.example.com and b.example.com
|
||||||
|
respectively. These clients are configured to repeat dynamic updates
|
||||||
|
of the resource records every 24 hours. DNS server hosting a primary
|
||||||
|
copy of a zone example.com, which is authoritative for the names
|
||||||
|
a.example.com and b.example.com, is configured with Refresh Interval set
|
||||||
|
to 72 hours (3 days). The server is also configured to perform removal
|
||||||
|
of the stale DNS resource records every 168 hours (1 week) starting
|
||||||
|
at 23:00 on 11/1/2001.
|
||||||
|
|
||||||
|
On 11/5/2001 at 17:00 client A registers a host resource record with
|
||||||
|
name a.example.com. The DNS server accepts Dynamic Update of the
|
||||||
|
record. The DNS server associates a timestamp with this record which
|
||||||
|
contains the value 17:00 on 11/5/2001. This client will repeat
|
||||||
|
registration on a daily basis and the record<72>s timestamp will be
|
||||||
|
updated to 17:00 on 11/6/2001, 17:00 on 11/7/2001, 17:00
|
||||||
|
on 11/8/2001 and so on and so forth.
|
||||||
|
|
||||||
|
On 11/8/2001 at 11:00 client B registers a host resource record
|
||||||
|
with name b.example.com. The DNS server accepts registration of the
|
||||||
|
record. The DNS server associates a timestamp with this record which
|
||||||
|
contains the value <20>11:00 on 11/7/2001<30>. This client will repeat
|
||||||
|
registration on a daily basis until further notice and the record<72>s
|
||||||
|
timestamp will be updated to 11:00 on 11/9/2001, 11:00 on 11/10/2001,
|
||||||
|
11:00 on 11/11/2001 and so on until otherwise specified.
|
||||||
|
|
||||||
|
On 11/8/2001 at 23:00 the DNS server starts review of the timestamps
|
||||||
|
of the records in its primary DNS zones and deletes the stale
|
||||||
|
records from the zones. Since the Refresh Interval is set to 72
|
||||||
|
hours, any record with a timestamp containing a value less than
|
||||||
|
23:00 on 11/5/2001 is declared stale and is removed from the DNS
|
||||||
|
zone. Since at that moment, the timestamps of the records
|
||||||
|
a.example.com and b.example.com contain 17:00 on 11/8/2001 and
|
||||||
|
11:00 on 11/8/2001 respectively, both of which are greater than 23:00
|
||||||
|
on 11/5/2001, they are not removed from the DNS zone.
|
||||||
|
|
||||||
|
As time goes on, client A continues to send period dynamic
|
||||||
|
update requests for the host resource record for a.example.com on
|
||||||
|
a daily basis. In contrast, client B is unexpectedly disconnected
|
||||||
|
from the network on 11/12/2001 at 18:00. From that time onwards,
|
||||||
|
client B doesn<73>t send dynamic update requests for the record
|
||||||
|
b.example.com to the primary DNS server, and as a result the
|
||||||
|
timestamp value of the b.example.com record is not updated after
|
||||||
|
that moment and contains the last updated value of 11:00 on
|
||||||
|
11/12/2001.
|
||||||
|
|
||||||
|
On 11/15/2001 at 23:00 the DNS server starts review of the
|
||||||
|
timestamps of the records in its primary DNS zones and deletes the
|
||||||
|
stale records. Since the Refresh Interval is set to 72 hours,
|
||||||
|
any record with a timestamp containing value less than 23:00
|
||||||
|
on 11/12/2001 is declared stale and is removed from the DNS zone.
|
||||||
|
|
||||||
|
|
||||||
|
Esibov, Janardhan [Page 4]
|
||||||
|
|
||||||
|
|
||||||
|
INTERNET-DRAFT Stale Records Removal November 2001
|
||||||
|
|
||||||
|
|
||||||
|
At this point the timestamp of the record a.example.com contains the
|
||||||
|
value of 17:00 on 11/15/2001 and therefore the record
|
||||||
|
is preserved in the zone. At the same time, the timestamp of the
|
||||||
|
record b.example.com contains the value of 11:00 on 11/12/2001 and
|
||||||
|
therefore it is declared to be stale and the DNS
|
||||||
|
server removes it from the DNS zone and updates the SOA serial number.
|
||||||
|
Subsequently, the deletion of the record propagates to the secondary
|
||||||
|
DNS servers for this zone.
|
||||||
|
|
||||||
|
4. Implementation recommendations
|
||||||
|
|
||||||
|
It is advisable that in early implementations of this mechanism,
|
||||||
|
the default be that the stale records removal mechanism is disabled.
|
||||||
|
Before enabling this stale record removal mechanism on a server
|
||||||
|
an administrator must ensure that the resource records hosted
|
||||||
|
by the server are periodically refreshed by the clients within
|
||||||
|
a period less than Refresh Interval of the zone to prevent accidental
|
||||||
|
deletion of the resource records.
|
||||||
|
|
||||||
|
|
||||||
|
5. Security Considerations
|
||||||
|
|
||||||
|
Implementation of the stale record removal mechanism does not introduce
|
||||||
|
additional security concerns.
|
||||||
|
|
||||||
|
To suppress possible denial of service attacks which could be organized
|
||||||
|
by sending a continuous flux of dynamic update requests for the existing
|
||||||
|
record, a DNS server may suppress such requests for a short period of
|
||||||
|
time after the last update of the timestamp. This does not, however,
|
||||||
|
worsen a scenario of repeated dynamic update requests for new records,
|
||||||
|
which is possible with the dynamic DNS update protocol.
|
||||||
|
|
||||||
|
If an attacker can prevent dynamic update requests intended to update
|
||||||
|
the timestamp from reaching the destination DNS server, the record may
|
||||||
|
eventually be incorrectly removed from a DNS zone because it is stale.
|
||||||
|
This however, does not worsen similar attacks where the original dynamic
|
||||||
|
update request is prevented from reaching a destination DNS server and
|
||||||
|
creating a new record in a DNS zone which results in the same name
|
||||||
|
resolution problems.
|
||||||
|
|
||||||
|
|
||||||
|
8. Acknowledgements
|
||||||
|
|
||||||
|
The authors of this document would like to thank the following people
|
||||||
|
for their contribution to this specification: Stuart Kwan, James Gilroy,
|
||||||
|
and Eyal Schwartz.
|
||||||
|
|
||||||
|
|
||||||
|
Esibov, Janardhan [Page 5]
|
||||||
|
|
||||||
|
|
||||||
|
INTERNET-DRAFT Stale Records Removal November 2001
|
||||||
|
|
||||||
|
|
||||||
|
7. References
|
||||||
|
|
||||||
|
[RFC2136] D. Eastlake 3rd "Secure Domain Name System Dynamic Update"
|
||||||
|
RFC 2136, April 1997
|
||||||
|
|
||||||
|
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
|
||||||
|
Requirement Levels", BCP 14, RFC 2119, March 1997.
|
||||||
|
|
||||||
|
[RFC1034] Mockapetris, P., "Domain Names - Concepts and Facilities",
|
||||||
|
STD 13, RFC 1034, November 1987.
|
||||||
|
|
||||||
|
[RFC1035] - Domain Names - Implementation and Specifications,
|
||||||
|
P.Mockapetris, November 1987.
|
||||||
|
|
||||||
|
9. Author's Addresses
|
||||||
|
|
||||||
|
Kamal Janardhan
|
||||||
|
Microsoft Corporation
|
||||||
|
One Microsoft Way
|
||||||
|
Redmond, WA 98052
|
||||||
|
USA
|
||||||
|
kamaljan@microsoft.com
|
||||||
|
|
||||||
|
Levon Esibov
|
||||||
|
Microsoft Corporation
|
||||||
|
One Microsoft Way
|
||||||
|
Redmond, WA 98052
|
||||||
|
USA
|
||||||
|
levone@microsoft.com
|
||||||
|
|
||||||
|
10. Intellectual Property Statement
|
||||||
|
|
||||||
|
The IETF takes no position regarding the validity or scope of any
|
||||||
|
intellectual property or other rights that might be claimed to pertain
|
||||||
|
to the implementation or use of the technology described in this
|
||||||
|
document or the extent to which any license under such rights might or
|
||||||
|
might not be available; neither does it represent that it has made any
|
||||||
|
effort to identify any such rights. Information on the IETF's
|
||||||
|
procedures with respect to rights in standards-track and standards-
|
||||||
|
related documentation can be found in BCP-11. Copies of claims of
|
||||||
|
rights made available for publication and any assurances of licenses to
|
||||||
|
be made available, or the result of an attempt made to obtain a general
|
||||||
|
license or permission for the use of such proprietary rights by
|
||||||
|
implementors or users of this specification can be obtained from the
|
||||||
|
IETF Secretariat.
|
||||||
|
|
||||||
|
The IETF invites any interested party to bring to its attention any
|
||||||
|
copyrights, patents or patent applications, or other proprietary rights
|
||||||
|
which may cover technology that may be required to practice this
|
||||||
|
standard. Please address the information to the IETF Executive
|
||||||
|
Director.
|
||||||
|
|
||||||
|
|
||||||
|
11. Full Copyright Statement
|
||||||
|
Copyright (C) The Internet Society (2001). All Rights Reserved.
|
||||||
|
This document and translations of it may be copied and furnished to
|
||||||
|
others, and derivative works that comment on or otherwise explain it or
|
||||||
|
assist in its implementation may be prepared, copied, published and
|
||||||
|
distributed, in whole or in part, without restriction of any kind,
|
||||||
|
provided that the above copyright notice and this paragraph are included
|
||||||
|
on all such copies and derivative works. However, this document itself
|
||||||
|
may not be modified in any way, such as by removing the copyright notice
|
||||||
|
or references to the Internet Society or other Internet organizations,
|
||||||
|
except as needed for the purpose of developing Internet standards in
|
||||||
|
which case the procedures for copyrights defined in the Internet
|
||||||
|
Standards process must be followed, or as required to translate it into
|
||||||
|
languages other than English. The limited permissions granted above are
|
||||||
|
perpetual and will not be revoked by the Internet Society or its
|
||||||
|
|
||||||
|
|
||||||
|
Esibov, Janardhan [Page 6]
|
||||||
|
|
||||||
|
|
||||||
|
INTERNET-DRAFT Stale Records Removal November 2001
|
||||||
|
|
||||||
|
|
||||||
|
successors or assigns. This document and the information contained
|
||||||
|
herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE
|
||||||
|
INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
|
||||||
|
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."
|
Reference in New Issue
Block a user