\255\255\255\255\255\255\255\255\255\255\255.example.com.
or, in alternate notation:
\255{49}.\255{63}.\255{63}.fo\@\255{60}.example.com.
where {n} represents the number of repetitions of an octet.
Example where DNS name is the owner name of the zone apex, and
consequently wraps to the DNS name with the maximum possible sort
order in the zone:
P(example.com.) =
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255.\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255.\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255.\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255.example.com.
or, in alternate notation:
\255{49}.\255{63}.\255{63}.\255{63}.example.com.
5.2. Examples of Immediate Successors Using Absolute Method
Example of typical case:
S(foo.example.com.) = \000.foo.example.com.
Example where DNS name is one octet short of the maximum DNS name
length:
N = fooooooooooooooooooooooooooooooooooooooooooooooo
.ooooooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooo.ooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooo.ooooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooo.example.com.
or, in alternate notation:
fo{47}.o{63}.o{63}.o{63}.example.com.
S(N) =
fooooooooooooooooooooooooooooooooooooooooooooooo
\000.ooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooooooo.ooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooooooo.ooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooo
oooo.example.com.
or, in alternate notation:
fo{47}\000.o{63}.o{63}.o{63}.example.com.
Example where DNS name is the maximum DNS name length:
N = fooooooooooooooooooooooooooooooooooooooooooooooo
o.oooooooooooooooooooooooooooooooooooooooooooooo
ooooooooooooooooo.oooooooooooooooooooooooooooooo
ooooooooooooooooooooooooooooooooo.oooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooo
o.example.com.
or, in alternate notation:
fo{48}.o{63}.o{63}.o{63}.example.com.
S(N) =
fooooooooooooooooooooooooooooooooooooooooooooooo
p.oooooooooooooooooooooooooooooooooooooooooooooo
ooooooooooooooooo.oooooooooooooooooooooooooooooo
ooooooooooooooooooooooooooooooooo.oooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooo
o.example.com.
or, in alternate notation:
fo{47}p.o{63}.o{63}.o{63}.example.com.
Example where DNS name is the maximum DNS name length and the least
significant (left-most) label has the maximum sort value:
N = \255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255.ooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooooooo.ooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooooooo.ooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooo
oooo.example.com.
or, in alternate notation:
\255{49}.o{63}.o{63}.o{63}.example.com.
S(N) =
oooooooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooop.oooooooooooooooooooooooooooooooo
ooooooooooooooooooooooooooooooo.oooooooooooooooo
ooooooooooooooooooooooooooooooooooooooooooooooo.
example.com.
or, in alternate notation:
o{62}p.o{63}.o{63}.example.com.
Example where DNS name is the maximum DNS name length and the eight
least significant (right-most) octets of the least significant
(left-most) label have the maximum sort value:
N = foooooooooooooooooooooooooooooooooooooooo\255
\255\255\255\255\255\255\255.ooooooooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooo.ooo
oooooooooooooooooooooooooooooooooooooooooooooooo
oooooooooooo.ooooooooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooo.example.com.
or, in alternate notation:
fo{40}\255{8}.o{63}.o{63}.o{63}.example.com.
S(N) =
fooooooooooooooooooooooooooooooooooooooop.oooooo
oooooooooooooooooooooooooooooooooooooooooooooooo
ooooooooo.oooooooooooooooooooooooooooooooooooooo
ooooooooooooooooooooooooo.oooooooooooooooooooooo
ooooooooooooooooooooooooooooooooooooooooo.example.com.
or, in alternate notation:
fo{39}p.o{63}.o{63}.o{63}.example.com.
Example where DNS name is the maximum DNS name length and contains an
octet that must be incremented by skipping values corresponding to
US-ASCII uppercase letters:
N = fooooooooooooooooooooooooooooooooooooooooooooooo
\@.ooooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooooo.ooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooooo.ooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooo
oo.example.com.
or, in alternate notation:
fo{47}\@.o{63}.o{63}.o{63}.example.com.
S(N) =
fooooooooooooooooooooooooooooooooooooooooooooooo
\[.ooooooooooooooooooooooooooooooooooooooooooooo
oooooooooooooooooo.ooooooooooooooooooooooooooooo
oooooooooooooooooooooooooooooooooo.ooooooooooooo
oooooooooooooooooooooooooooooooooooooooooooooooo
oo.example.com.
or, in alternate notation:
fo{47}\[.o{63}.o{63}.o{63}.example.com.
Example where DNS name has the maximum possible sort order in the
zone, and consequently wraps to the owner name of the zone apex:
N = \255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255.\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255.\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255.\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255.example.com.
or, in alternate notation:
\255{49}.\255{63}.\255{63}.\255{63}.example.com.
S(N) = example.com.
5.3. Examples of Predecessors Using Modified Method
Example of a typical case:
P’(foo.example.com.) =
fon\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255.example.com.
or, in alternate notation:
fon\255{60}.example.com.
Example where DNS name contains more labels than DNS names in the
zone:
P’(bar.foo.example.com.) = foo.example.com.
Example where least significant (right-most) octet of least
significant (left-most) label has the minimum sort value:
P’(foo\000.example.com.) = foo.example.com.
Example where least significant (left-most) label has the minimum
sort value:
P’(\000.example.com.) = example.com.
Example where DNS name is the owner name of the zone apex, and
consequently wraps to the DNS name with the maximum possible sort
order in the zone:
P’(example.com.) =
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255.example.com.
or, in alternate notation:
\255{63}.example.com.
5.4. Examples of Successors Using Modified Method
Example of a typical case:
S’(foo.example.com.) = foo\000.example.com.
Example where DNS name contains more labels than DNS names in the
zone:
S’(bar.foo.example.com.) = foo\000.example.com.
Example where least significant (left-most) label has the maximum
sort value, and consequently wraps to the owner name of the zone
apex:
N = \255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255\255\255\255\255\255\255\255\255\255
\255\255\255.example.com.
or, in alternate notation:
\255{63}.example.com.
S’(N) = example.com.
6. Security Considerations
The derivation of some predecessors/successors requires the testing
of more conditions than others. Consequently, the effectiveness of a
denial-of-service attack may be enhanced by sending queries that
require more conditions to be tested. The modified method involves
the testing of fewer conditions than the absolute method and
consequently is somewhat less susceptible to this exposure.
7. Acknowledgements
The authors would like to thank Sam Weiler, Olaf Kolkman, Olafur
Gudmundsson, and Niall O’Reilly for their review and input.
8. References
8.1. Normative References
[RFC1034] Mockapetris, P., "Domain names - concepts and
facilities", STD 13, RFC 1034, November 1987.
[RFC1035] Mockapetris, P., "Domain names - implementation and
specification", STD 13, RFC 1035, November 1987.
[RFC2181] Elz, R. and R. Bush, "Clarifications to the DNS
Specification", RFC 2181, July 1997.
[RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR
for specifying the location of services (DNS SRV)",
RFC 2782, February 2000.
[RFC4034] Arends, R., Austein, R., Larson, M., Massey, D., and
S. Rose, "Resource Records for the DNS Security
Extensions", RFC 4034, March 2005.
8.2. Informative References
[RFC4470] Weiler, S. and J. Ihren, "Minimally Covering NSEC
Records and DNSSEC On-line Signing", RFC 4470, April
2006.
[DNSSEC-TRANS] Arends, R., Koch, P., and J. Schlyter, "Evaluating
DNSSEC Transition Mechanisms", Work in Progress,
February 2005.
Authors’ Addresses
Geoffrey Sisson
Nominet
Sandford Gate
Sandy Lane West
Oxford
OX4 6LB
GB
Phone: +44 1865 332211
EMail: geoff@nominet.org.uk
Ben Laurie
Nominet
17 Perryn Road
London
W3 7LR
GB
Phone: +44 20 8735 0686
EMail: ben@algroup.co.uk
Full Copyright Statement
Copyright (C) The Internet Society (2006).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM 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.
Intellectual Property
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights 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; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat 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 implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Acknowledgement
Funding for the RFC Editor function is provided by the IETF
Administrative Support Activity (IASA).