mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-31 14:35:26 +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