7 Internet Draft Mark Bakke
8 <draft-ietf-ips-iscsi-string-prep-03.txt> Cisco
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 internationlized 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 April 2003 [Page 1]
60 Internet Draft String Profile for iSCSI Names October 2002
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 April 2003 [Page 2]
116 Internet Draft String Profile for iSCSI Names October 2002
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 inport or other information that contains international
135 In particular, it defines the following, as required by [STRINGPREP]:
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 April 2003 [Page 3]
172 Internet Draft String Profile for iSCSI Names October 2002
175 3. Character Repertoire
177 This profile uses Unicode 3.1, as defined in [STRINGPREP] Appendix
183 This profile specifies mapping using the following tables from
184 [STRINGPREP]. The following mapping tables MUST be used when
185 generating iSCSI names from Unicode characters.
193 Unicode normalization form KC MUST be used with this profile, as
194 described in [STRINGPREP].
199 This profile specifies prohibiting using the following tables from
200 [stringprep]. Characters appearing within these tables MUST NOT be
201 used within an iSCSI name.
213 Important note: this profile MUST be used with the iSCSI protocol.
214 The iSCSI protocol has additional naming rules that are checked
215 outside of this profile.
217 In addition, this profile adds the following prohibitions. The full
218 set of prohibited characters are those from the tables above plus
219 those listed individually below.
226 Bakke Expires April 2003 [Page 4]
228 Internet Draft String Profile for iSCSI Names October 2002
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 [URI].
244 The other characters in the range U+0000 to U+007F that are not
245 currently allowed are prohibited in iSCSI names to reserve them for
246 future use in protocol elements. Note that the dash (U+002D), dot
247 (U+002E), and colon (U+003A) are not prohibited.
249 The following characters MUST NOT be used in iSCSI names:
251 0000-002C; [ASCII CONTROL CHARACTERS and SPACE through ,]
253 003B-0040; [ASCII ; through @]
254 005B-0060; [ASCII [ through `]
255 007B-007F; [ASCII { through DEL]
258 7. Unassigned Code Points in Internationalized Domain Names
260 If the processing in [iSCSI] specifies that a list of unassigned code
261 points be used, the system uses table A.1 from [STRINGPREP] as its
262 list of unassigned code points.
265 8. Security Considerations
267 ISO/IEC 10646 has many characters that look similar. In many cases,
268 users of security protocols might do visual matching, such as when
269 comparing the names of trusted third parties. This profile does
270 nothing to map similar-looking characters together.
272 iSCSI names may be used by an initiator to verify that a target it
273 has discovered is the correct one, and by a target to verify that an
274 initiator is to be allowed access. If these names are interpreted
275 and compared differently by different iSCSI implementations, an
276 initiator could gain access to the wrong target, or could be denied
277 access to a legitimate target.
282 Bakke Expires April 2003 [Page 5]
284 Internet Draft String Profile for iSCSI Names October 2002
287 9. IANA Considerations
289 This is a profile of stringprep. When it becomes an RFC, it should be
290 registered in the stringprep profile registry.
295 This document describes a stringprep profile to be used with programs
296 generating names for iSCSI initiators and targets.
299 11. Normative References
302 [RFC2119] Scott Bradner, "Key words for use in RFCs to Indicate
303 Requirement Levels", March 1997, RFC 2119.
306 Paul Hoffman and Marc Blanchet, "Preparation of
307 Internationalized Strings ("stringprep")", draft-hoffman-
308 stringprep-03, May 2002.
310 [ISCSI] J. Satran, et. al. "iSCSI", draft-ietf-ips-iscsi-12.txt,
314 12. Informative References
317 [NDT] K. Voruganti, et. al. "iSCSI Naming and Discovery
318 Requirements", draft-ietf-ips-iscsi-name-disc-05, May 2002.
320 [NAMEPREP] Paul Hoffman and Marc Blanchet. Nameprep: A Stringprep
321 Profile for Internationalized Domain Names. draft-ietf-idn-
322 nameprep-10, May 2002.
324 [SAM2] ANSI T10. "SCSI Architectural Model 2", March 2000.
326 [RFC2044] F. Yergeau, "UTF-8, a transformation format of Unicode and
327 ISO 10646", October 1996, RFC 2044.
330 The Unicode Standard, Version 3.1.0: The Unicode Consortium.
331 The Unicode Standard, Version 3.0. Reading, MA, Addison-
332 Wesley Developers Press, 2000. ISBN 0-201-61633-5, as
333 amended by: Unicode Standard Annex #27: Unicode 3.1
334 <http://www.unicode.org/unicode/reports/tr27/tr27-4.html>.
338 Bakke Expires April 2003 [Page 6]
340 Internet Draft String Profile for iSCSI Names October 2002
343 [ISO10646] ISO/IEC 10646-1:2000. International Standard -- Information
344 technology -- Universal Multiple-Octet Coded Character Set
345 (UCS) -- Part 1: Architecture and Basic Multilingual Plane.
347 [URI] For example: Roy Fielding et al., "Uniform Resource
348 Identifiers: Generic Syntax", August 1998, RFC 2396; Robert
349 Hinden et. al, "IPv6 Literal Addresses in URL's", December
350 1999, RFC 2732. Note that there are many other RFCs that
351 define additional URI schemes.
353 Author Contact Information
361 Voice: +1 763-398-1000
362 E-Mail: mbakke@cisco.com
365 13. Full Copyright Statement
367 Copyright (C) The Internet Society (2001). All Rights Reserved.
369 This document and translations of it may be copied and furnished to
370 others, and derivative works that comment on or otherwise explain it
371 or assist in its implementation may be prepared, copied, published
372 and distributed, in whole or in part, without restriction of any
373 kind, provided that the above copyright notice and this paragraph are
374 included on all such copies and derivative works. However, this
375 document itself may not be modified in any way, such as by removing
376 the copyright notice or references to the Internet Society or other
377 Internet organizations, except as needed for the purpose of
378 developing Internet standards in which case the procedures for
379 copyrights defined in the Internet Standards process must be
380 followed, or as required to translate it into languages other than
383 The limited permissions granted above are perpetual and will not be
384 revoked by the Internet Society or its successors or assigns.
386 This document and the information contained herein is provided on an
387 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
388 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
389 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
390 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
394 Bakke Expires April 2003 [Page 7]
396 Internet Draft String Profile for iSCSI Names October 2002
399 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
403 Funding for the RFC Editor function is currently provided by the
450 Bakke Expires April 2003 [Page 8]