mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-30 05:57:52 +00:00
updated drafts
This commit is contained in:
parent
cdb41f0dc3
commit
fe9c5d2fc5
File diff suppressed because it is too large
Load Diff
20
doc/draft/draft-ietf-dhc-dhcp-dns-13.txt
Normal file
20
doc/draft/draft-ietf-dhc-dhcp-dns-13.txt
Normal file
@ -0,0 +1,20 @@
|
||||
|
||||
This Internet-Draft has been deleted. Unrevised documents placed in the
|
||||
Internet-Drafts directories have a maximum life of six months. After
|
||||
that time, they are deleted. This Internet-Draft was not published as
|
||||
an RFC.
|
||||
|
||||
Internet-Drafts are not an archival document series, and expired
|
||||
drafts, such as this one, are not available; please do not ask for
|
||||
copies... they are not available. The Secretariat does not have
|
||||
information as to future plans of the authors or working groups WRT the
|
||||
deleted Internet-Draft.
|
||||
|
||||
For more information or a copy of the document, contact the author directly.
|
||||
|
||||
Draft Author(s):
|
||||
|
||||
Y. Rekhter: yakov@cisco.com
|
||||
M. Stapp: mark@american.com
|
||||
|
||||
|
@ -1,336 +0,0 @@
|
||||
Network Working Group A. Gustafsson
|
||||
Internet-Draft T. Lemon
|
||||
Expires: January 12, 2001 Nominum, Inc.
|
||||
M. Stapp
|
||||
Cisco Systems, Inc.
|
||||
July 14, 2000
|
||||
|
||||
|
||||
A DNS RR for encoding DHCP information
|
||||
<draft-ietf-dnsext-dhcid-rr-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.
|
||||
|
||||
This Internet-Draft will expire on January 12, 2001.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The Internet Society (2000). All Rights Reserved.
|
||||
|
||||
Abstract
|
||||
|
||||
A situation can arise where multiple DHCP clients request the same
|
||||
DNS name from their (possibly distinct) DHCP servers. To resolve
|
||||
such conflicts, 'Resolution of DNS Name Conflicts'[7] proposes
|
||||
storing client identifiers in the DNS to unambiguously associate
|
||||
domain names with the DHCP clients "owning" them. This memo defines
|
||||
a distinct RR type for use by DHCP servers, the "DHCID" RR.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Gustafsson, et. al. Expires January 12, 2001 [Page 1]
|
||||
|
||||
Internet-Draft A DNS RR for encoding DHCP information July 2000
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
3. The DHCID RR . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
4. DHCID RDATA format . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
4.1 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 4
|
||||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4
|
||||
References . . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 5
|
||||
Full Copyright Statement . . . . . . . . . . . . . . . . . . . 6
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Gustafsson, et. al. Expires January 12, 2001 [Page 2]
|
||||
|
||||
Internet-Draft A DNS RR for encoding DHCP information July 2000
|
||||
|
||||
|
||||
1. Terminology
|
||||
|
||||
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 RFC 2119[1].
|
||||
|
||||
2. Introduction
|
||||
|
||||
A set of procedures to allow DHCP [RFC2131] clients and servers to
|
||||
automatically update the DNS (RFC1034[2], RFC1035[3]) is proposed in
|
||||
Resolution of DNS Name Conflicts[7].
|
||||
|
||||
A situation can arise where multiple DHCP clients wish to use the
|
||||
same DNS name. To resolve such conflicts, Resolution of DNS Name
|
||||
Conflicts[7] proposes storing client identifiers in the DNS to
|
||||
unambiguously associate domain names with the DHCP clients using
|
||||
them. In the interest of clarity, it would be preferable for this
|
||||
DHCP information to use a distinct RR type.
|
||||
|
||||
This memo defines a distinct RR type for this purpose for use by
|
||||
DHCP clients or servers, the "DHCID" RR.
|
||||
|
||||
3. The DHCID RR
|
||||
|
||||
The DHCP RR is defined with mnemonic DHCID and type code [TBD].
|
||||
|
||||
4. DHCID RDATA format
|
||||
|
||||
The RDATA section of a DHCID RR in transmission contains RDLENGTH
|
||||
bytes of binary data. The format of this data and its
|
||||
interpretation by DHCP servers and clients are described below.
|
||||
|
||||
DNS software should consider the RDATA section to be opaque. In DNS
|
||||
master files, the RDATA is represented as a hexadecimal string with
|
||||
an optional "0x" or "0X" prefix. Periods (".") may be inserted
|
||||
anywhere after the "0x" for readability. This format is identical
|
||||
to that of the NSAP RR (RFC1706[4]). The number of hexadecimal
|
||||
digits MUST be even.
|
||||
|
||||
DHCP clients or servers use the DHCID RR to associate a DHCP
|
||||
client's identity with a DNS name, so that multiple DHCP clients and
|
||||
servers may safely perform dynamic DNS updates to the same zone.
|
||||
From the updater's perspective, the DHCID resource record consists
|
||||
of a 16-bit identifier type, followed by one or more bytes
|
||||
representing the actual identifier. There are two possible forms
|
||||
for a DHCID RR - one that is used when the DHCP server is using the
|
||||
client's link-layer address to identify it, and one that is used
|
||||
when the DHCP server is using some DHCP option that the DHCP client
|
||||
sent to identify it. When the link-layer address is used as the
|
||||
|
||||
|
||||
Gustafsson, et. al. Expires January 12, 2001 [Page 3]
|
||||
|
||||
Internet-Draft A DNS RR for encoding DHCP information July 2000
|
||||
|
||||
|
||||
identifier, the first two bytes of the RRDATA are set to 0. When a
|
||||
DHCP option is used as the identifier, the first two bytes of the
|
||||
RRDATA contain the option number, in network byte order. The two
|
||||
bytes 0xffff are reserved. In both cases, the remainder of the
|
||||
RRDATA is the result of performing a one-way hash across the
|
||||
identifier.
|
||||
|
||||
The details of the method used to generate the data in the RR and
|
||||
the use to which a DHCP client or server may put this association
|
||||
are beyond the scope of this draft, and are discussed in the draft
|
||||
that specifies the DNS update behavior, 'Resolution of DNS Name
|
||||
Conflicts'[7]. This RR MUST NOT be used for any purpose other than
|
||||
that detailed in the DHC document. Althought this RR contains data
|
||||
that is opaque to DNS servers, the data is meaningful to DHCP
|
||||
updaters. Therefore, new data formats may only be defined through
|
||||
actions of the DHC Working Group.
|
||||
|
||||
4.1 Example
|
||||
|
||||
A DHCP server allocating the IPv4 address 10.0.0.1 to a client
|
||||
"client.org.nil" might use the client's link-layer address to
|
||||
identify the client:
|
||||
|
||||
client.org.nil. A 10.0.0.1
|
||||
client.org.nil. DHCID
|
||||
00.00.18.29.11.17.22.0a.ad.c1.88.10.a3.dd.ff.c8.d9.49
|
||||
|
||||
A DHCP server allocating the IPv4 address 10.0.12.99 to a client
|
||||
"chi.org.nil" might use the DHCP client identifier option to
|
||||
identify the client:
|
||||
|
||||
chi.org.nil. A 10.0.12.99
|
||||
chi.org.nil. DHCID 00.61.92.71.22.da.01.88.dd.3a.11.8c.1c.a0.ff.94.9d.81
|
||||
|
||||
5. Security Considerations
|
||||
|
||||
The DHCID record as such does not introduce any new security
|
||||
problems into the DNS. In order to avoid exposing private
|
||||
information about DHCP clients to public scrutiny, a one-way-hash is
|
||||
used to obscure all client information.
|
||||
|
||||
6. IANA Considerations
|
||||
|
||||
The IANA is requested to allocate an RR type number for the DHCP
|
||||
record type.
|
||||
|
||||
References
|
||||
|
||||
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
|
||||
Levels", RFC 2119, March 1997.
|
||||
|
||||
|
||||
Gustafsson, et. al. Expires January 12, 2001 [Page 4]
|
||||
|
||||
Internet-Draft A DNS RR for encoding DHCP information July 2000
|
||||
|
||||
|
||||
[2] Mockapetris, P., "Domain names - Concepts and Facilities", RFC
|
||||
1034, Nov 1987.
|
||||
|
||||
[3] Mockapetris, P., "Domain names - Implementation and
|
||||
Specification", RFC 1035, Nov 1987.
|
||||
|
||||
[4] Manning, B. and R. Colella, "DNS NSAP Resource Records", RFC
|
||||
1706, Oct 1994.
|
||||
|
||||
[5] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, Mar
|
||||
1997.
|
||||
|
||||
[6] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor
|
||||
Extensions", RFC 2132, Mar 1997.
|
||||
|
||||
[7] Stapp, M., "Resolution of DNS Name Conflicts Among DHCP Clients
|
||||
(draft-ietf-dhc-dns-resolution-*)", July 2000.
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Andreas Gustafsson
|
||||
Nominum, Inc.
|
||||
950 Charter St.
|
||||
Redwood City, CA 94063
|
||||
USA
|
||||
|
||||
EMail: gson@nominum.com
|
||||
|
||||
|
||||
Ted Lemon
|
||||
Nominum, Inc.
|
||||
950 Charter St.
|
||||
Redwood City, CA 94063
|
||||
USA
|
||||
|
||||
EMail: mellon@nominum.com
|
||||
|
||||
|
||||
Mark Stapp
|
||||
Cisco Systems, Inc.
|
||||
250 Apollo Dr.
|
||||
Chelmsford, MA 01824
|
||||
USA
|
||||
|
||||
Phone: 978.244.8498
|
||||
EMail: mjs@cisco.com
|
||||
|
||||
|
||||
|
||||
|
||||
Gustafsson, et. al. Expires January 12, 2001 [Page 5]
|
||||
|
||||
Internet-Draft A DNS RR for encoding DHCP information July 2000
|
||||
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The Internet Society (2000). 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 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.
|
||||
|
||||
Acknowledgement
|
||||
|
||||
Funding for the RFC editor function is currently provided by the
|
||||
Internet Society.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Gustafsson, et. al. Expires January 12, 2001 [Page 6]
|
||||
|
||||
|
448
doc/draft/draft-ietf-dnsext-dhcid-rr-01.txt
Normal file
448
doc/draft/draft-ietf-dnsext-dhcid-rr-01.txt
Normal file
@ -0,0 +1,448 @@
|
||||
|
||||
|
||||
Network Working Group M. Stapp
|
||||
Internet-Draft Cisco Systems, Inc.
|
||||
Expires: June 1, 2001 T. Lemon
|
||||
A. Gustafsson
|
||||
Nominum, Inc.
|
||||
December 2000
|
||||
|
||||
|
||||
A DNS RR for Encoding DHCP Information
|
||||
<draft-ietf-dnsext-dhcid-rr-01.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.
|
||||
|
||||
This Internet-Draft will expire on June 1, 2001.
|
||||
|
||||
Copyright Notice
|
||||
|
||||
Copyright (C) The Internet Society (2000). All Rights Reserved.
|
||||
|
||||
Abstract
|
||||
|
||||
A situation can arise where multiple DHCP clients request the same
|
||||
DNS name from their (possibly distinct) DHCP servers. To resolve
|
||||
such conflicts, 'Resolution of DNS Name Conflicts'[5] proposes
|
||||
storing client identifiers in the DNS to unambiguously associate
|
||||
domain names with the DHCP clients "owning" them. This memo defines
|
||||
a distinct RR type for use by DHCP servers, the "DHCID" RR.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Stapp, et. al. Expires June 1, 2001 [Page 1]
|
||||
|
||||
Internet-Draft A DNS RR for Encoding DHCP Information December 2000
|
||||
|
||||
|
||||
Table of Contents
|
||||
|
||||
1. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
3. The DHCID RR . . . . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
4. DHCID RDATA format . . . . . . . . . . . . . . . . . . . . . . 3
|
||||
4.1 Example . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
|
||||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 4
|
||||
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4
|
||||
7. Appendix A: Base 64 Encoding . . . . . . . . . . . . . . . . . 4
|
||||
References . . . . . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 6
|
||||
Full Copyright Statement . . . . . . . . . . . . . . . . . . . 8
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Stapp, et. al. Expires June 1, 2001 [Page 2]
|
||||
|
||||
Internet-Draft A DNS RR for Encoding DHCP Information December 2000
|
||||
|
||||
|
||||
1. Terminology
|
||||
|
||||
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 RFC 2119[1].
|
||||
|
||||
2. Introduction
|
||||
|
||||
A set of procedures to allow DHCP[2] clients and servers to
|
||||
automatically update the DNS (RFC1034[3], RFC1035[4]) is proposed in
|
||||
"Resolution of DNS Name Conflicts"[5].
|
||||
|
||||
A situation can arise where multiple DHCP clients wish to use the
|
||||
same DNS name. To resolve such conflicts, Resolution of DNS Name
|
||||
Conflicts[5] proposes storing client identifiers in the DNS to
|
||||
unambiguously associate domain names with the DHCP clients using
|
||||
them. In the interest of clarity, it would be preferable for this
|
||||
DHCP information to use a distinct RR type.
|
||||
|
||||
This memo defines a distinct RR type for this purpose for use by
|
||||
DHCP clients or servers, the "DHCID" RR.
|
||||
|
||||
3. The DHCID RR
|
||||
|
||||
The DHCID RR is defined with mnemonic DHCID and type code [TBD].
|
||||
|
||||
4. DHCID RDATA format
|
||||
|
||||
The RDATA section of a DHCID RR in transmission contains RDLENGTH
|
||||
bytes of binary data. The format of this data and its
|
||||
interpretation by DHCP servers and clients are described below.
|
||||
|
||||
DNS software should consider the RDATA section to be opaque. In DNS
|
||||
master files, the RDATA is represented in base 64 (see Appendix A)
|
||||
and may be divided up into any number of white space separated
|
||||
substrings, down to single base 64 digits, which are concatenated to
|
||||
obtain the full signature. These substrings can span lines using
|
||||
the standard parenthesis. This format is identical to that used for
|
||||
representing binary data in DNSSEC (RFC2535[6]).
|
||||
|
||||
DHCP clients or servers use the DHCID RR to associate a DHCP
|
||||
client's identity with a DNS name, so that multiple DHCP clients and
|
||||
servers may safely perform dynamic DNS updates to the same zone.
|
||||
From the updater's perspective, the DHCID resource record consists
|
||||
of a 16-bit identifier type, followed by one or more bytes
|
||||
representing the actual identifier. There are two possible forms
|
||||
for a DHCID RR - one that is used when the DHCP server is using the
|
||||
client's link-layer address to identify it, and one that is used
|
||||
when the DHCP server is using some DHCP option that the DHCP client
|
||||
|
||||
|
||||
Stapp, et. al. Expires June 1, 2001 [Page 3]
|
||||
|
||||
Internet-Draft A DNS RR for Encoding DHCP Information December 2000
|
||||
|
||||
|
||||
sent to identify it. When the link-layer address is used as the
|
||||
identifier, the first two bytes of the RRDATA are set to 0. When a
|
||||
DHCP option is used as the identifier, the first two bytes of the
|
||||
RRDATA contain the option number, in network byte order. The two
|
||||
bytes 0xffff are reserved for future extensibility. In both cases,
|
||||
the remainder of the RRDATA is the result of performing a one-way
|
||||
hash across the identifier.
|
||||
|
||||
The details of the method used to generate the data in the RR and
|
||||
the use to which a DHCP client or server may put this association
|
||||
are beyond the scope of this draft, and are discussed in the
|
||||
specification of the DNS update behavior, 'Resolution of DNS Name
|
||||
Conflicts'[5]. This RR MUST NOT be used for any purpose other than
|
||||
that detailed in the DHC document. Althought this RR contains data
|
||||
that is opaque to DNS servers, the data is meaningful to DHCP
|
||||
updaters. Therefore, new data formats may only be defined through
|
||||
actions of the DHC Working Group.
|
||||
|
||||
4.1 Example
|
||||
|
||||
A DHCP server allocating the IPv4 address 10.0.0.1 to a client
|
||||
"client.org.nil" might use the client's link-layer address to
|
||||
identify the client:
|
||||
|
||||
client.org.nil. A 10.0.0.1
|
||||
client.org.nil. DHCID AAAY KREX Igqt wYgQ o93/ yNlJ
|
||||
|
||||
A DHCP server allocating the IPv4 address 10.0.12.99 to a client
|
||||
"chi.org.nil" might use the DHCP client identifier option to
|
||||
identify the client:
|
||||
|
||||
chi.org.nil. A 10.0.12.99
|
||||
chi.org.nil. DHCID AGGS cSLa AYjd OhGM HKD/ lJ2B
|
||||
|
||||
5. Security Considerations
|
||||
|
||||
The DHCID record as such does not introduce any new security
|
||||
problems into the DNS. In order to avoid exposing private
|
||||
information about DHCP clients to public scrutiny, a one-way-hash is
|
||||
used to obscure all client information.
|
||||
|
||||
6. IANA Considerations
|
||||
|
||||
IANA is requested to allocate an RR type number for the DHCID record
|
||||
type.
|
||||
|
||||
7. Appendix A: Base 64 Encoding
|
||||
|
||||
The following encoding technique is taken from RFC 2045[7] by N.
|
||||
|
||||
|
||||
Stapp, et. al. Expires June 1, 2001 [Page 4]
|
||||
|
||||
Internet-Draft A DNS RR for Encoding DHCP Information December 2000
|
||||
|
||||
|
||||
Borenstein and N. Freed. It is reproduced here in an edited form
|
||||
for convenience.
|
||||
|
||||
A 65-character subset of US-ASCII is used, enabling 6 bits to be
|
||||
represented per printable character. (The extra 65th character, "=",
|
||||
is used to signify a special processing function.)
|
||||
|
||||
The encoding process represents 24-bit groups of input bits as
|
||||
output strings of 4 encoded characters. Proceeding from left to
|
||||
right, a 24-bit input group is formed by concatenating 3 8-bit input
|
||||
groups. These 24 bits are then treated as 4 concatenated 6-bit
|
||||
groups, each of which is translated into a single digit in the base
|
||||
64 alphabet.
|
||||
|
||||
Each 6-bit group is used as an index into an array of 64 printable
|
||||
characters. The character referenced by the index is placed in the
|
||||
output string.
|
||||
|
||||
The Base 64 Alphabet
|
||||
|
||||
Value Encoding Value Encoding Value Encoding Value Encoding
|
||||
0 A 17 R 34 i 51 z
|
||||
1 B 18 S 35 j 52 0
|
||||
2 C 19 T 36 k 53 1
|
||||
3 D 20 U 37 l 54 2
|
||||
4 E 21 V 38 m 55 3
|
||||
5 F 22 W 39 n 56 4
|
||||
6 G 23 X 40 o 57 5
|
||||
7 H 24 Y 41 p 58 6
|
||||
8 I 25 Z 42 q 59 7
|
||||
9 J 26 a 43 r 60 8
|
||||
10 K 27 b 44 s 61 9
|
||||
11 L 28 c 45 t 62 +
|
||||
12 M 29 d 46 u 63 /
|
||||
13 N 30 e 47 v
|
||||
14 O 31 f 48 w (pad) =
|
||||
15 P 32 g 49 x
|
||||
16 Q 33 h 50 y
|
||||
|
||||
|
||||
Special processing is performed if fewer than 24 bits are available
|
||||
at the end of the data being encoded. A full encoding quantum is
|
||||
always completed at the end of a quantity. When fewer than 24 input
|
||||
bits are available in an input group, zero bits are added (on the
|
||||
right) to form an integral number of 6-bit groups. Padding at the
|
||||
end of the data is performed using the '=' character. Since all
|
||||
base 64 input is an integral number of octets, only the following
|
||||
cases can arise: (1) the final quantum of encoding input is an
|
||||
integral multiple of 24 bits; here, the final unit of encoded output
|
||||
|
||||
|
||||
Stapp, et. al. Expires June 1, 2001 [Page 5]
|
||||
|
||||
Internet-Draft A DNS RR for Encoding DHCP Information December 2000
|
||||
|
||||
|
||||
will be an integral multiple of 4 characters with no "=" padding,
|
||||
(2) the final quantum of encoding input is exactly 8 bits; here, the
|
||||
final unit of encoded output will be two characters followed by two
|
||||
"=" padding characters, or (3) the final quantum of encoding input
|
||||
is exactly 16 bits; here, the final unit of encoded output will be
|
||||
three characters followed by one "=" padding character.
|
||||
|
||||
References
|
||||
|
||||
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
|
||||
Levels", RFC 2119, March 1997.
|
||||
|
||||
[2] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, Mar
|
||||
1997.
|
||||
|
||||
[3] Mockapetris, P., "Domain names - Concepts and Facilities", RFC
|
||||
1034, Nov 1987.
|
||||
|
||||
[4] Mockapetris, P., "Domain names - Implementation and
|
||||
Specification", RFC 1035, Nov 1987.
|
||||
|
||||
[5] Stapp, M., "Resolution of DNS Name Conflicts Among DHCP Clients
|
||||
(draft-ietf-dhc-dns-resolution-*)", July 2000.
|
||||
|
||||
[6] Eastlake, D., "Domain Name System Security Extensions", RFC
|
||||
2535, March 1999.
|
||||
|
||||
[7] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
|
||||
Extensions (MIME) Part One: Format of Internet Message Bodies",
|
||||
RFC 2045, November 1996.
|
||||
|
||||
|
||||
Authors' Addresses
|
||||
|
||||
Mark Stapp
|
||||
Cisco Systems, Inc.
|
||||
250 Apollo Dr.
|
||||
Chelmsford, MA 01824
|
||||
USA
|
||||
|
||||
Phone: 978.244.8498
|
||||
EMail: mjs@cisco.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Stapp, et. al. Expires June 1, 2001 [Page 6]
|
||||
|
||||
Internet-Draft A DNS RR for Encoding DHCP Information December 2000
|
||||
|
||||
|
||||
Ted Lemon
|
||||
Nominum, Inc.
|
||||
950 Charter St.
|
||||
Redwood City, CA 94063
|
||||
USA
|
||||
|
||||
EMail: mellon@nominum.com
|
||||
|
||||
|
||||
Andreas Gustafsson
|
||||
Nominum, Inc.
|
||||
950 Charter St.
|
||||
Redwood City, CA 94063
|
||||
USA
|
||||
|
||||
EMail: gson@nominum.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Stapp, et. al. Expires June 1, 2001 [Page 7]
|
||||
|
||||
Internet-Draft A DNS RR for Encoding DHCP Information December 2000
|
||||
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The Internet Society (2000). 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 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.
|
||||
|
||||
Acknowledgement
|
||||
|
||||
Funding for the RFC editor function is currently provided by the
|
||||
Internet Society.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Stapp, et. al. Expires June 1, 2001 [Page 8]
|
||||
|
@ -1,695 +0,0 @@
|
||||
|
||||
|
||||
IPng Working Group Richard Draves
|
||||
Internet Draft Microsoft Research
|
||||
Document: draft-ietf-ipngwg-default-addr-select-01.txt July 14, 2000
|
||||
Category: Standards Track
|
||||
|
||||
Default Address Selection for IPv6
|
||||
|
||||
Status of this Memo
|
||||
|
||||
This document is an Internet-Draft and is in full conformance with
|
||||
all provisions of Section 10 of RFC 2026 [1].
|
||||
|
||||
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.
|
||||
|
||||
Abstract
|
||||
|
||||
This document describes two algorithms, for source address selection
|
||||
and for destination address selection. The algorithms specify
|
||||
default behavior for all IPv6 implementations. They do not override
|
||||
choices made by applications or upper-layer protocols, nor do they
|
||||
preclude the development of more advanced mechanisms for address
|
||||
selection. The two algorithms share a common framework, including an
|
||||
optional mechanism for allowing administrators to provide policy
|
||||
that can override the default behavior. In dual stack
|
||||
implementations, the framework allows the destination address
|
||||
selection algorithm to consider both IPv4 and IPv6 addresses -
|
||||
depending on the available source addresses, the algorithm might
|
||||
prefer IPv6 addresses over IPv4 addresses, or vice-versa.
|
||||
|
||||
1. Introduction
|
||||
|
||||
The IPv6 addressing architecture [2] allows multiple unicast
|
||||
addresses to be assigned to interfaces. These addresses may have
|
||||
different reachability scopes (link-local, site-local, or global).
|
||||
These addresses may also be "preferred" or "deprecated" [3]. Privacy
|
||||
considerations have introduced the concepts of "public addresses"
|
||||
and "anonymous addresses" [4]. The mobility architecture introduces
|
||||
"home addresses" and "care-of addresses" [5]. In addition, multi-
|
||||
homing situations will result in more addresses per node. For
|
||||
|
||||
Draves Standards Track - Expires January 2001 1
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
example, a node may have multiple interfaces, some of them tunnels
|
||||
or virtual interfaces, or a site may have multiple ISP attachments
|
||||
with a global prefix per ISP.
|
||||
|
||||
The end result is that IPv6 implementations will very often be faced
|
||||
with multiple possible source and destination addresses when
|
||||
initiating communication. It is desirable to have simple default
|
||||
algorithms, common across all implementations, for selecting source
|
||||
and destination addresses so that developers and administrators can
|
||||
reason about and predict the behavior of their systems.
|
||||
|
||||
Furthermore, dual or hybrid stack implementations, which support
|
||||
both IPv6 and IPv4, will very often need to choose between IPv6 and
|
||||
IPv4 when initiating communication. For example, when DNS name
|
||||
resolution yields both IPv6 and IPv4 addresses and the network
|
||||
protocol stack has available both IPv6 and IPv4 source addresses. In
|
||||
such cases, a simple policy to always prefer IPv6 or always prefer
|
||||
IPv4 can produce poor behavior. As one example, suppose a DNS name
|
||||
resolves to a global IPv6 address and a global IPv4 address. If the
|
||||
node has assigned a global IPv6 address and a 169.254/16 "autonet"
|
||||
IPv4 address, then IPv6 is the best choice for communication. But if
|
||||
the node has assigned only a link-local IPv6 address and a global
|
||||
IPv4 address, then IPv4 is the best choice for communication. The
|
||||
destination address selection algorithm solves this with a unified
|
||||
procedure for choosing among both IPv6 and IPv4 addresses.
|
||||
|
||||
This document specifies source address selection and destination
|
||||
address selection separately, but using a common framework so that
|
||||
together the two algorithms yield useful results. The algorithms
|
||||
attempt to choose source and destination addresses of appropriate
|
||||
scope and configuration status (preferred or deprecated).
|
||||
Furthermore, this document suggests a preferred method, longest
|
||||
matching prefix, for choosing among otherwise equivalent addresses
|
||||
in the absence of better information.
|
||||
|
||||
The framework also has policy hooks to allow administrative override
|
||||
of the default behavior. For example, using these hooks an
|
||||
administrator can specify a preferred source prefix for use with a
|
||||
destination prefix, or prefer destination addresses with one prefix
|
||||
over addresses with another prefix. These hooks give an
|
||||
administrator flexibility in dealing with some multi-homing and
|
||||
transition scenarios, but they are certainly not a panacea.
|
||||
|
||||
The rules specified in this document MUST NOT be construed to
|
||||
override an application or upper-layer's explicit choice of
|
||||
destination or source address.
|
||||
|
||||
1.1. Conventions used in this document
|
||||
|
||||
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 RFC-2119 [6].
|
||||
|
||||
|
||||
Draves Standards Track - Expires May 2000 2
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
2. Framework
|
||||
|
||||
Our framework for address selection derives from the most common
|
||||
implementation architecture, which separates the choice of
|
||||
destination address from the choice of source address. Consequently,
|
||||
the framework specifies two separate algorithms for these tasks. The
|
||||
algorithms are designed to work well together and they share a
|
||||
mechanism for administrative policy override.
|
||||
|
||||
In this implementation architecture, applications use APIs [7] like
|
||||
getaddrinfo() and getipnodebyname() that return a list of addresses
|
||||
to the application. This list might contain both IPv6 and IPv4
|
||||
addresses (sometimes represented as IPv4-mapped addresses). The
|
||||
application then passes a destination address to the network stack
|
||||
with connect() or sendto(). The application might use only the first
|
||||
address in the list, or it might loop over the list of addresses to
|
||||
find a working address. In any case, the network layer is never in a
|
||||
situation where it needs to choose a destination address from
|
||||
several alternatives. The application might also specify a source
|
||||
address with bind(), but often the source address is left
|
||||
unspecified. Therefore the network layer does often choose a source
|
||||
address from several alternatives.
|
||||
|
||||
As a consequence, we intend that implementations of getaddrinfo()
|
||||
and getipnodebyname() will use the destination address selection
|
||||
algorithm specified here to sort the list of IPv6 and IPv4 addresses
|
||||
that they return. Separately, the IPv6 network layer will use the
|
||||
source address selection algorithm when an application or upper-
|
||||
layer has not specified a source address. Application of this
|
||||
framework to source address selection in an IPv4 network layer may
|
||||
be possible but this is not explored further here.
|
||||
|
||||
The algorithms use several criteria in making their decisions. The
|
||||
combined effect is to prefer destination/source address pairs for
|
||||
which the two addresses are of equal scope or type, prefer smaller
|
||||
scopes over larger scopes for the destination address, prefer non-
|
||||
deprecated source addresses of sufficient scope to reach the
|
||||
destination, avoid the use of transitional addresses when native
|
||||
addresses are available, and all else being equal prefer address
|
||||
pairs having the longest possible common prefix. For source address
|
||||
selection, an anonymous address [4] is preferred over its
|
||||
corresponding public address. In mobile situations [5], home
|
||||
addresses are preferred over care-of addresses.
|
||||
|
||||
The framework optionally allows for the possibility of
|
||||
administrative configuration of policy that can override the default
|
||||
behavior of the algorithms. The policy override takes the form of a
|
||||
configurable table that provides precedence values and preferred
|
||||
source prefixes for destination prefixes. If an implementation is
|
||||
not configurable, or if an implementation has not been configured,
|
||||
then the default policy table specified in this document SHOULD be
|
||||
used.
|
||||
|
||||
|
||||
Draves Standards Track - Expires May 2000 3
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
2.1. Scope Comparisons
|
||||
|
||||
Multicast destination addresses have a 4-bit scope field that
|
||||
controls the propagation of the multicast packet. The IPv6
|
||||
addressing architecture defines scope field values for node-local
|
||||
(0x1), link-local (0x2), site-local (0x5), organization-local (0x8),
|
||||
and global (0xE) scopes.
|
||||
|
||||
Use of the source address selection algorithm in the presence of
|
||||
multicast destination addresses requires the comparison of a unicast
|
||||
address scope with a multicast address scope. We map unicast link-
|
||||
local to multicast link-local, unicast site-local to multicast site-
|
||||
local, and unicast global scope to multicast global scope. For
|
||||
example, unicast site-local is equal to multicast site-local, which
|
||||
is smaller than multicast organization-local, which is smaller than
|
||||
unicast global, which is equal to multicast global.
|
||||
|
||||
We write Scope(A) to mean the scope of address A. For example, if A
|
||||
is a link-local unicast address and B is a site-local multicast
|
||||
address, then Scope(A) < Scope(B).
|
||||
|
||||
This mapping implicitly conflates unicast site boundaries and
|
||||
multicast site boundaries.
|
||||
|
||||
2.2. IPv4-Compatible Addresses and Other Format Prefixes
|
||||
|
||||
For the purposes of this document, IPv4-compatible addresses have
|
||||
global scope and "preferred" configuration status.
|
||||
|
||||
Similarly, NSAP addresses, IPX addresses, or addresses with as-yet-
|
||||
undefined format prefixes should be treated as having global scope
|
||||
and "preferred" configuration status. Later standards may supercede
|
||||
this treatment.
|
||||
|
||||
The loopback address should be treated as having link-local scope
|
||||
and "preferred" configuration status.
|
||||
|
||||
2.3. IPv4 Addresses and IPv4-Mapped Addresses
|
||||
|
||||
The destination address selection algorithm operates on both IPv6
|
||||
and IPv4 addresses. For this purpose, IPv4 addresses should be
|
||||
represented as IPv4-mapped addresses. For example, to lookup the
|
||||
precedence or other attributes of an IPv4 address in the policy
|
||||
table, lookup the corresponding IPv4-mapped IPv6 address.
|
||||
|
||||
2.4. Policy Table
|
||||
|
||||
The policy table is a longest-matching-prefix lookup table, much
|
||||
like a routing table. Given an address A, a lookup in the policy
|
||||
table produces three values: a precedence value Precedence(A), a
|
||||
classification or label Label(A), and a second label
|
||||
MatchSrcLabel(A).
|
||||
|
||||
|
||||
Draves Standards Track - Expires May 2000 4
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
The precedence value Precedence(A) is used for sorting destination
|
||||
addresses. If Precedence(A) > Precedence(B), we say that address A
|
||||
has higher precedence than address B, meaning that our algorithm
|
||||
will prefer to sort destination address A before destination address
|
||||
B.
|
||||
|
||||
The labels Label(A) and MatchSrcLabel(A) allow for policies that
|
||||
prefer a particular source address prefix for use with a destination
|
||||
address prefix. The algorithms prefer to use a source address S with
|
||||
a destination address D if Label(S) = MatchSrcLabel(D).
|
||||
|
||||
IPv6 implementations SHOULD support configurable address selection
|
||||
via a mechanism at least as powerful as the policy tables defined
|
||||
here. If an implementation is not configurable or has not been
|
||||
configured, then it SHOULD operate according to the algorithms
|
||||
specified here in conjunction with the following default policy
|
||||
table:
|
||||
|
||||
Prefix Precedence Label MatchSrcLabel
|
||||
::1/128 100 1 1
|
||||
fe80::/10 90 2 2
|
||||
fec0::/10 80 3 3
|
||||
::/0 70 4 4
|
||||
2002::/16 60 5 5
|
||||
::/96 50 6 6
|
||||
::ffff:169.254.0.0/112 30 7 7
|
||||
::ffff:10.0.0.0/104 20 8 8
|
||||
::ffff:172.16.0.0/108 20 9 9
|
||||
::ffff:192.168.0.0/112 20 10 10
|
||||
::ffff:0:0/96 10 11 11
|
||||
|
||||
One effect of the default policy table is to prefer using native
|
||||
source addresses with native destination addresses, 6to4 source
|
||||
addresses with 6to4 destination addresses, and v4-compatible source
|
||||
addresses with v4-compatible destination addresses. Another effect
|
||||
of the default policy table is to prefer communication using IPv6
|
||||
addresses to communication using IPv4 addresses, if matching source
|
||||
addresses are available.
|
||||
|
||||
Policy table entries for scoped address prefixes MAY be qualified
|
||||
with an optional scope-id. If so, a prefix table entry only matches
|
||||
against an address during a lookup if the scope-id also matches the
|
||||
address's scope-id.
|
||||
|
||||
2.5. Common Prefix Length
|
||||
|
||||
We define the common prefix length CommonPrefixLen(A, B) of two
|
||||
addresses A and B as the length of the longest prefix (looking at
|
||||
the most significant, or leftmost, bits) that the two addresses have
|
||||
in common. It ranges from 0 to 128.
|
||||
|
||||
|
||||
|
||||
|
||||
Draves Standards Track - Expires May 2000 5
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
3. Candidate Source Addresses
|
||||
|
||||
The source address selection algorithm uses the concept of a
|
||||
"candidate set" of potential source addresses for a given
|
||||
destination address. We write CandidateSource(A) to denote the
|
||||
candidate set for the address A.
|
||||
|
||||
It is RECOMMENDED that the candidate source addresses be the set of
|
||||
unicast addresses assigned to the interface that will be used to
|
||||
send to the destination. (The "outgoing" interface.) On routers, the
|
||||
candidate set MAY include unicast addresses assigned to any
|
||||
interface that could forward the destination address to the outgoing
|
||||
interface.
|
||||
|
||||
In some cases the destination address may be qualified with a scope-
|
||||
id or other information that will constrain the candidate set.
|
||||
|
||||
For multicast and link-local destination addresses, the set of
|
||||
candidate source addresses MUST only include addresses assigned to
|
||||
interfaces belonging to the same link as the outgoing interface.
|
||||
|
||||
For site-local destination addresses, the set of candidate source
|
||||
addresses MUST only include addresses assigned to interfaces
|
||||
belonging to the same site as the outgoing interface.
|
||||
|
||||
In any case, anycast addresses, multicast addresses, and the
|
||||
unspecified address MUST NOT be included in a candidate set.
|
||||
|
||||
4. Source Address Selection
|
||||
|
||||
The source address selection algorithm chooses a source address for
|
||||
use with a destination address D. It is specified here in terms of
|
||||
the pair-wise comparison of addresses SA and SB. The pair-wise
|
||||
comparison can be used to select an address from the set
|
||||
CandidateSource(D).
|
||||
|
||||
The pair-wise comparison consists of eight rules, which MUST be
|
||||
applied in order. If a rule chooses an address, then the remaining
|
||||
rules are not relevant and MUST be ignored. Subsequent rules act as
|
||||
tie-breakers for earlier rules. If the eight rules fail to choose an
|
||||
address, some unspecified tie-breaker must be used.
|
||||
|
||||
Rule 1: Prefer same address.
|
||||
If SA = D, then choose SA. Similarly, if SB = D, then choose SB.
|
||||
|
||||
Rule 2: Prefer matching label.
|
||||
If Label(SA) = MatchSrcLabel(D) and Label(SB) <> MatchSrcLabel(D),
|
||||
then choose SA. Similarly, if Label(SB) = MatchSrcLabel(D) and
|
||||
Label(SA) <> MatchSrcLabel(D), then choose SB.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Draves Standards Track - Expires May 2000 6
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
Rule 3: Prefer appropriate scope.
|
||||
If Scope(SA) < Scope(SB). If Scope(SA) < Scope(D), then choose SB.
|
||||
Otherwise, if one of the source addresses is "preferred" and one of
|
||||
them is "deprecated", then choose the "preferred" address.
|
||||
Otherwise, choose SA.
|
||||
Similarly, if Scope(SB) < Scope(SA). If Scope(SB) < Scope(D), then
|
||||
choose SA. Otherwise, if one of the source addresses is "preferred"
|
||||
and one of them is "deprecated", then choose the "preferred"
|
||||
address. Otherwise, choose SB.
|
||||
|
||||
Rule 4: Avoid deprecated addresses.
|
||||
The addresses SA and SB have the same scope. If one of the source
|
||||
addresses is "preferred" and one of them is "deprecated", an
|
||||
implementation MUST choose the one that is preferred.
|
||||
|
||||
Rule 5: Prefer home addresses.
|
||||
If SA is a home address and SB is a care-of address, then prefer SA.
|
||||
Similarly, if SB is a home address and SA is a care-of address, then
|
||||
prefer SB.
|
||||
An implementation MAY support a per-connection configuration
|
||||
mechanism (for example, a socket option) to reverse the sense of
|
||||
this preference and prefer care-of addresses over home addresses.
|
||||
|
||||
Rule 6: Prefer outgoing interface.
|
||||
If SA is assigned to the interface that will be used to send to D
|
||||
and SB is assigned to a different interface, then prefer SA.
|
||||
Similarly, if SB is assigned to the interface that will be used to
|
||||
send to D and SA is assigned to a different interface, then prefer
|
||||
SB.
|
||||
|
||||
Rule 7: Prefer anonymous addresses.
|
||||
If SA is an anonymous address and SB is its corresponding public
|
||||
address, then prefer SA. Similarly, if SB is an anonymous address
|
||||
and SA is its corresponding public address, then prefer SB.
|
||||
An implementation MAY support a per-connection configuration
|
||||
mechanism (for example, a socket option) to reverse the sense of
|
||||
this preference and prefer public addresses over anonymous
|
||||
addresses.
|
||||
|
||||
Rule 8: Use longest matching prefix.
|
||||
If CommonPrefixLen(SA, D) > CommonPrefixLen(SB, D), then choose SA.
|
||||
Similarly, if CommonPrefixLen(SB, D) > CommonPrefixLen(SA, D), then
|
||||
choose SB.
|
||||
|
||||
Rule 8 MAY be superceded if the implementation has other means of
|
||||
choosing among source addresses. For example, if the implementation
|
||||
somehow knows which source address will result in the "best"
|
||||
communications performance.
|
||||
|
||||
5. Destination Address Selection
|
||||
|
||||
The destination address selection algorithm takes a list of
|
||||
destination addresses and sorts the addresses to produce a new list.
|
||||
|
||||
Draves Standards Track - Expires May 2000 7
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
It is specified here in terms of the pair-wise comparison of
|
||||
addresses DA and DB, where DA appears before DB in the original
|
||||
list.
|
||||
|
||||
The destination address selection algorithm uses the source address
|
||||
selection algorithm as a subroutine. We write Source(D) to indicate
|
||||
the selected source address for a destination D.
|
||||
|
||||
The pair-wise comparison of destination addresses consists of four
|
||||
rules, which MUST be applied in order. If a rule determines a
|
||||
result, then the remaining rules are not relevant and MUST be
|
||||
ignored. Subsequent rules act as tie-breakers for earlier rules.
|
||||
|
||||
Rule 1: Prefer destinations with a matching source.
|
||||
If Label(Source(DA)) = MatchSrcLabel(DA) and Label(Source(DB)) <>
|
||||
MatchSrcLabel(DB), then sort DA before DB. Similarly, if
|
||||
Label(Source(DB)) = MatchSrcLabel(DB) and Label(Source(DA)) <>
|
||||
MatchSrcLabel(DA), then sort DB before DA.
|
||||
|
||||
Rule 2: Prefer higher precedence.
|
||||
If Precedence(DA) > Precedence(DB), then sort DA before DB.
|
||||
Similarly, if Precedence(DB) > Precedence(DA), then sort DB before
|
||||
DA.
|
||||
|
||||
Rule 3: Use longest matching prefix.
|
||||
Applies only if Label(Source(DA)) = MatchSrcLabel(DA) and
|
||||
Label(Source(DB)) = MatchSrcLabel(DB).
|
||||
If CommonPrefixLen(DA, Source(DA)) > CommonPrefixLen(DB,
|
||||
Source(DB)), then sort DA before DB. Similarly, if
|
||||
CommonPrefixLen(DB, Source(DB)) > CommonPrefixLen(DA, Source(DA)),
|
||||
then sort DB before DA.
|
||||
|
||||
Rule 4: Otherwise, leave the order unchanged.
|
||||
Sort DA before DB.
|
||||
|
||||
The third and fourth rules MAY be superceded if the implementation
|
||||
has other means of sorting destination addresses. For example, if
|
||||
the implementation somehow knows which destination addresses will
|
||||
result in the "best" communications performance.
|
||||
|
||||
6. Interactions with Routing
|
||||
|
||||
All IPv6 nodes, including both hosts and routers, SHOULD conform to
|
||||
this specification.
|
||||
|
||||
This specification of source address selection assumes that routing
|
||||
(more precisely, selecting an outgoing interface on a node with
|
||||
multiple interfaces) is done before source address selection.
|
||||
However, implementations MAY use source address considerations as a
|
||||
tiebreaker when choosing among otherwise equivalent routes.
|
||||
|
||||
For example, suppose a node has interfaces on two different links,
|
||||
with both links having a working default router. Both of the
|
||||
|
||||
Draves Standards Track - Expires May 2000 8
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
interfaces have preferred global addresses. When sending to a global
|
||||
destination address, if there's no routing reason to prefer one
|
||||
interface over the other, then an implementation MAY preferentially
|
||||
choose the outgoing interface that will allow it to use the source
|
||||
address that shares a longer common prefix with the destination.
|
||||
|
||||
7. Implementation Considerations
|
||||
|
||||
The destination address selection algorithm needs information about
|
||||
potential source addresses. One possible implementation strategy is
|
||||
for getipnodebyname() and getaddrinfo() to call down to the IPv6
|
||||
network layer with a list of destination addresses, sort the list in
|
||||
the network layer with full current knowledge of available source
|
||||
addresses, and return the sorted list to getipnodebyname() or
|
||||
getaddrinfo(). This is simple and gives the best results but it
|
||||
introduces the overhead of another system call. One way to reduce
|
||||
this overhead is to cache the sorted address list in the resolver,
|
||||
so that subsequent calls for the same name do not need to resort the
|
||||
list.
|
||||
|
||||
Another implementation strategy is to call down to the network layer
|
||||
to retrieve source address information and then sort the list of
|
||||
addresses directly in the context of getipnodebyname() or
|
||||
getaddrinfo(). To reduce overhead in this approach, the source
|
||||
address information can be cached, amortizing the overhead of
|
||||
retrieving it across multiple calls to getipnodebyname() and
|
||||
getaddrinfo().
|
||||
|
||||
In any case, if the implementation uses cached and possibly stale
|
||||
information in its implementation of destination address selection,
|
||||
or if the ordering of a cached list of destination addresses is
|
||||
possibly stale, then it MUST ensure that the destination address
|
||||
ordering returned to the application is no more than one second out
|
||||
of date. For example, an implementation might make a system call to
|
||||
check if any routing table entries or source address assignments
|
||||
that might affect these algorithms have changed.
|
||||
|
||||
8. Security Considerations
|
||||
|
||||
This document has no direct impact on Internet infrastructure
|
||||
security.
|
||||
|
||||
References
|
||||
|
||||
1 S. Bradner, "The Internet Standards Process -- Revision 3", BCP
|
||||
9, RFC 2026, October 1996.
|
||||
|
||||
2 R. Hinden, S. Deering, "IP Version 6 Addressing Architecture",
|
||||
RFC 2373, July 1998.
|
||||
|
||||
3 S. Thompson, T. Narten, "IPv6 Stateless Address
|
||||
Autoconfiguration", RFC 2462 , December 1998.
|
||||
|
||||
|
||||
Draves Standards Track - Expires May 2000 9
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
|
||||
4 T. Narten, R. Draves, "Privacy Extensions for Stateless Address
|
||||
Autoconfiguration in IPv6", draft-ietf-ipngwg-addrconf-privacy-
|
||||
01.txt, July 2000.
|
||||
|
||||
5 D. Johnson, C. Perkins, "Mobility Support in IPv6", draft-ietf-
|
||||
mobileip-ipv6-12.txt, April 2000.
|
||||
|
||||
6 S. Bradner, "Key words for use in RFCs to Indicate Requirement
|
||||
Levels", BCP 14, RFC 2119, March 1997.
|
||||
|
||||
7 R. Gilligan, S. Thomson, J. Bound, W. Stevens, "Basic Socket
|
||||
Interface Extensions for IPv6", RFC 2553, March 1999.
|
||||
|
||||
Acknowledgments
|
||||
|
||||
The author would like to acknowledge the contributions of the IPng
|
||||
Working Group.
|
||||
|
||||
Author's Address
|
||||
|
||||
Richard Draves
|
||||
Microsoft Research
|
||||
One Microsoft Way
|
||||
Redmond, WA 98052
|
||||
Phone: 1-425-936-2268
|
||||
Email: richdr@microsoft.com
|
||||
|
||||
Revision History
|
||||
|
||||
Changes from draft-ietf-ipngwg-default-addr-select-00
|
||||
|
||||
Changed the candidate set definition so that the strong host model
|
||||
is recommended but not required. Added a rule to source address
|
||||
selection to prefer addresses assigned to the outgoing interface.
|
||||
|
||||
Simplified the destination address selection algorithm, by having it
|
||||
use source address selection as a subroutine.
|
||||
|
||||
Added a rule to source address selection to handle anonymous/public
|
||||
addresses.
|
||||
|
||||
Added a rule to source address selection to handle home/care-of
|
||||
addresses.
|
||||
|
||||
Changed to allow destination address selection to sort both IPv6 and
|
||||
IPv4 addresses. Added entries in the default policy table for IPv4-
|
||||
mapped addresses.
|
||||
|
||||
Changed default precedences, so v4-compatible addresses have lower
|
||||
precedence than 6to4 addresses.
|
||||
|
||||
|
||||
|
||||
Draves Standards Track - Expires May 2000 10
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
Changes from draft-draves-ipngwg-simple-srcaddr-01
|
||||
|
||||
Added framework discussion.
|
||||
|
||||
Added algorithm for destination address ordering.
|
||||
|
||||
Added mechanism to allow the specification of administrative policy
|
||||
that can override the default behavior.
|
||||
|
||||
Added section on routing interactions and TBD section on mobility
|
||||
interactions.
|
||||
|
||||
Changed the candidate set definition for source address selection,
|
||||
so that only addresses assigned to the outgoing interface are
|
||||
allowed.
|
||||
|
||||
Changed the loopback address treatment to link-local scope.
|
||||
|
||||
Changes from draft-draves-ipngwg-simple-srcaddr-00
|
||||
|
||||
Minor wording changes because DHCPv6 also supports "preferred" and
|
||||
"deprecated" addresses.
|
||||
|
||||
Specified treatment of other format prefixes; now they are
|
||||
considered global scope, "preferred" addresses.
|
||||
|
||||
Reiterated that anycast and multicast addresses are not allowed as
|
||||
source addresses.
|
||||
|
||||
Recommended that source addresses be taken from the outgoing
|
||||
interface. Required this for multicast destinations. Added analogous
|
||||
requirements for link-local and site-local destinations.
|
||||
|
||||
Specified treatment of the loopback address.
|
||||
|
||||
Changed the second selection rule so that if both candidate source
|
||||
addresses have scope greater or equal than the destination address
|
||||
and only of them is preferred, the preferred address is chosen.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Draves Standards Track - Expires May 2000 11
|
||||
Default Address Selection for IPv6 July 14, 2000
|
||||
|
||||
|
||||
Full Copyright Statement
|
||||
|
||||
Copyright (C) The Internet Society (1999). 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 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.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Draves Standards Track - Expires May 2000 12
|
1101
doc/draft/draft-ietf-ipngwg-default-addr-select-02.txt
Normal file
1101
doc/draft/draft-ietf-ipngwg-default-addr-select-02.txt
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user