home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / iscsiprj.zip / draft-ietf-ips-iscsi-name-disc-05.txt < prev    next >
Text File  |  2002-06-02  |  88KB  |  1,573 lines

  1.  
  2.            
  3.      IPS 
  4.     Internet Draft 
  5.    draft-ietf-ips-iscsi-name-disc-05.txt 
  6.    Draft Title: iSCSI Naming and Discovery 
  7.                                                                               Mark Bakke 
  8.                                                                                          Cisco 
  9.  
  10.                                                                                 Jim Hafner 
  11.                                                                            John Hufferd 
  12.                                                                 Kaladhar Voruganti 
  13.                                                                                           IBM 
  14.               
  15.                                                                     Marjorie Krueger 
  16.                                                                      Hewlett-Packard 
  17.               
  18.                                                                         Joshua Tseng 
  19.                                                                     Nishan Systems 
  20.               
  21.               
  22.                                     iSCSI Naming and Discovery 
  23.               
  24.              Status of this Memo 
  25.               
  26.              This document is an Internet-Draft and is in full conformance with 
  27.              all provisions of Section 10 of RFC2026 except that the right to 
  28.              produce derivative works is not granted. Internet-Drafts are working 
  29.              documents of the Internet Engineering. Task Force (IETF), its areas, 
  30.              and its working groups. Note that other groups may also distribute       
  31.              working documents as Internet-Drafts. Internet-Drafts are draft 
  32.               documents valid for a maximum of six months and may be updated, 
  33.              replaced, or obsoleted by other documents at any time. It is 
  34.              inappropriate to use Internet- Drafts as reference material or to 
  35.              cite them other than as "work in progress." The list of current 
  36.              Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id- 
  37.              abstracts.txt 
  38.               
  39.              The list of Internet-Draft Shadow Directories can be accessed at 
  40.              http://www.ietf.org/shadow.html. 
  41.              Comments 
  42.              Comments should be sent to the ips mailing list (ips@ece.cmu.edu) or 
  43.              to kaladhar@us.ibm.com 
  44.               
  45.               
  46.              Abstract 
  47.               
  48.               
  49.              This document describes iSCSI [7] naming and discovery details. This 
  50.              document complements the iSCSI Protocol draft. Flexibility is the key 
  51.               
  52.  
  53.           Internet Draft         Naming and Discovery                2 
  54.                                                                          
  55.                                                                           
  56.                                                                          
  57.            
  58.              guiding principle behind this document. That is, an effort has been  
  59.              made to satisfy the needs of both small isolated environments, as well 
  60.              as large environments requiring secure/scalable solutions. 
  61.               
  62.               
  63.              Acknowledgements 
  64.              Joe Czap (IBM), Howard Hall (Pirus), Jack Harwood (EMC),  
  65.              Yaron Klein (SANRAD), Larry Lamers (SAN Valley Systems),  
  66.              and Todd Sperry (Adaptec) have participated and made  
  67.              contributions during the weekly Naming and Discovery  
  68.              teleconferences. 
  69.               
  70.              Conventions used in this document 
  71.               
  72.              The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
  73.              "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in 
  74.              this document are to be interpreted as described in RFC-2119. 
  75.               
  76.           Voruganti, K.  Informational-Track  Expires August 2002 
  77.  
  78.           Internet Draft         Naming and Discovery                3 
  79.                                                                          
  80.                                                                           
  81.                                                                          
  82.            
  83.              Table of Contents 
  84.            
  85.              1. iSCSI Naming Philosophy..........................................................3 
  86.              2. iSCSI Names.................................................................................4 
  87.              3. iSCSI ISID...................................................................................17 
  88.              4. iSCSI Discovery.........................................................................20 
  89.              5. Appendix A: iSCSI Naming Notes..........................................22
  90.              6. Appendix B: Proxy Description...............................................23 
  91.              7. Appendix C: iSCSI Names and Security Identifiers..............26 
  92.              8. References..................................................................................27 
  93.              9. Author's Addresses.................................................................29
  94.               
  95.           1. iSCSI Naming Philosophy 
  96.              The notion of an iSCSI name is required at both the targets and at 
  97.              the initiators. iSCSI name is required at the target because it  
  98.              uniquely identifies a target as a storage resource for the initiators.  
  99.              iSCSI initiator name is required at the initiator because it helps to  
  100.              uniquely identify an initiator for the purpose of target resource  
  101.              allocation (i.e., which initiator has access to which target 
  102.              resource). iSCSI name is also used to provide a mechanism for world  
  103.              wide unique identification of SCSI Initiator Ports (analogous to FC 
  104.              WWPortnames). The SCSI port name is used by SCSI during SCSI  
  105.              reservations, SCSI initiator specific task queue management and 
  106.              SCSI mode page management. Furthermore, iSCSI initiator names can be  
  107.              also potentially used by software layers such as security and  
  108.               management software to uniquely identify initiators to targets. 
  109.               
  110.               
  111.              It is necessary for the iSCSI names to be unique within the operation 
  112.              domain of the end user. However, since user operation domains can 
  113.              potentially merge with other user operation domains, the iSCSI naming 
  114.              mechanism has been architected to ensure world wide uniqueness. In  
  115.              order to ensure both world wide name uniqueness iSCSI provides for 
  116.              the use of different types of naming authority mechanisms. 
  117.               
  118.              Furthermore, iSCSI names are associated with iSCSI nodes instead of  
  119.              with network adapter cards to ensure the free movement of network  
  120.              HBAs between hosts without carrying over the SCSI state information  
  121.              (reservations, mode page settings etc).  
  122.               
  123.              Since there can be multiple separate iSCSI sessions (via different 
  124.              iSCSI ports) between the same iSCSI initiator and target nodes, 
  125.              iSCSI has introduced the notion of an initiator session id (ISID) 
  126.              and a target session id (TSID) to help in uniquely identifying each  
  127.              of the iSCSI sessions. The ISID and the TSID are not global identifiers 
  128.              but together uniquely identify a session only within the context of a 
  129.           Voruganti, K.  Informational-Track  Expires August 2002 
  130.  
  131.           Internet Draft         Naming and Discovery                4 
  132.                                                                          
  133.                                                                           
  134.                                                                          
  135.            
  136.              given named iSCSI initiator and iSCSI target. 
  137.               
  138.              In addition to the mandatory iSCSI concepts of iSCSI initiator name, 
  139.              iSCSI target name, ISID and TSID, iSCSI also optionally allows for  
  140.              the specification of initiator and target aliases. Initiator and 
  141.              target aliases are optional constructs which help the users to  
  142.              associate semantic meanings with a particular initiator or target. 
  143.               
  144.               
  145.               
  146.           2. iSCSI Names 
  147.               
  148.                 The main addressable, discoverable entity in iSCSI is an iSCSI 
  149.                 Node.  An iSCSI node can be either an initiator, a target, or 
  150.                 both. 
  151.               
  152.                 The concepts of names and addresses have been carefully separated in 
  153.                 iSCSI: 
  154.               
  155.                  -  An iSCSI Name is a location-independent, permanent identifier 
  156.                     for an iSCSI node.  An iSCSI node has one iSCSI name, which 
  157.                     stays constant for the life of the node.  The terms "initiator 
  158.                     name" and "target name" also refer to an iSCSI name. 
  159.               
  160.                  -  An iSCSI Address specifies not only the iSCSI name of an iSCSI 
  161.                     node, but also a location of that node.  The address consists of 
  162.                     a host name or IP address,  a TCP port number (for the target), 
  163.                     and the iSCSI Name of the  node.  An iSCSI node can have any 
  164.                     number of addresses, which can change at any time, particularly 
  165.                     if they are assigned via DHCP. 
  166.               
  167.                 A similar analogy exists for people.  A person in the USA might be: 
  168.               
  169.                     Robert Smith 
  170.                     SSN: 333-44-5555 
  171.                     Phone: +1 (763) 555.1212 
  172.                     Home Address: 555 Big Road, Minneapolis, MN 55444 
  173.               
  174.                     Work Address: 222 Freeway Blvd, St. Paul, MN 55333 
  175.               
  176.                 In this case, Robert's globally unique name is really his Social 
  177.                 Security Number his common name, "Robert Smith", is not guaranteed 
  178.                 to be unique. Robert has three locations at which he may be reached; 
  179.                 two Physical addresses, and a phone number.  In this example, 
  180.                 Robert's SSN is like the iSCSI Name, his phone number and addresses 
  181.                 are analogous to the iSCSI Address, and "Robert Smith" would be a 
  182.           Voruganti, K.  Informational-Track  Expires August 2002 
  183.  
  184.           Internet Draft         Naming and Discovery                5 
  185.                                                                          
  186.                                                                           
  187.                                                                          
  188.            
  189.                 human-friendly label for this person. 
  190.               
  191.              2.1. iSCSI Name Requirements 
  192.               
  193.                 Each iSCSI node, whether an initiator or target, must have an 
  194.                 iSCSI name. 
  195.               
  196.                 iSCSI names may be assigned by a hardware manufacturer, software 
  197.                 manufacturer, or the end user.  A naming authority scheme is 
  198.                 provided to ensure that each of these can confidently generate 
  199.                 unique names. 
  200.               
  201.                 iSCSI names are designed to fulfill the following requirements: 
  202.               
  203.                  1. iSCSI names are globally unique.  No two initiators or targets 
  204.                     should have the same name. 
  205.               
  206.                  2. iSCSI names are permanent.  An iSCSI initiator or target has the 
  207.                     same name for its lifetime. 
  208.               
  209.                  3. iSCSI names do not imply a location or address.  An iSCSI 
  210.                     initiator or target can move, or have multiple addresses.  A 
  211.                     change of address does not cause a change of name. 
  212.               
  213.                  4. iSCSI names must not rely on a central name broker; the naming 
  214.                     authority must be distributed. 
  215.               
  216.                  5. iSCSI names must support integration with existing unique naming 
  217.                     schemes. 
  218.               
  219.                  6. iSCSI names must rely on existing naming authorities.  iSCSI 
  220.                     must not create its own naming authority. 
  221.               
  222.                 The encoding of an iSCSI name also has some requirements: 
  223.               
  224.                  1. iSCSI names have one single encoding method when transmitted 
  225.                     over various protocols. 
  226.               
  227.                  2. iSCSI names must be relatively simple to compare.  The algorithm 
  228.                     for comparing two iSCSI names for equivalence must not rely on 
  229.                     any external server. 
  230.               
  231.                  3. iSCSI names must be transcribable by humans.  iSCSI names should 
  232.                     be kept as simple as possible, and should not use more than a 
  233.                     few special characters.  They must provide for the use of 
  234.                     international character sets, and must not allow the use of 
  235.           Voruganti, K.  Informational-Track  Expires August 2002 
  236.  
  237.           Internet Draft         Naming and Discovery                6 
  238.                                                                          
  239.                                                                           
  240.                                                                          
  241.            
  242.                     different names that would be identical except for their case. 
  243.                      Whitespace characters must not be allowed. 
  244.               
  245.                  4. iSCSI names must be transport-friendly.  They must be 
  246.                     transported using both binary and ASCII-based protocols, as well 
  247.                     as on paper. 
  248.               
  249.                 An iSCSI Name really names a logical software entity, and is not 
  250.                 tied to a port or other hardware that can be changed.  For instance, 
  251.                 an initiator name should name the iSCSI initiator node, and not a 
  252.                 particular NIC or HBA card.  When multiple NICs are used, they 
  253.                 should generally all present the same iSCSI initiator name to the 
  254.                 targets, since they are really to the same entity.  In most 
  255.                 operating systems, the named entity is the operating system image. 
  256.                 Most hosts will have a single OS running; some of the really big 
  257.                 ones could have multiples. 
  258.               
  259.                 A target name should similarly not be tied to hardware interfaces 
  260.                 which can be changed.  A target name should identify the logical 
  261.                 target, and must be the same for the target regardless of the 
  262.                 physical portion being addressed.  This gives iSCSI initiators an 
  263.                 easy way to determine that two targets it has discovered are really 
  264.                 two paths to the same target. 
  265.               
  266.                 The iSCSI Name is designed to fulfill the functional requirements 
  267.                 for Uniform Resource Names (URN) [RFC1737].  Among these 
  268.                 requirements are that the name must have a global scope, independent 
  269.                 of address or location, and that it be persistent and globally 
  270.                 unique.  It must be extensible, and scale with the use of naming 
  271.                 authorities.  The encoding of the name should be transcribable by a 
  272.                 human, as well as be machine-readable.  There are other requirements 
  273.                 as well; please read RFC1737 (only 5 pages) for definitions of these 
  274.                 requirements. 
  275.            
  276.               
  277.                  
  278.           2.2. iSCSI Name Encoding 
  279.            
  280.            An iSCSI name is a UTF-8 encoding of a string of Unicode 
  281.           characters,  with the following properties, described in [26]: 
  282.            
  283.               - it is in Normalization Form C [25] 
  284.            
  285.               - it contains only the following types of characters: 
  286.            
  287.           Voruganti, K.  Informational-Track  Expires August 2002 
  288.  
  289.           Internet Draft         Naming and Discovery                7 
  290.                                                                          
  291.                                                                           
  292.                                                                          
  293.            
  294.                    - ASCII dash character ('-'=U+002d) 
  295.                    - ASCII dot character ('.'=U+002e) 
  296.                    - Any character allowed by the output of the iSCSI 
  297.                      stringprep template [26] 
  298.            
  299.               - when encoded in UTF-8, it is no more than 255 bytes 
  300.            
  301.            The stringprep process is described in [24]; iSCSI's use of the 
  302.            stringprep process is described in [26].  Stringprep is a 
  303.           method designed by the Internationalized Domain Name (IDN) working 
  304.           group to translate human-typed strings into a format that can  be 
  305.           compared as opaque strings, and does not include punctuation, 
  306.           spacing, dicritical marks, or other characters that could get 
  307.           in the way of transcribability. It also converts everything into its 
  308.           equivalent of lower case. 
  309.            
  310.           Note that in most cases, the stringprep process does not need 
  311.           to be implemented: 
  312.            
  313.              - If the names are just generated using lower-case (in any 
  314.                character set) plus digits, no normalization is required. 
  315.            
  316.              - If the names are generated from some other all-ASCII 
  317.                string,  tolower() normalizes and isalnum() verifies. 
  318.            
  319.              - If the names are generated from more general, 
  320.                internationalized  text, either the equivalent of tolower() 
  321.               and isalnum()  appropriate 
  322.                to the character set may be used, or the full stringprep 
  323.               procedure can be used. 
  324.            
  325.              When included in Text or Login messages, an iSCSI Name MUST 
  326.               be  formatted in UTF-8 form. 
  327.            
  328.              Since iSCSI names encoded in UTF-8 are "normalized" (there is 
  329.              one and only one representation for each possible name), they 
  330.              may be safely compared byte-for-byte. 
  331.            
  332.           Voruganti, K.  Informational-Track  Expires August 2002 
  333.  
  334.           Internet Draft         Naming and Discovery                8 
  335.                                                                          
  336.                                                                           
  337.                                                                          
  338.            
  339.            The iSCSI Name may be displayed by user interfaces, but its 
  340.           contents are not parsed or interpreted by initiators and targets 
  341.           themselves. 
  342.            
  343.            
  344.            
  345.            
  346.               
  347.              2.3. iSCSI Name Structure 
  348.               
  349.                 An iSCSI name consists of Two parts: a type designator, followed by 
  350.                 a unique name string 
  351.               
  352.               
  353.                 The iSCSI Name does not define any new naming authorities.  Instead, 
  354.                 it supports two existing authorities: an iSCSI-Qualified Name, using 
  355.                 domain names as an authority, similar to the Java class naming 
  356.                 hierarchy, and the EUI format used in Fibre Channel world-wide 
  357.                 names. 
  358.               
  359.                 Since there are different types of naming authorities, there are 
  360.                 different types of iSCSI Names to make use of them.  Each name is 
  361.                 prefixed with a short type designator string that indicates the type 
  362.                 of naming authority being used. 
  363.               
  364.                 Here are the type designator strings that may currently be used: 
  365.               
  366.               
  367.                          iqn.       - iSCSI Qualified Name 
  368.                          eui.       - Remainder of the string is an EUI-64 address, 
  369.                                       in ASCII hexadecimal. 
  370.               
  371.                 As these two naming authorities will suffice in nearly every case 
  372.                 for both software and hardware-based entities, the creation of 
  373.                 additional type designators is discouraged.  One of these two type 
  374.                 strings MUST be used when constructing an iSCSI name; any type 
  375.                 string not listed here is not allowed, as they cannot be guaranteed 
  376.                 to be unique. 
  377.               
  378.              2.3.1.  Type "iqn." (iSCSI Qualified Name) 
  379.               
  380.                 This iSCSI name type can be used by any organization which owns a 
  381.                 Domain Name.  This naming format is handy when an end user or 
  382.                 service provider wishes to assign the iSCSI Name for a target or 
  383.                 initiator.  Customers which own domain names may not own an EUI, 
  384.           Voruganti, K.  Informational-Track  Expires August 2002 
  385.  
  386.           Internet Draft         Naming and Discovery                9 
  387.                                                                          
  388.                                                                           
  389.                                                                          
  390.            
  391.                 OUI, SCSI Vendor ID, or any of the other assigned identifiers that 
  392.                 could be used as a naming authority. 
  393.               
  394.                 To generate names of this type, the person or organization 
  395.                 generating the name must own a DNS domain name.  This name does not 
  396.                 have to be active, and does not have to resolve to an address; it 
  397.                 just needs to be reserved to prevent others from generating iSCSI 
  398.                 names using the same domain name.  For example, "ACME Storage 
  399.                 Arrays, Inc.", might own the domain "acme.com". 
  400.               
  401.                 Since a domain name can expire, be acquired by another entity, and 
  402.                 used to generate iSCSI names by both owners, the domain name must 
  403.                 be additionally qualified by a date during which the naming authority 
  404.                 owned the domain name.  A date code is provided as part of the IQN 
  405.                 format for this reason. 
  406.               
  407.                 The iSCSI qualified name string consists of: 
  408.               
  409.                 -  The string "iqn.", used to distinguish these names from other 
  410.                    types, such as "eui". 
  411.               
  412.                 -  A date code, in yyyy-mm format.  This date code uses the Gregorian 
  413.                    calendar.  All four digits in the year must be present.  Both 
  414.                    digits of the month must be present, with January == "01" and 
  415.                    December == "12".  The dash must be present.  The date 
  416.                    reflected in this code MUST be a date during which the naming 
  417.                    authority owned the domain name used in this format, and SHOULD be 
  418.                    the date on which the domain name was acquired by the naming 
  419.                    authority. 
  420.               
  421.                  -  Another ".". 
  422.                     
  423.                  -  A reversed domain name, owned by the person or organization 
  424.                     creating the iSCSI name.  For example, our storage vendor 
  425.                     example would reverse its name to "com.acme". 
  426.               
  427.                  -  Another ".". 
  428.               
  429.                  -  Any string, within the character set and length boundaries, that 
  430.                     the owner of "acme.com" deems appropriate.  This may contain 
  431.                     product types, serial numbers, host identifiers, software keys, 
  432.                     or anything else that makes sense to uniquely identify the 
  433.                     initiator or target. 
  434.               
  435.                 Everything after the backwards domain name, followed by another dot 
  436.           Voruganti, K.  Informational-Track  Expires August 2002 
  437.  
  438.           Internet Draft         Naming and Discovery                10 
  439.                                                                          
  440.                                                                           
  441.                                                                          
  442.            
  443.                ".", can be assigned as needed by the owner of the domain name.  It is 
  444.                the responsibility of the Organizational (Company) naming authority to 
  445.                ensure that the iSCSI names it assigns are world wide unique. 
  446.                 
  447.                iSCSI has given the Organizational naming authority additional 
  448.                flexibility by permitting it to hand out local naming authority to 
  449.                subordinate organizations.  In this way it will be possible for the 
  450.                Organizational naming authority to assign for example, the string 
  451.                "storage", to one subgroup naming authority and "storage.tape" to 
  452.                another.  In this case the subgroups may add a ":" following their 
  453.                assigned subgroup string to ensure ongoing uniqueness. For example: 
  454.                "storage:" and "storage.tape:".  Also, additional sub-qualifiers can be 
  455.                assigned and separated by a "." as explained above. 
  456.                 
  457.                Using this approach, the subgroup with the sub-naming authority string 
  458.                of "storage" might, overtime, also create some Tape products.  In this 
  459.                case, both subgroups might use the same qualifying names.  It would be 
  460.                expected in this case that a naming conflict might occur, however by 
  461.                using the ":" appropriately the conflicts can be avoided.  In this 
  462.                example com.acme.storage:tape.sys1.xyz  and 
  463.                com.acme.storage.tape:sys1.xyz would not be in conflict even though the 
  464.                same sub-names are used.  
  465.                 
  466.                The following are examples of iSCSI qualified names from an 
  467.                 equipment vendor: 
  468.               
  469.                                  Organization    Subgroup Naming Authority 
  470.                                      Naming      and/or string Defined by 
  471.                        Type  Date     Auth       Org. or Local Naming Authority 
  472.                         +-+ +-----+ +------+ +--------------------------------+ 
  473.                         | | |     | |      | |                                | 
  474.               
  475.                         iqn.2001-04.com.acme.diskarrays-sn-a8675309 
  476.                         iqn.2001-04.com.acme.storage:tape.sys1.xyz 
  477.                         iqn.2001-04.com.acme.storage.tape:sys1.xyz 
  478.               
  479.                 Where: 
  480.               
  481.                      "iqn" specifies the use of the iSCSI qualified name as the 
  482.                       authority. 
  483.               
  484.                       "2001-04" is the year and month on which the naming authority 
  485.                       acquired the domain name used in this iSCSI name. 
  486.               
  487.               
  488.           Voruganti, K.  Informational-Track  Expires August 2002 
  489.  
  490.           Internet Draft         Naming and Discovery                11 
  491.                                                                          
  492.                                                                           
  493.                                                                          
  494.            
  495.                     "com.acme" defines the Organizational naming authority.  The 
  496.                     owner of the DNS name "acme.com" has the sole right of use of 
  497.                     this name within an iSCSI name, as well as the responsibility to 
  498.                     keep the remainder of the iSCSI name unique.  In this case, 
  499.                     acme.com happens to manufacture disk arrays. 
  500.               
  501.                       "diskarrays" was picked arbitrarily by acme.com to identify 
  502.                       the disk arrays they manufacture.  Another product 
  503.                       that ACME makes might use a different name, and have it's 
  504.                       own namespace independent of the disk array group. 
  505.               
  506.                       "sn" was picked by the disk array group of ACME to show that 
  507.                       what follows is a serial number.  They could have just assumed 
  508.                       that all iSCSI Names are based on serial numbers, but they 
  509.                       thought that perhaps later products might be better identified 
  510.                       by something else.  Adding "sn" was a future-proof measure. 
  511.               
  512.                       "a8675309" is the serial number of the disk array, uniquely 
  513.                       identifying it from all other arrays. 
  514.               
  515.                     "storage:" is the string that represents another sub-naming 
  516.                     authority. 
  517.                      
  518.                     "storage.tape:" is still another sub-naming authority. 
  519.                      
  520.                     "sys1.xyz" is a naming sub-qualifier. 
  521.               
  522.                 The following is an example of a name that might be constructed by 
  523.                 an research organization: 
  524.               
  525.                                      Organization               String 
  526.                                        Naming                  Defined by Org. 
  527.                        Type  Date     Authority               Naming Authority 
  528.                         +-+ +-----+ +----------------------+ +-----------+ 
  529.                         | | |     | |                      | |           | 
  530.                         iqn.2000-02.edu.pika-u.cs.users.oaks.proto.target4 
  531.               
  532.               
  533.                 In the above example, Professor Oaks of Pika University is building 
  534.                 research prototypes of iSCSI targets.  Pika-U's computer science 
  535.                 department allows each user to use his or her user name as a naming 
  536.                 authority for this type of work.  Professor Oaks chose to use 
  537.                 "proto.target4" for a particular target. 
  538.               
  539.                 The following is an example of an iSCSI name string from a storage 
  540.                 service provider: 
  541.           Voruganti, K.  Informational-Track  Expires August 2002 
  542.  
  543.           Internet Draft         Naming and Discovery                12 
  544.                                                                          
  545.                                                                           
  546.                                                                          
  547.            
  548.               
  549.                                     Organization       String 
  550.                                        Naming       Defined by Org. 
  551.                        Type  Date    Authority     Naming Authority 
  552.                         +-+ +-----+ +--------+ +----------------------+ 
  553.                         | | |     | |        | |                      | 
  554.                         iqn.1995-11.com.my-ssp.customers.4567.disks.107 
  555.               
  556.                 In this case, a storage service provider (my-ssp.com) has decided to 
  557.                 re-name the targets from the manufacturer, to provide the 
  558.                 flexibility to move the customer's data to a different storage 
  559.                 subsystem should the need arise. 
  560.               
  561.                 My-ssp has configured the iSCSI Name on this particular target for 
  562.                 one of its customers, and has determined that it made the most sense 
  563.                 to track these targets by their Customer ID number and a disk 
  564.                 number.  This target was created for use by customer #4567, and is 
  565.                 the 107th target configured for this customer. 
  566.               
  567.                 Note that when reversing these domain names, the first 
  568.                 component(after the "iqn.") will always be a top-level domain name, 
  569.                 which includes "com", "edu", "gov", "org", "net", "mil", or one of 
  570.                 the two-letter country codes.  The use of anything else as the first 
  571.                 component of these names is not allowed.  In particular, companies 
  572.                 generating these names must not eliminate their "com." from the 
  573.                 string. 
  574.               
  575.                 Again, these iSCSI names are NOT addresses.  Even though they make 
  576.                 use of DNS domain names, they are used only to specify the naming 
  577.                 authority.  An iSCSI name contains no implications of the iSCSI 
  578.                 target or initiator's location.  The use of the domain name is only 
  579.                 a method of re-using an already ubiquitous name space. 
  580.               
  581.                 Note that the SCSI Vendor ID or IEEE OUI could have been specified 
  582.                 as a naming authority.  However, some large customers and service 
  583.                 providers may wish to use their own identification scheme, rather 
  584.                 than that provided by the manufacturer.  These customers would not 
  585.                 likely have a registered Vendor ID, but the domain name we used is 
  586.                 ubiquitous, and was deemed more appropriate. 
  587.               
  588.               
  589.              2.3.2.  Type "eui." (IEEE EUI format) 
  590.               
  591.                 The IEEE iSCSI name might be used when a manufacturer is already 
  592.                 basing unique identifiers on World-Wide Names as defined in the SCSI 
  593.                 SPC-2 specification. 
  594.           Voruganti, K.  Informational-Track  Expires August 2002 
  595.  
  596.           Internet Draft         Naming and Discovery                13 
  597.                                                                          
  598.                                                                           
  599.                                                                          
  600.            
  601.               
  602.                 It may also be used by a gateway representing a Fibre Channel or 
  603.                 SCSI device that is already adequately identified using a world-wide 
  604.                 name. 
  605.               
  606.                 The format is "eui." followed by 16 hex digits. 
  607.               
  608.                 Example iSCSI name : 
  609.               
  610.                       Type    EUI-64 WWN 
  611.                        +-+ +--------------+ 
  612.                        | | |              | 
  613.                        eui.02004567A425678D 
  614.               
  615.               
  616.               
  617.              2.4 iSCSI Alias 
  618.               
  619.                 The iSCSI alias is a UTF-8 text string that may be used as an 
  620.                 additional descriptive name for an initiator and target.  This 
  621.                 may not be used to identify a target or initiator during login, 
  622.                 and does not have to follow the uniqueness or other requirements 
  623.                 of the iSCSI name.  The alias strings are communicated between the 
  624.               
  625.                 initiator and target at login, and can be displayed by a user 
  626.                 interface on either end, helping the user tell at a glance whether 
  627.                 the initiators and/or targets at the other end appear to be 
  628.                 correct.  The alias must NOT be used to identify, address, or 
  629.                 authenticate initiators and targets. 
  630.               
  631.                 The alias is a variable length string, between 0 and 255 characters, 
  632.                 and is terminated with at least one NULL (0x00) character.  No 
  633.                 other structure is imposed upon this string. 
  634.               
  635.              2.4.1 Purpose of an Alias 
  636.               
  637.                 Initiators and targets are uniquely identified by an iSCSI Name. 
  638.                 These identifiers may be assigned by 
  639.                 a hardware or software manufacturer, a service provider, or even 
  640.                 the customer.  Although these identifiers are nominally human- 
  641.                 readable, they are likely be be assigned from a point of view 
  642.                 different from that of the other side of the connection.  For 
  643.                 instance, a target name for a disk array may be built from the 
  644.                 array's serial number, and some sort of internal target ID. 
  645.                 Although this would still be human-readable and transcribable, 
  646.                 it offers little assurance to someone at a user interface who 
  647.           Voruganti, K.  Informational-Track  Expires August 2002 
  648.  
  649.           Internet Draft         Naming and Discovery                14 
  650.                                                                          
  651.                                                                           
  652.                                                                          
  653.            
  654.                 would like to see "at-a-glance" whether this target is really 
  655.                 the correct one. 
  656.               
  657.                 The use of an alias helps solve that problem.  An alias is 
  658.                 simply a descriptive name that can be assigned to an initiator 
  659.                 or target, that is independent of the name, and does not have 
  660.                 to be unique.  Since it is not unique, the alias must be used 
  661.                 in a purely informational way.  It may not be used to specify 
  662.                 a target at login, or used during authentication.   
  663.               
  664.                 Both targets and initiators may have aliases. 
  665.               
  666.              2.4.2 Target Alias 
  667.               
  668.                 To show the utility of an alias, here is an example using an 
  669.                 alias for an iSCSI target. 
  670.               
  671.                 Imagine sitting at a desktop station that is using some iSCSI 
  672.                 devices over a network.  The user requires another iSCSI disk, 
  673.                 and calls the storage services person (internal or external), 
  674.                 giving any authentication information that the storage device 
  675.                 will require for the host.  The services person allocates a 
  676.                 new target for the host, and sends the Target Name for the new 
  677.                 target, and probably an address, back to the user.  The user then 
  678.                 adds this Target Name to the configuration file on the host, and 
  679.                 discovers the new device. 
  680.               
  681.                 Without an alias, a user managing an iSCSI host would click 
  682.                 on some sort of management "show targets" button to show the 
  683.                 targets to which the host is currently connected. 
  684.               
  685.                 +--Connected-To-These-Targets---------------------- 
  686.                 | 
  687.                 |  Target Name 
  688.                 | 
  689.                 |  iqn.1995-04.com.acme.sn.5551212.target.450 
  690.                 |  iqn.1995-04.com.acme.sn.5551212.target.489 
  691.                 |  iqn.1995-04.com.acme.sn.8675309 
  692.                 |  iqn.2001-04.com.acme.storage:tape.sys1.xyz 
  693.                 |  iqn.2001-04.com.acme.storage.tape:sys1.xyz 
  694.                 | 
  695.                 +-------------------------------------------------- 
  696.               
  697.                 In the above example, the user sees a collection of iSCSI Names, but 
  698.                 with no real description of what they are for.  They will, of 
  699.                 course, map to a system-dependent device file or drive letter, 
  700.           Voruganti, K.  Informational-Track  Expires August 2002 
  701.  
  702.           Internet Draft         Naming and Discovery                15 
  703.                                                                          
  704.                                                                           
  705.                                                                          
  706.            
  707.                 but it's not easy looking at numbers quickly to see if everything 
  708.                 is there. 
  709.               
  710.                 If a more intelligent target configures an alias for each target, 
  711.                 perhaps at the time the target was allocated to the host, a more 
  712.                 descriptive name can be given.  This alias may be sent back to the 
  713.                initiator as part of the login response, or found in the iSCSI MIB.  It 
  714.                then might be used in a display such as this.  The new display might 
  715.                look like: 
  716.               
  717.                 +--Connected-To-These-Targets---------------------- 
  718.                 | 
  719.                 |  Alias          Target Name 
  720.                 | 
  721.                 |  Oracle 1       iqn.1995-04.com.acme.sn.5551212.target.450 
  722.                 |  Local Disk     iqn.1995-04.com.acme.sn.5551212.target.489 
  723.                 |  Exchange 2     iqn.1995-04.com.acme.sn.8675309 
  724.                 | 
  725.                 +-------------------------------------------------- 
  726.               
  727.                 This would give the user a better idea of what's really there. 
  728.               
  729.                 In general, flexible, configured aliases will probably be 
  730.                 supported by larger storage subsystems and configurable gateways. 
  731.                 Simpler devices will likely not keep configuration data 
  732.                 around for things such as an alias.  The TargetAlias string 
  733.                 could be either left unsupported (not given to the initiator 
  734.                 during login) or could be returned as whatever the "next best 
  735.                 thing" that the target has that might better describe it. 
  736.                 Since it does not have to be unique, it could even return 
  737.                 SCSI inquiry string data. 
  738.               
  739.                 Note that if a simple initiator does not wish to keep or display 
  740.                alias information, it can be simply ignored if seen in the login 
  741.                response.  
  742.               
  743.              2.4.3 Initiator Alias 
  744.               
  745.                 An initiator alias can be used in the same manner as a target 
  746.                 alias.  An initiator may send the alias in a login request, 
  747.                 when it sends its iSCSI Initiator Name.  The alias is not used for 
  748.                 authentication, but may be kept with the session information for 
  749.                 display through a management GUI or command-line interface (for a 
  750.                 more complex subsystem or gateway), or through the iSCSI MIB. 
  751.               
  752.                 Note that a simple target can just ignore the Initiator Alias 
  753.           Voruganti, K.  Informational-Track  Expires August 2002 
  754.  
  755.           Internet Draft         Naming and Discovery                16 
  756.                                                                          
  757.                                                                           
  758.                                                                          
  759.            
  760.                 if it has no management interface on which to display it. 
  761.               
  762.               
  763.                 Usually just the hostname would be sufficient for an initiator 
  764.                 alias, but a custom alias could be configured for the sake of the 
  765.                 service provider if needed.  Even better would be a description of 
  766.                 what the machine was used for, such as "Exchange Server 1", or 
  767.                 "User Web Server". 
  768.               
  769.                Here's an example of a management interface showing a list of sessions 
  770.                on an iSCSI target  network entity. 
  771.                 For this display, the targets are using an internal target number, 
  772.                 which is a fictional field that has purely internal significance. 
  773.               
  774.                 +--Connected-To-These-Initiators------------------- 
  775.                 | 
  776.                 |  Target   Initiator Name 
  777.                 | 
  778.                 |  450      iqn.1995-04.com.sw.cd.12345678-OEM-456 
  779.                 |  451      iqn.1995-04.com.os.hostid.A598B45C 
  780.                 |  309      iqn.1995-04.com.sw.cd.87654321-OEM-259 
  781.                 | 
  782.                 +-------------------------------------------------- 
  783.               
  784.                 And with the initiator alias displayed: 
  785.               
  786.                 +--Connected-To-These-Initiators------------------- 
  787.                 | 
  788.                 |  Target   Alias                Initiator Name 
  789.                 | 
  790.                 |  450    Web Server 4         iqn.1995-04.com.sw.cd.12345678-OEM-456 
  791.                 |  451    scsigate.yours.com   iqn.1995-04.com.os.hostid.A598B45C 
  792.                 |  309    Exchange Server      iqn.1995-04.com.sw.cd.87654321-OEM-259 
  793.                 | 
  794.                 +-------------------------------------------------- 
  795.               
  796.                 This gives the storage administrator a better idea of who is 
  797.                 connected to their targets.  Of course, one could always do 
  798.                 a reverse DNS lookup of the incoming IP address to determine 
  799.                 a host name, but simpler devices really don't do well with that 
  800.                 particular feature due to blocking problems, and it won't 
  801.                 always work if there is a firewall or iSCSI gateway involved. 
  802.               
  803.                Again, these are purely informational and optional and require a 
  804.                management application. 
  805.               
  806.           Voruganti, K.  Informational-Track  Expires August 2002 
  807.  
  808.           Internet Draft         Naming and Discovery                17 
  809.                                                                          
  810.                                                                           
  811.                                                                          
  812.            
  813.                 Aliases are extremely easy to implement.  Targets just send 
  814.                 a TargetAlias whenever they send a TargetName.  Initiators just 
  815.                 send an InitiatorAlias whenever they send an InitiatorName. 
  816.                 If an alias is received that does not fit, or seems invalid 
  817.                 in any way, it is ignored. 
  818.               
  819.               
  820.              2.5. Initiator and Target Requirements for iSCSI Name support: 
  821.               
  822.                 Each initiator and target implementation must support the use of 
  823.                 iSCSI names. 
  824.               
  825.                The initiator MUST send an InitiatorName and a TargetName as text 
  826.                fields within the initial login request on all connections within the 
  827.                session. 
  828.               
  829.                 Initiators and targets shall support the receipt of iSCSI names of 
  830.                 up to the maximum length.  If configuration of the initiator or 
  831.                 target name is allowed, the implementation shall support the maximum 
  832.                 length. 
  833.               
  834.                 In their user interfaces, both shall support, at a minimum, the 
  835.                 display of the ASCII characters within the iSCSI Name's UTF-8 
  836.                 string. 
  837.               
  838.                 If the other characters are unsupported, they may be displayed with 
  839.                 escape codes as specified in [RFC 2396]. 
  840.            
  841.            
  842.            
  843.           3. ISID 
  844.           The ISID is an initiator-defined component of the session identifier 
  845.           (SSID) and is structured as follows. See iSCSI [7] and Section 3.4 
  846.           Conservative Reuse of ISIDs for further information regarding the  
  847.           ISID. 
  848.            
  849.           Byte/    0        |        1      |      2        |      3        | 
  850.              /              |               |               |               | 
  851.             |7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0| 
  852.             +---------------+---------------+---------------+---------------+ 
  853.            0| T |    A      |               B               |       C       | 
  854.             +---------------+---------------+---------------+---------------+ 
  855.            4|               D               | 
  856.             +---------------+---------------+ 
  857.            
  858.           The T field identifies the format and usage of A, B, C & D  
  859.           as indicated below: 
  860.           Voruganti, K.  Informational-Track  Expires August 2002 
  861.  
  862.           Internet Draft         Naming and Discovery                18 
  863.                                                                          
  864.                                                                           
  865.                                                                          
  866.            
  867.            
  868.           T 
  869.            
  870.           00b        OUI-format 
  871.                      A&B are 22 bits. OUI is the Naming Authority 
  872.                      (the I/G & U/L bits are omitted) 
  873.                      C&D are 24 bit Qualifier 
  874.           01b        EN - format (IANA Enterprise Number) 
  875.                      A - reserved 
  876.                      B&C EN (IANA Enterprise Number) is the Naming Authority 
  877.                      D - Qualifier 
  878.           10b        "Random" 
  879.                      A - reserved 
  880.                      B&C Random is the Naming Authority 
  881.                      D - Qualifier 
  882.           11b        A,B,C&D Reserved 
  883.            
  884.           For T field values 00b and 01b, a combination of A and B (for 00b) 
  885.           or B and C (for 01b) identifies the vendor or organization whose  
  886.           component (software or hardware) generates this ISID. This is the  
  887.           Naming Authority field. See 3.2 for more information. A vendor or  
  888.           organization with one or more OUIs, or one or more Enterprise Numbers, 
  889.           must use at least one of these numbers and select the appropriate  
  890.           value for the T field when its components generate  
  891.           ISIDs. An OUI or EN value must be set in the corresponding fields  
  892.           in network byte order (i.e., big-endian). 
  893.            
  894.           If the T field is 10b, B and C are set to a random 24 bit unsigned  
  895.           integer value in network byte order (i.e., big-endian). See iSCSI[7] 
  896.           and section 3.4) for how this affects the principle of "conservative 
  897.           reuse". 
  898.            
  899.           The "Random" type (10b) is for the case where the component that 
  900.           generates an ISID (SW or HW) is provided by an entity that has no OUI 
  901.           or EN.  This includes, for example,   
  902.           - a user-written program that builds sessions (and has access to the  
  903.           system level iSCSI Name) 
  904.           - a university or other organization providing the component   
  905.           - a testing tool  
  906.            
  907.            
  908.           The T field of 11b is reserved. 
  909.            
  910.           3.2 ISID Naming Authority  
  911.            
  912.           If the Type field is 00b, the 22-bits of the Naming Authority field 
  913.           must be the lower 22-bits of one of the IEEE OUI (Organization Unique 
  914.           Identifier) a.k.a. "Company ID" assigned to the vendor whose component 
  915.           is generating this ISID. The OUI is set in the Naming Authority field 
  916.           Voruganti, K.  Informational-Track  Expires August 2002 
  917.  
  918.           Internet Draft         Naming and Discovery                19 
  919.                                                                          
  920.                                                                           
  921.                                                                          
  922.            
  923.           in network byte order (big-endian). 
  924.            
  925.           If the Type field is 01b, the Naming Authority field must be set to 
  926.           one of the IANA Enterprise Numbers assigned to the vendor whose  
  927.           component is generating this ISID.  The Enterprise Number is set in  
  928.           the Naming Authority field as a 24bit unsigned integer value in  
  929.           network byte order (big-endian). 
  930.            
  931.           If the type field is 10b, the Naming Authority field is set randomly 
  932.           as specified above. It is important to note that the "Random" type  
  933.           does not guarantee uniqueness. The "Random" type has been introduced 
  934.           because it allows ISIDs to be used in experimental or isolated iSCSI 
  935.           setups. (See 3.4 on how this affects the principle of "conservative 
  936.           reuse").   
  937.            
  938.           3.3 ISID Qualifier 
  939.            
  940.           The Qualifier field is a 16 or 24 bit unsigned integer value that 
  941.           provides a range of possible values for the ISID within the selected 
  942.           namespace. It may be set to any value, within the constraints  
  943.           specified in the iSCSI protocol (see iSCSI [7]  and 3.4 for  
  944.           Consequences of the Model and Conservative Reuse of ISIDs). 
  945.            
  946.           3.4 Conservative reuse of ISIDs  
  947.                       
  948.           The principle of "conservative reuse" of ISIDs (see iSCSI [7])  
  949.           specifies that ISIDs should be reused as much as possible.  This  
  950.           principle is there to both minimize the disruption of legacy  
  951.           applications and to better facilitate the SCSI features that rely  
  952.           on persistent names for SCSI ports.  
  953.                       
  954.           To facilitate conservative reuse, the Qualifier field of a set of  
  955.           ISIDs should be generated using either a repeatable algorithm (e.g,  
  956.           deterministic or pseudo-random but based on a fixed seed) or any  
  957.           algorithm to initialize a value or set of values but stored in a  
  958.           persistent location (e.g., registry or /etc file).  
  959.                       
  960.           For the "Random" type, conservative reuse may not be an issue  
  961.           (e.g., in a user application that doesn't care about reservations, 
  962.           etc.).  When it is an issue, the Naming Authority field should also  
  963.           be generated by a mechanism similar to that for the Qualifier field  
  964.           as specified above (e.g., defined in the SW at compilation time.)  
  965.                       
  966.            
  967.           3.5 Notes on ISIDs  
  968.                       
  969.           (a) As noted, the structure of the ISID namespace provides each  
  970.           vendor with its own piece of the ISID namespace.  In effect, this  
  971.           provides for a vendor-partitioning of that namespace within each  
  972.           Voruganti, K.  Informational-Track  Expires August 2002 
  973.  
  974.           Internet Draft         Naming and Discovery                20 
  975.                                                                          
  976.                                                                           
  977.                                                                          
  978.            
  979.           initiator.  An initiator will then fail to comply with the ISID  
  980.           RULE only if a vendor fails to implement the ISID generation use  
  981.           and reuse requirements correctly.  
  982.                       
  983.           (b) This structure also allows for a consortium of companies to  
  984.            develop common APIs or a common infrastructure for generation, use  
  985.            and reuse of ISIDs.  The consortium could, for example, select an  
  986.            OUI from amongst the member companies to be used in the Naming  
  987.            Authority field.  Or, the consortium could request an IANA  
  988.            Enterprise Number for the consortium itself and use this in the  
  989.            naming authority field.  Eventually, the OS implementers could  
  990.            provide such APIs, in which case the OS vendor could use its own  
  991.            OUI or EN in the naming authority.  In short, the design allows for  
  992.            a migration path from vendor-fragmented implementations to  
  993.           coordinated common implementations for ISID generation.  
  994.                       
  995.           (c) ISIDs have no global uniqueness requirements or properties.  
  996.           That is handled by the iSCSI Name of the initiator.  This means  
  997.           that a vendor can use the same algorithm to generate ISIDs (under  
  998.           its naming authority) in every initiator.  
  999.            
  1000.           (d) If the ISID is derived from something assigned to a hardware 
  1001.           adapter or interface by a vendor as a preset default value, it must 
  1002.           have a way to be changed (configured) to a new default value. The 
  1003.           ISID value must be configurable so that a chosen ISID may be applied 
  1004.           to a Portal Group containing more than one interface. In addition, 
  1005.           any preset default value should be automatically adjusted to a common 
  1006.           ISID when placed into a Network Entity as part of a Portal Group. 
  1007.           Any configured ISID must also be persistent (e.g., across power 
  1008.           cycles, reboots, and hot swaps). Refer to iSCSI [7] iSCSI Name and 
  1009.           ISID/TSID. 
  1010.            
  1011.             
  1012.            
  1013.            
  1014.            
  1015.           4. iSCSI Discovery 
  1016.               
  1017.                 The goal of iSCSI discovery is to allow an initiator to find the 
  1018.                 targets to which it has access, and at least one address at which 
  1019.                 each target may be accessed. This should generally be done using as   
  1020.                 little configuration as possible.  This section defines the 
  1021.                 discovery mechanism only; no attempt is made to specify central 
  1022.                 management of iSCSI devices within this document.  Moreover, iSCSI 
  1023.                 discovery mechanism only deals with target discovery and one still 
  1024.                 needs to use the SCSI protocol for LUN discovery. 
  1025.               
  1026.                 In order for an iSCSI initiator to establish an iSCSI session with 
  1027.           Voruganti, K.  Informational-Track  Expires August 2002 
  1028.  
  1029.           Internet Draft         Naming and Discovery                21 
  1030.                                                                          
  1031.                                                                           
  1032.                                                                          
  1033.            
  1034.                 an iSCSI  target, the initiator needs the IP address, TCP port 
  1035.                 number and iSCSI  target name information. The goal of iSCSI 
  1036.                 discovery mechanism is to provide low overhead support for small 
  1037.                 iSCSI setups, and scalable discovery solutions for large enterprise 
  1038.                 setups. Thus, there are several methods that may be used to find 
  1039.                 targets ranging from configuring a list of targets and addresses  on 
  1040.                 each initiator and doing no discovery at all, to configuring nothing 
  1041.                 on each initiator, and allowing the initiator to discover  targets 
  1042.                 dynamically. The various discovery mechanisms differ in their 
  1043.                 assumptions about what information is already available to the 
  1044.                 initiators and what information needs to be still discovered. 
  1045.               
  1046.                 iSCSI supports the following discovery mechanisms: 
  1047.               
  1048.                 a. Static Configuration: This mechanism assumes that the IP address, 
  1049.                 TCP port and the iSCSI target name information are already available 
  1050.                 to the initiator. The initiators need to perform no discovery 
  1051.                 in this approach. The initiator uses the IP address and the TCP port 
  1052.                 information to establish a TCP connection, and it uses the 
  1053.                 iSCSI target name information to establish an iSCSI session. This 
  1054.                 discovery option is convenient for small iSCSI setups. 
  1055.               
  1056.                 b. SendTargets: This mechanism assumes that the IP address and TCP 
  1057.                 port information are already available to the initiator. The 
  1058.                 initiator then uses this information to establish a discovery session 
  1059.                 to the Network Entity.  The initiator then subsequently issues the 
  1060.                 SendTargets text command to query information about the iSCSI 
  1061.                 targets available at the particular Network Entity (IP address). 
  1062.                 SendTargets command details can be found in the iSCSI draft [7]. 
  1063.                 This discovery option is convenient for iSCSI gateways and routers. 
  1064.               
  1065.               c. Zero-Configuration: This mechanism assumes that the initiator 
  1066.               does not have any information about the target. In this option, the 
  1067.               initiator can either multicast discovery messages directly to the 
  1068.               targets or it can send discovery messages to storage name servers. 
  1069.               Currently, there are many general purpose discovery frameworks 
  1070.               available such as Salutation[2], Jini[2],UPnP[2], SLP[17] and iSNS[8]. 
  1071.               However, with respect to iSCSI, SLP can clearly perform the needed 
  1072.               discovery functions [21], while iSNS [8] can be used to provide related 
  1073.               management functions including notification, access management, 
  1074.               configuration, and discovery management.  iSCSI equipment that 
  1075.               need discovery functions beyond SendTargets should at least implement 
  1076.               SLP, and then consider iSNS when extended discovery management 
  1077.               capabilities are required such as in larger storage networks. 
  1078.               It should be noted that since iSNS will support SLP, iSNS can 
  1079.               be used to help manage the discovery information returned by SLP. 
  1080.           Voruganti, K.  Informational-Track  Expires August 2002 
  1081.  
  1082.           Internet Draft         Naming and Discovery                22 
  1083.                                                                          
  1084.                                                                           
  1085.                                                                          
  1086.            
  1087.               
  1088.               
  1089.               
  1090.               
  1091.               
  1092.               
  1093.           Appendix A: iSCSI Name Notes 
  1094.               
  1095.                 Some iSCSI Name Examples for Targets 
  1096.               
  1097.                 - Assign to a target based on controller serial number 
  1098.               
  1099.                   iqn.2001-04.com.acme.diskarray.sn.8675309 
  1100.               
  1101.                 - Assign to a target based on serial number 
  1102.               
  1103.                   iqn.2001-04.com.acme.diskarray.sn.8675309.oracle_database_1 
  1104.               
  1105.                 Where oracle_database_1 might be a target label assigned by a user. 
  1106.               
  1107.                 This would be useful for a controller that can present different 
  1108.                 logical targets to different hosts. 
  1109.               
  1110.                 Obviously, any naming authority may come up with its own scheme and 
  1111.                 hierarchy for these names, and be just as valid. 
  1112.               
  1113.                 A target iSCSI Name should never be assigned based on interface 
  1114.                 hardware, or other hardware that can be swapped and moved to other 
  1115.                 devices. 
  1116.               
  1117.                 Some iSCSI Name Examples for Initiators 
  1118.               
  1119.                 - Assign to the OS image by fully qualified host name 
  1120.               
  1121.                   iqn.2001-04.com.osvendor.dns.com.customer1.host-four 
  1122.               
  1123.                 Note the use of two FQDNs - that of the naming 
  1124.                 authority and also that of the host that is being 
  1125.                 named.  This can cause problems, due to limitations 
  1126.                 imposed on the size of the iSCSI Name. 
  1127.               
  1128.                 - Assign to the OS image by OS install serial number 
  1129.               
  1130.                   iqn.2001-04.com.osvendor.newos5.12345-OEM-0067890-23456 
  1131.               
  1132.                 Note that this breaks if an install CD is used more than once. 
  1133.           Voruganti, K.  Informational-Track  Expires August 2002 
  1134.  
  1135.           Internet Draft         Naming and Discovery                23 
  1136.                                                                          
  1137.                                                                           
  1138.                                                                          
  1139.            
  1140.                 Depending on the O/S vendor's philosophy, this might be a feature. 
  1141.               
  1142.               
  1143.                 - Assign to the Raid Array by a service provider 
  1144.               
  1145.                   iqn.2001-04.com.mydisk.users.mbakke05657 
  1146.               
  1147.               
  1148.               
  1149.               
  1150.              Appendix B: iSCSI Proxies and Firewalls Taxonomy 
  1151.               
  1152.               
  1153.                 iSCSI has been designed to allow SCSI initiators and targets to 
  1154.                 communicate over an arbitrary network.  This, making some assumptions 
  1155.                 about authentication and security, means that in theory, the whole 
  1156.                 internet could be used as one giant storage network. 
  1157.               
  1158.                 However, there are many access and scaling problems that would come 
  1159.                 up when this is attempted. 
  1160.               
  1161.                 1. Most iSCSI targets may only meant to be accessed by one or a few 
  1162.                 initiators.  Discovering everything would be unnecessary. 
  1163.               
  1164.                 2. The initiator and target may be owned by separate entities, each 
  1165.                 with their own directory services, authentication, and other schemes. 
  1166.                 An iSCSI-aware proxy may be required to map between these things. 
  1167.               
  1168.                 3. Many environments use non-routable IP addresses, such as the "10." 
  1169.                 network. 
  1170.               
  1171.                 For these and other reasons, various types of firewalls and proxies 
  1172.                 will be deployed for iSCSI, similar in nature to those already 
  1173.                 handling protocols such as HTTP and FTP. 
  1174.               
  1175.                 B.1. Port Redirector 
  1176.               
  1177.                 A port redirector is a stateless device that is not aware of iSCSI. 
  1178.                 It is used to do Network Address Translation (NAT), which can map IP 
  1179.                 addresses between routable and non-routable domains, as well as map 
  1180.                 TCP ports.  While devices providing these capabilities can often 
  1181.                 filter based on IP addresses and TCP ports, they generally do not 
  1182.                 provide meaningful security, and are used instead to resolve internal 
  1183.                 network routing issues. 
  1184.               
  1185.                 Since it is entirely possible that these devices are used as routers 
  1186.           Voruganti, K.  Informational-Track  Expires August 2002 
  1187.  
  1188.           Internet Draft         Naming and Discovery                24 
  1189.                                                                          
  1190.                                                                           
  1191.                                                                          
  1192.            
  1193.                 and/or aggregators between a firewall and an iSCSI initiator or 
  1194.                 target, iSCSI connections must be operable through them. 
  1195.               
  1196.                 Effects on iSCSI: 
  1197.               
  1198.                  -  iSCSI-level data integrity checks must not include information 
  1199.                     from the TCP or IP headers, as these may be changed in between 
  1200.                     the initiator and target. 
  1201.               
  1202.                  -  iSCSI messages that specify a particular initiator or target, 
  1203.                     such as login requests and third party requests, should specify 
  1204.                     the initiator or target in a location-independent manner.  This 
  1205.                     is accomplished using the iSCSI Name. 
  1206.               
  1207.                 B.2. SOCKS server 
  1208.               
  1209.                 A SOCKS server can be used to map TCP connections from one network 
  1210.                 domain to another.  It is aware of the state of each TCP connection. 
  1211.               
  1212.                 The SOCKS server provides authenticated firewall traversal for 
  1213.                 applications that are not firewall-aware.  Conceptually, SOCKS is a 
  1214.                 "shim-layer" that exists between the application (i.e., iSCSI) and 
  1215.                 TCP. 
  1216.               
  1217.                 To use SOCKS, the iSCSI initiator must be modified to use the 
  1218.                 encapsulation routines in the SOCKS library.  The initiator the opens 
  1219.                 up a TCP connection to the SOCKS server, typically on the canonical 
  1220.                 SOCKS port 1080.  A sub-negotiation then occurs, during which the 
  1221.                 initiator is either authenticated or denied the connection request. 
  1222.                 If authenticated, the SOCKS server then opens a TCP connection to the 
  1223.                 iSCSI target using addressing information sent to it by the initiator 
  1224.                 in the SOCKS shim.  The SOCKS server then forwards iSCSI commands, 
  1225.                 data, and responses between the iSCSI initiator and target. 
  1226.               
  1227.                 Use of the SOCKS server requires special modifications to the iSCSI 
  1228.                 initiator.  No modifications are required to the iSCSI target. 
  1229.               
  1230.                 As a SOCKS server can map most of the addresses and information 
  1231.                 contained within the IP and TCP headers, including sequence numbers, 
  1232.                 its effects on iSCSI are identical to those in the port redirector. 
  1233.               
  1234.                 B.3. SCSI gateway 
  1235.               
  1236.                 This gateway presents logical targets (iSCSI Names) to the 
  1237.                 initiators, and maps them to real iSCSI targets as it chooses.  The 
  1238.                 initiator sees this gateway as a real iSCSI target, and is unaware of 
  1239.           Voruganti, K.  Informational-Track  Expires August 2002 
  1240.  
  1241.           Internet Draft         Naming and Discovery                25 
  1242.                                                                          
  1243.                                                                           
  1244.                                                                          
  1245.            
  1246.                 any proxy or gateway behavior.  The gateway may manufacture its own 
  1247.                 iSCSI Names, or use those provided by the real devices.  This type of 
  1248.                 gateway is used to represent parallel SCSI, Fibre Channel, SSA, or 
  1249.                 other devices as iSCSI devices. 
  1250.               
  1251.                 Effects on iSCSI: 
  1252.               
  1253.                 - Since the initiator is unaware of any addresses beyond the gateway, 
  1254.                   the gateway's own address is for all practical purposes the real 
  1255.                   address of a target.  Only the iSCSI Name needs to be passed.  This 
  1256.                   is already done in iSCSI, so there are no further requirements to 
  1257.                   support SCSI gateways. 
  1258.               
  1259.                 B.4. iSCSI Proxy 
  1260.               
  1261.                 An iSCSI proxy is a SCSI gateway that happens to be terminating 
  1262.                 the iSCSI protocol on both sides, rather than translate between 
  1263.                 iSCSI and some other transport.  Since an iSCSI initiator's 
  1264.                 discovery or configuration of a set of targets makes use of 
  1265.                 address-independent iSCSI names, iSCSI does not have the same 
  1266.                 proxy addressing problems as HTTP, which includes address 
  1267.                 information into its URLs.  If a proxy is to provide services 
  1268.                 to an initiator on behalf of a target, the proxy allows the 
  1269.                 initiator to discover its address for the target, and the actual 
  1270.                 target device is discovered only by the proxy.  Neither the 
  1271.                 initiator nor the iSCSI protocol needs to be aware of the 
  1272.                 existence of the proxy. 
  1273.               
  1274.                 Effects on iSCSI: 
  1275.               
  1276.                 - Same as a SCSI gateway.  The only other effect is that 
  1277.                   iSCSI must separate data integrity checking on iSCSI headers 
  1278.                   and iSCSI data, to allow the data integrity check on the 
  1279.                   data to be propagated end-to-end through the proxy. 
  1280.               
  1281.                 B.5. Stateful Inspection Firewall (stealth iSCSI firewall) 
  1282.               
  1283.                 The Stealth model would exist as an iSCSI-aware firewall, that is 
  1284.                 invisible to the initiator, but provides capabilities found in the 
  1285.                 iSCSI proxy. 
  1286.               
  1287.                 Effects on iSCSI: 
  1288.               
  1289.                 - Since this is invisible, there are no additional 
  1290.                   requirements on the iSCSI protocol for this one. 
  1291.               
  1292.           Voruganti, K.  Informational-Track  Expires August 2002 
  1293.  
  1294.           Internet Draft         Naming and Discovery                26 
  1295.                                                                          
  1296.                                                                           
  1297.                                                                          
  1298.            
  1299.                 This one is more difficult in some ways to implement, simply because 
  1300.                 it has to be part of a standard firewall product, rather than part of 
  1301.                 an iSCSI-type product. 
  1302.               
  1303.                 Also note that this type of firewall is only effective in the 
  1304.                 outbound direction (allowing an initiator behind the 
  1305.                 firewall to connect to an outside target), unless the iSCSI target 
  1306.                 is located in a DMZ.  It does not provide adequate security 
  1307.                 otherwise. 
  1308.               
  1309.           Appendix C 
  1310.               
  1311.              This document has described the creation and use of iSCSI Node Names. 
  1312.              There will be trusted environments where this is a sufficient form of  
  1313.              identification. In these environments the iSCSI Target may have an 
  1314.              Access Control List (ACL), which will contain a list of authorized 
  1315.              entities that are permitted to access a restricted resource (in this 
  1316.              case a Target Storage Controller).  The iSCSI Target will then use 
  1317.              that ACL to permit (or not) certain iSCSI Initiators to access the 
  1318.              storage at the iSCSI Target Node. This form of ACL is used to prevent 
  1319.              trusted initiators from making a mistake and connecting to the wrong 
  1320.              storage controller.  
  1321.               
  1322.              It is also possible that the ACL and the iSCSI Initiator Node Name 
  1323.              can be used in conjunction with the SCSI layer for the appropriate 
  1324.              SCSI association of LUNs with the Initiator.  The SCSI layer's use 
  1325.              of the ACL will not be discussed further in this document. 
  1326.               
  1327.              There will be situations where the iSCSI Nodes exist in untrusted 
  1328.              environments. That is, some iSCSI Initiator Nodes may be authorized 
  1329.              to access an iSCSI Target Node, however, because of the untrusted 
  1330.              environment, nodes on the network cannot be trusted to give the 
  1331.              correct iSCSI Initiator Node Names. 
  1332.               
  1333.              In untrusted environments an additional type of identification is 
  1334.              required to assure the target that it really knows the identity 
  1335.              of the requesting entity.     
  1336.               
  1337.              The authentication and authorization in the iSCSI layer is  
  1338.              independent of anything that IPSec might handle, underneath 
  1339.               or around the TCP layer. This means that the initiator node 
  1340.               needs to pass some type of security related identification 
  1341.               information (e.g. userid) to a security authentication process 
  1342.               such as SRP, CHAP, Kerberos etc. (These authentication processes 
  1343.               will not be discussed in this document).  
  1344.               
  1345.           Voruganti, K.  Informational-Track  Expires August 2002 
  1346.  
  1347.           Internet Draft         Naming and Discovery                27 
  1348.                                                                          
  1349.                                                                           
  1350.                                                                          
  1351.            
  1352.              Upon the completion of the iSCSI security authentication, the 
  1353.              installation knows "who" sent the request for access.  The 
  1354.              installation must then check to ensure that such a request, 
  1355.              from the identified entity, is permitted/authorized.  This 
  1356.              form of Authorization is generally accomplished via an Access 
  1357.              Control List (ACL) as described above.  Using this authorization 
  1358.              process, the iSCSI target will know that the entity is authorized to 
  1359.              access the iSCSI Target Node.  
  1360.               
  1361.              It may be possible for an installation to set a rule that the security 
  1362.              identification information (e.g. UserID) be equal to the iSCSI  
  1363.              Initiator Node Name. In that case, the ACL approach described above 
  1364.              should be all the authorization that is needed.  
  1365.               
  1366.              If, however, the iSCSI Initiator Node Name is not used as the security 
  1367.              identifier there is a need for more elaborate ACL functionality. This 
  1368.              means that the target requires a mechanism to map the security  
  1369.              identifier (e.g. UserID) information to the iSCSI Initiator Node Name. 
  1370.              That is, the target must be sure that the entity requesting access is 
  1371.              authorized to use the name, which was specified with the Login Keyword 
  1372.              "InitiatorName=".  
  1373.              For example, if security identifier 'Frank' is authorized to access  
  1374.              the target via iSCSI InitiatorName=xxxx, but 'Frank' tries to access the 
  1375.              target via iSCSI InitiatorName=yyyy, then this login should be rejected.   
  1376.               
  1377.              On the other hand, it is possible that 'Frank' is a roaming user (or a 
  1378.              Storage Administrator) that "owns" several different systems, and thus, 
  1379.              could be authorized to access the target via multiple different iSCSI 
  1380.              initiators. In this case, the ACL needs to have the names of all the  
  1381.              initiators through which 'Frank' can access the target. 
  1382.               
  1383.              There may be other more elaborate ACL approaches, which can also be 
  1384.              deployed to provide the installation/user with even more security with 
  1385.              flexibility. 
  1386.               
  1387.              The above discussion is trying to inform the reader that, not only is 
  1388.              there a need for access control dealing with iSCSI Initiator Node Names, 
  1389.              but in certain iSCSI environments there might also be a need for other 
  1390.              complementary security identifiers. 
  1391.               
  1392.               
  1393.           5. References 
  1394.                  [1]  Pascoe, R., "Building Networks on the Fly", in IEEE 
  1395.                       Spectrum,March, 2002. 
  1396.               
  1397.                  [2]  John, R., "UPnP, Jini and Salutation- A look at some popular 
  1398.           Voruganti, K.  Informational-Track  Expires August 2002 
  1399.  
  1400.           Internet Draft         Naming and Discovery                28 
  1401.                                                                          
  1402.                                                                           
  1403.                                                                          
  1404.            
  1405.                       coordination frameworks for future networked devices", 
  1406.                       http://www.cswl.com/whiteppr/tech/upnp.html", June 17, 1999. 
  1407.               
  1408.                  [3]  http://www.srvloc.org 
  1409.               
  1410.                  [4]  Freed, N., "Behavior of and Requirements for Internet 
  1411.                       Firewalls", RFC 2979, October 2000. 
  1412.               
  1413.                  [5]  ANSI/IEEE Std 802-1990, Name: IEEE Standards for Local and 
  1414.                       Metropolitan Area Networks: Overview and Architecture 
  1415.               
  1416.                  [6]  Kessler, G. and Shepard, S., "A Primer On Internet and TCP/IP 
  1417.                       Tools and Utilities", RFC 2151, June 1997. 
  1418.               
  1419.                  [7]  Satran, J., Sapuntzakis, C., Wakeley, M., Von Stamwitz, P., 
  1420.                      Haagens, R., Chadalapaka, M., Zeidner, E., Dalle Ore, L., Klein, 
  1421.                      Y., "iSCSI", draft-ietf-ips-iscsi-07.txt, July, 2001. 
  1422.               
  1423.                  [8]  Gibbons, K., Tseng, J. and Monia, C., "iSNS Internet Storage 
  1424.                       Name Service", draft-tseng-ips-isns-04.txt, July 2001. 
  1425.               
  1426.                  [9]  RFC 1737, "Functional Requirements for Uniform Resource Names". 
  1427.               
  1428.                  [10] RFC 1035, "Domain Names - Implementation and Specification". 
  1429.                       OUI - "IEEE OUI and Company_Id Assignments", 
  1430.                       http://standards.ieee.org/regauth/oui/index.shtml 
  1431.               
  1432.                  [11]EUI - "Guidelines for 64-bit Global Identifier (EUI-64) 
  1433.                       Registration Authority 
  1434.                       http://standards.ieee.org/regauth/oui/tutorials/EUI64.html 
  1435.               
  1436.                  [12] RFC 2396, "Uniform Resource Identifiers". 
  1437.               
  1438.                  [13] RFC 2276, "Architectural Principles of URN Resolution". 
  1439.               
  1440.                  [14] RFC 2483, "URI Resolution Services". 
  1441.               
  1442.                  [15] RFC 2141, "URN Syntax". 
  1443.               
  1444.                  [16] RFC 2611, "URN Namespace Definition Mechanisms". 
  1445.               
  1446.                  [17] RFC 2608, SLP Version 2. 
  1447.               
  1448.                  [18] RFC 2610, DHCP Options for the Service Location Protocol. 
  1449.               
  1450.                  [19] P. Sarkar et al, "A Standard for Bootstrapping Clients using 
  1451.           Voruganti, K.  Informational-Track  Expires August 2002 
  1452.  
  1453.           Internet Draft         Naming and Discovery                29 
  1454.                                                                          
  1455.                                                                           
  1456.                                                                          
  1457.            
  1458.                       the iSCSI Protocol", draft-ietf-ips-iscsi-boot-03. 
  1459.               
  1460.                  [21] M. Bakke et al,"Finding iSCSI Targets and Name Servers using 
  1461.                       SLP", draft-ietf-ips-iscsi-slp-01.txt, July, 2002. 
  1462.               
  1463.                  [22] Sun Microsystems, "Java Language Specification", section 7.7 
  1464.                       "Unique Package Names", 2000, 
  1465.                       http://java.sun.com/docs/books/jls/second_edition/html/ 
  1466.                       jTOC.doc.html. 
  1467.               
  1468.                  [23] Flanagan, et. al, "Java in a Nutshell", O'Reilly, 1997. 
  1469.               
  1470.                  [24] P. Hoffman, M. Blanchet, "Preparation of Internationalized 
  1471.                       Strings", draft-hoffman-stringprep-00.txt, September, 2001. 
  1472.               
  1473.                  [25] Unicode Standard Annex #15, "Unicode Normalization Forms", 
  1474.                       http://www.unicode.org/unicode/reports/15 
  1475.               
  1476.                   [26] M. Bakke, "String Profile for iSCSI Names", 
  1477.                    draft-ietf-ips-iscsi-string-prep-00.txt, November 2001. 
  1478.            
  1479.               
  1480.               
  1481.           6. Author's Addresses 
  1482.               
  1483.                 Address comments to: 
  1484.               
  1485.                 Kaladhar Voruganti 
  1486.                 650 Harry Road 
  1487.                 IBM Almaden Research 
  1488.                 San Jose, CA 
  1489.                 USA 
  1490.                 Email: kaladhar@us.ibm.com 
  1491.               
  1492.                 Mark Bakke 
  1493.                 Cisco Systems, Inc. 
  1494.                 6450 Wedgwood Road 
  1495.                 Maple Grove, MN 55311 
  1496.                 Phone: +1 763 398-1054 
  1497.                 Email: mbakke@cisco.com 
  1498.               
  1499.                 Jim Hafner 
  1500.                 IBM Research 
  1501.                 Almaden Research Center 
  1502.                 650 Harry Road 
  1503.                 San Jose, CA 95120   
  1504.           Voruganti, K.  Informational-Track  Expires August 2002 
  1505.  
  1506.           Internet Draft         Naming and Discovery                30 
  1507.                                                                          
  1508.                                                                           
  1509.                                                                          
  1510.            
  1511.                 Phone: +1 408-927-1892 
  1512.                 Email: hafner@almaden.ibm.com 
  1513.               
  1514.            
  1515.                 Josh Tseng 
  1516.                 Nishan Systems 
  1517.                 3850 North First Street 
  1518.                 San Jose, CA 95134 
  1519.                 Phone: 408 519-3749 
  1520.                 Email: jtseng@nishansystems.com 
  1521.               
  1522.               
  1523.                 Marjorie Krueger 
  1524.                 Hewlett-Packard Corporation 
  1525.                 8000 Foothills Blvd 
  1526.                 Roseville, CA 95747-5668, USA 
  1527.                 Phone: +1 916 785-2656 
  1528.                 Email: marjorie_krueger@hp.com 
  1529.               
  1530.                 Phone: (408) 957-4980 
  1531.                 Email: todd_sperry@adaptec.com 
  1532.               
  1533.               
  1534.               
  1535.                 
  1536.           Voruganti, K.  Informational-Track  Expires August 2002 
  1537.  
  1538.           Internet Draft         Naming and Discovery                31 
  1539.                                                                          
  1540.                                                                           
  1541.                                                                          
  1542.            
  1543.              "Copyright (C) The Internet Society (date). All Rights Reserved. 
  1544.                 This document and translations of it may be copied and furnished to 
  1545.                 others,  and derivative works that comment on or otherwise explain it 
  1546.                 or assist  in its implementation may be prepared, copied, published 
  1547.                 and distributed,in whole or in part, without restriction of any kind, 
  1548.                 provided that the above copyright notice and this paragraph are 
  1549.                 included on all such copies and derivative works. However, this 
  1550.                 document itself may not be modified in any way, Full Copyright 
  1551.                 Statement such as by removing the copyright notice or references to 
  1552.                 the Internet Society or other Internet organizations, except as 
  1553.                 needed for the purpose of developing Internet standards in which case 
  1554.                 the procedures for copyrights defined in the Internet Standards 
  1555.                 process must be followed, or as required to translate it into 
  1556.                 languages other than English. 
  1557.               
  1558.                 The limited permissions granted above are perpetual and will not be 
  1559.                 revoked by the Internet Society or its successors or assigns. 
  1560.               
  1561.                 This document and the information contained herein is provided on an 
  1562.                 "As IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING 
  1563.                 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED , INCLUDING 
  1564.                 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 
  1565.                 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 
  1566.                 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE" 
  1567.               
  1568.               
  1569.               
  1570.               
  1571.               
  1572.           Voruganti, K.  Informational-Track  Expires August 2002 
  1573.