7 Internet Draft Mark Bakke
8 <draft-ietf-ips-iscsi-string-prep-04.txt> Cisco
10 Expires September 2003
15 String Profile for iSCSI Names
21 This document is an Internet-Draft and is in full conformance with
22 all provisions of Section 10 of RFC2026.
24 Internet-Drafts are working documents of the Internet Engineering
25 Task Force (IETF), its areas, and its working groups. Note that
26 other groups may also distribute working documents as Internet-
29 Internet-Drafts are draft documents valid for a maximum of six months
30 and may be updated, replaced, or obsoleted by other documents at any
31 time. It is inappropriate to use Internet- Drafts as reference
32 material or to cite them other than as "work in progress."
34 The list of current Internet-Drafts can be accessed at
35 http://www.ietf.org/ietf/1id-abstracts.txt
37 The list of Internet-Draft Shadow Directories can be accessed at
38 http://www.ietf.org/shadow.html.
42 Copyright (C) The Internet Society (2001). All Rights Reserved.
46 The iSCSI protocol provides a way for hosts to access SCSI devices
47 over an IP network. The iSCSI end-points, called initiators and
48 targets, each have a globally-unique name that must be transcribable,
49 as well as easily compared.
51 This document describes how to prepare internationalized iSCSI names
52 to increase the likelihood that name input and comparison work in
53 ways that make sense for typical users throughout the world.
58 Bakke Expires September 2003 [Page 1]
60 Internet Draft String Profile for iSCSI Names March 2003
65 This draft was produced as a result of discussions on iSCSI name
66 formats with Joe Czap, Jim Hafner, Howard Hall, Jack Harwood, John
67 Hufferd, Marjorie Krueger, Lawrence Lamers, Todd Sperry, Joshua
68 Tseng, and Kaladhar Voruganti, as well as discussions on the
69 normalization of names into identifiers with Paul Hoffman and Marc
72 Thanks also to Bob Snively for suggesting the use of the nameprep
73 process for iSCSI name normalization.
75 Most of this draft was copied from the stringprep profile for
76 nameprep [NAMEPREP], written by Paul Hoffman and Marc Blanchet.
81 The iSCSI protocol [iSCSI] provides a way for hosts to access SCSI
82 [SAM2] devices over an IP network. The iSCSI end-points, called
83 initiators and targets, each have a globally-unique name, defined in
86 An iSCSI name is a string of UTF-8 [RFC2044] characters that includes
87 a type designator, a naming authority based on domain names, and a
88 unique part within the naming authority. The unique part may be
89 generated based on anything the naming authority deems useful, and
90 may include user input.
92 These names may need to be transcribed (sent between two
93 administrators via email, voice, paper, etc), so a case- insensitive
94 comparison would be desirable. However, these names must often be
95 compared by initiator and target implementations, most of which are
96 done in simple, embedded software. This makes case-sensitive
97 comparison highly desirable for these implementors.
99 However, a completely case-sensitive implementation would result in
100 identifiers such as "example-name" and "Example-Name" being
101 different, which could lead to confusion as these names are
104 The goal, then, is to generate iSCSI names that can be transcribed
105 and entered by users, and also compared byte-for-byte, with minimal
106 confusion. To attain these goals, iSCSI names are generalized using
107 a normalized character set (converted to lower case or equivalent),
108 with no white space allowed, and very limited punctuation.
110 For those using only ASCII characters (U+0000 to U+007F), the
114 Bakke Expires September 2003 [Page 2]
116 Internet Draft String Profile for iSCSI Names March 2003
119 following characters are allowed:
121 - ASCII dash character ('-' = U+002d)
122 - ASCII dot character ('.' = U+002e)
123 - ASCII colon character (':' = U+003a)
124 - ASCII lower-case characters ('a'..'z' = U+0061..U+007a)
125 - ASCII digit characters ('0'..'9' = U+0030..U+0039)
127 In addition, any upper-case characters input via a user interface
128 should be mapped to their lower-case equivalents.
130 This document specifies the valid character set for iSCSI names,
131 along with the rules for normalizing and generating iSCSI names based
132 on user input or other information that contains international
135 In particular, it defines the following, as required by [RFC3454]:
137 - The intended applicability of the profile: internationalized iSCSI
140 - The character repertoire that is the input and output to
141 stringprep: Unicode 3.1, specified in section 2.
143 - The mappings used: specified in section 3.
145 - The Unicode normalization used: specified in section 4.
147 - The characters that are prohibited as output: specified in section
150 This profile MUST be used with the iSCSI protocol.
155 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
156 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
157 document are to be interpreted as described in [RFC2119].
159 Examples in this document use the notation for code points and names
160 from the Unicode Standard [Unicode3.1] and ISO/IEC 10646 [ISO10646].
161 For example, the letter "a" may be represented as either "U+0061" or
162 "LATIN SMALL LETTER A". In the lists of prohibited characters, the
163 "U+" is left off to make the lists easier to read. The comments for
164 character ranges are shown in square brackets (such as "[SYMBOLS]")
165 and do not come from the standards.
170 Bakke Expires September 2003 [Page 3]
172 Internet Draft String Profile for iSCSI Names March 2003
175 3. Character Repertoire
177 This profile uses Unicode 3.1, as defined in [RFC3454] Appendix A.1.
182 This profile specifies mapping using the following tables from
183 [RFC3454]. The following mapping tables MUST be used when generating
184 iSCSI names from Unicode characters.
192 Unicode normalization form KC MUST be used with this profile, as
193 described in [RFC3454].
198 This profile specifies prohibiting using the following tables from
199 [stringprep]. Characters appearing within these tables MUST NOT be
200 used within an iSCSI name.
212 Important note: this profile MUST be used with the iSCSI protocol.
213 The iSCSI protocol has additional naming rules that are checked
214 outside of this profile.
216 In addition, this profile adds the following prohibitions. The full
217 set of prohibited characters are those from the tables above plus
218 those listed individually below.
226 Bakke Expires September 2003 [Page 4]
228 Internet Draft String Profile for iSCSI Names March 2003
231 6.1. Inappropriate Characters from Common Input Mechanisms
233 u+3002 is used as if it were u+002e in many domain name input
234 mechanisms used by applications, particularly in Asia. The character
235 u+3002 MUST NOT be used in an iSCSI name.
237 3002; ideographic full stop
240 6.2. Currently-prohibited ASCII characters
242 Some of the ASCII characters that are currently prohibited in iSCSI
243 names by [NDT] are also used in protocol elements such as URIs. Some
244 examples are described in [RFC2396] and [RFC2732]. Note that there
245 are many other RFCs that define additional URI schemes.
247 The other characters in the range U+0000 to U+007F that are not
248 currently allowed are prohibited in iSCSI names to reserve them for
249 future use in protocol elements. Note that the dash (U+002D), dot
250 (U+002E), and colon (U+003A) are not prohibited.
252 The following characters MUST NOT be used in iSCSI names:
254 0000-002C; [ASCII CONTROL CHARACTERS and SPACE through ,]
256 003B-0040; [ASCII ; through @]
257 005B-0060; [ASCII [ through `]
258 007B-007F; [ASCII { through DEL]
261 7. Unassigned Code Points in Internationalized Domain Names
263 If the processing in [iSCSI] specifies that a list of unassigned code
264 points be used, the system uses table A.1 from [RFC3454] as its list
265 of unassigned code points.
268 8. Security Considerations
270 ISO/IEC 10646 has many characters that look similar. In many cases,
271 users of security protocols might do visual matching, such as when
272 comparing the names of trusted third parties. This profile does
273 nothing to map similar-looking characters together.
275 iSCSI names may be used by an initiator to verify that a target it
276 has discovered is the correct one, and by a target to verify that an
277 initiator is to be allowed access. If these names are interpreted
278 and compared differently by different iSCSI implementations, an
282 Bakke Expires September 2003 [Page 5]
284 Internet Draft String Profile for iSCSI Names March 2003
287 initiator could gain access to the wrong target, or could be denied
288 access to a legitimate target.
291 9. IANA Considerations
293 This is a profile of stringprep. When it has been reviewed and
294 approved by the IESG, it should be registered in the IANA "Stringprep
295 Profiles" registry. This process is described in the IANA
296 Considerations section of [RFC3454].
301 This document describes a stringprep profile to be used with programs
302 generating names for iSCSI initiators and targets.
305 11. Normative References
308 [RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
309 Requirement Levels", RFC 2119, March 1997.
311 [RFC3454] Paul Hoffman and Marc Blanchet, "Preparation of
312 Internationalized Strings ("stringprep")", RFC 3454,
315 [iSCSI] J. Satran, et. al. "iSCSI", Work In Progress, draft-ietf-
316 ips-iscsi-20.txt, January 2003.
319 12. Informative References
322 [NDT] K. Voruganti, et. al. "iSCSI Naming and Discovery", Work in
323 Progress, draft-ietf-ips-iscsi-name-disc-09, March 2003.
325 [NAMEPREP] Paul Hoffman and Marc Blanchet. Nameprep: A Stringprep
326 Profile for Internationalized Domain Names. Work in
327 Progress, draft-ietf-idn-nameprep-11, June 2002.
329 [SAM2] ANSI T10. "SCSI Architectural Model 2", March 2000.
331 [RFC2044] F. Yergeau, "UTF-8, a transformation format of Unicode and
332 ISO 10646", RFC 2044, October 1996.
338 Bakke Expires September 2003 [Page 6]
340 Internet Draft String Profile for iSCSI Names March 2003
343 [RFC2396] T. Berners-Lee, R. Fielding, L. Masinter, "Uniform Resource
344 Identifiers", RFC 2396, August 1998.
346 [RFC2732] R. Hindon, B. Carpenter, L Masinter, "Format for Literal
347 IPv6 Addresses in URLs", RFC 2732, December 1999.
350 The Unicode Standard, Version 3.1.0: The Unicode Consortium.
351 The Unicode Standard, Version 3.0. Reading, MA, Addison-
352 Wesley Developers Press, 2000. ISBN 0-201-61633-5, as
353 amended by: Unicode Standard Annex #27: Unicode 3.1
354 <http://www.unicode.org/unicode/reports/tr27/tr27-4.html>.
356 [ISO10646] ISO/IEC 10646-1:2000. International Standard -- Information
357 technology -- Universal Multiple-Octet Coded Character Set
358 (UCS) -- Part 1: Architecture and Basic Multilingual Plane.
361 13. Author Contact Information
369 Voice: +1 763-398-1000
370 E-Mail: mbakke@cisco.com
373 14. Full Copyright Notice
375 Copyright (C) The Internet Society (2001). All Rights Reserved.
377 This document and translations of it may be copied and furnished to
378 others, and derivative works that comment on or otherwise explain it
379 or assist in its implementation may be prepared, copied, published
380 and distributed, in whole or in part, without restriction of any
381 kind, provided that the above copyright notice and this paragraph are
382 included on all such copies and derivative works. However, this
383 document itself may not be modified in any way, such as by removing
384 the copyright notice or references to the Internet Society or other
385 Internet organizations, except as needed for the purpose of
386 developing Internet standards in which case the procedures for
387 copyrights defined in the Internet Standards process must be
388 followed, or as required to translate it into languages other than
394 Bakke Expires September 2003 [Page 7]
396 Internet Draft String Profile for iSCSI Names March 2003
399 The limited permissions granted above are perpetual and will not be
400 revoked by the Internet Society or its successors or assigns.
402 This document and the information contained herein is provided on an
403 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
404 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
405 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
406 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
407 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
411 Funding for the RFC Editor function is currently provided by the
450 Bakke Expires September 2003 [Page 8]