二、以Portal为key存储的属性(Portal-Keyed Attributes)
以下所描述的属性,均以Protal IP地址和Protal TCP/UDP端口号为key。每一个Protal都与对应的EID向联结。
1、Portal IP Address
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Portal IP Address 16 16 1 1|16&17|32|64
这个属性记录了能够让存储节点(Storage Node)传送和接受存储数据的IP 地址。这个属性是一个16字节长的字段,它既能够保存IPv4地址,也能够保存IPv6地址。当这个地段存储一个IPv4地址时,他将被转化为一个IPv4-mapped的IPv6地址(可参见 RFC2373)。也就是说,这个字段的前十位被设为0x00,紧跟的两位被设为0xFFFF,最后的两位才保存IPv4的地址。如果保存的是IPv6的地址,那么所有的16位都会用到。Portal IP地址和Portal TCP/UDP端口号作为鉴别一个Portal的key。如果注册一个Portal的话,这个属性是必须的。
2、Portal TCP/UDP Port
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Portal TCP/UDP Port 4 17 1 1|16&17|32|64
这个属性记录了能够让存储节点(Storage Node)传送和接受存储数据的TCP/UDP端口号。16-31 Bit 记录TCP/UPD端口号。Bit 15记录端口的类型,如果Bit15被设置就是UDP,否则就是TCP。0-14Bit被保留。
如果这个属性被设置为0,就表示端口号是这个Entity类型默认的端口号和端口类型(iSCSI默认的是TCP、3260;iFCP默认的是TCP、3420)。Portal IP地址和Portal TCP/UDP端口号作为鉴别一个Portal的key。如果注册一个Portal的话,这个属性是必须的。
3、Portal Symbolic Name
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Portal Symbolic Name 4-256 18 16&17 1|16&17|32|64
一个可变长度(4-256),UTF-8编码,以Null结尾的字符串。Protal Symbolic Name是在iSNS服务器中能够让用户理解的一个Portal的描述。
4、Entity Status Inquiry Interval
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
ESI Interval 4 19 16&17 1|16&17|32|64
这个属性指明了iSNS服务器发送ESI消息的给Network Entity的,以秒计的时间。ESI消息可以被用来一个注册的Portal是否依然可用。为了使iSNS服务器能够正常监视,iSNS客户端一个在DevAttrReg消息中为这个字段注册一个非0值。为了能够接受ESI监视,客户端必须(
MUST)至少为其Portal注册一个ESI Port。
如果iSNS服务器没有接受到期待的ESI应答消息,就应该(
SHALL)尝试N次(N可以配置)重新发送ESI消息。ESI Interval period是服务器期望接受到ESI应答的最长时间。所有重新发送的ESI消息,必须(
MUST)在两个ESI Interval period内发送。如果服务器还是没有接受到任何ESI应答,就应该(
SHALL)注销这个Portal。只有注册了ESI Port字段的Portal才能够以这个方式注销。
如果一个Network Entity对应的所有Portal都因为在至少两个ESI Interval period内没有应答ESI消息,那么Network Entity和所有关联的对象(包括Storage Nodes)都应该(
SHALL)被注销。
如果iSNS服务器不能够支持ESI消息,或者ESI Interval requested,就应该(
SHALL)要么:通过返回“ESI Not Available”Status Code拒绝ESI请求,要么:在注册应答消息的Operation属性中返回一个,任意选定的合适的ESI Interval属性。
如果一个注册了ESI消息的iSNS客户端,没有接受到任何一个发送给自己Portal的ESI消息,那么这个客户端就可以(
MAY)使用Entity_ID为key,向iSNS服务器发送一个DevAttrQry查询消息。如果这个查询消息返回了一个“no such entry”错误,那么这个客户端就应该(
SHALL)关闭所有保持的到iSNS服务器的TCP连接,并且假定没有注册到iSNS数据库。这样的客户端可以(MAY)试图重新注册。
5、ESI Port
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
ESI Port 4 20 16&17 1|16&17|32|64
这个地段包含了iSNS服务器通过Potal IP地址进行ESI监视所使用的,TCP或者UDP的端口号。16-31Bit记录了端口号。如果Bit 15被设置,就是UDP端口号,否则就是TCP。0-14 Bit被保留。
如果iSNS客户端在设个属性性注册了一个可用的TCP或者UDP端口号,那么这个客户端就应该(
SHALL)容许接受ESI消息。如果这个TCP端口被注册过,并且没有使用这个端口的TCP连接,那么这个iSNS客户端,就应该(
SHALL)接受由服务器发出的已指定的端口号的TCP连接。
当一个注册了ESI监视的Network Entity,他所属的所有Portal都没有注册ESI Port属性时,iSNS服务器应该(
SHALL)返回一个错误。如果多个Portal都注册了ESI Port,那么ESI消息应该发送给所有注册Portal中的任何一个。
6、Portal Index
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Portal Index 4 22 16&17 1|16&17|32|64
Portal Index是一个4字节的非0整数,它能够鉴别出iSNS数据库中注册的Portal。在注册Portal时,iSNS服务器就指定了一个未使用过的值给Portal Index。没有注册到iSNS数据库的Portal的Portal Index都必须(
MUST)是不重复的。此外,一个刚被注销的Portal Index在短期内不应该(
SHOULD NOT)被重用。
当Portal IP 和 Portal TCP/UPD Port不适合时,可以(MAY)使用Portal Index来描述注册的Portal。比如,当使用SNMP管理时,参见Section 2.10。
7、SCN Port
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
SCN Port 4 23 16&17 1|16&17|32|64
这个属性包含了iSNS客户端用来从iSNS服务器接受SCN消息的TCP或UDP端口号。如果注册了这个属性,那么这个Portal所有的Storage Node都可以从这个端口接受SCN消息。16-31Bit记录了端口号。如果Bit 15被设置,就是UDP端口号,否则就是TCP。0-14 Bit被保留。
如果iSNS客户端在设个属性性注册了一个可用的TCP或者UDP端口号,那么这个客户端就应该(
SHALL)容许接受SCN消息。如果这个TCP端口被注册过,并且没有使用这个端口的TCP连接,那么这个iSNS客户端,就应该(
SHALL)接受由服务器发出的已制定的端口号的TCP连接。
当一个注册了SCN监视的Network Entity,他所属的所有Portal都没有注册SCN Port属性时,iSNS服务器应该(
SHALL)返回一个错误。如果多个Portal都注册了SCN Port,那么SCN消息应该发送给所有注册Portal其中的任何一个。
8、Portal Next Index
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Portal Next Index 4 24 -- 1|16&17|32|64
这是一个4字节长、指明下一个可用Portal Index的虚拟属性。这个属性只能够查询;如果任何客户端试图为这个属性注册一个值,服务器都应该返回错误代码3(Invalid Registration)。仅仅查询这个属性的消息可以不指定Message Key。
SNMP客户端可能(
MAY)会使用Portal Next Index在iSNS服务器中建立一个新的Entry。SNMP在Section2.10中描述。
9、Portal Security Bitmap
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Portal Security Bitmap 4 27 16&17 1|16&17|32|64
这个4字节长的属性,指定了Portal的一些安全属性的Flag。如果这个字段有意义的话,那么31Bit必须设置为1.31Bit设置为1,表示iSNS服务器能够保存、分发安全协议,和设定iSNS客户端(i.e.iSCSI设备)。如果25-29了有用的信息,那么Bit 30必须设置为1。剩下的Bit被保留用作扩展未来可能的非IKE/IPSec安全机制。
Bit Position Flag Description
------------ ----------------
25 1 = Tunnel Mode Preferred; 0 = No Preference
26 1 = Transport Mode Preferred; 0 = No Preference
27 1 = Perfect Forward Secrecy (PFS) Enabled;
0 = PFS Disabled
28 1 = Aggressive Mode Enabled; 0 = Disabled
29 1 = Main Mode Enabled; 0 = MM Disabled
30 1 = IKE/IPSec Enabled; 0 = IKE/IPSec Disabled
31 (Lsb) 1 = Bitmap VALID; 0 = INVALID
All others RESERVED
10、Portal ISAKMP Phase-1 Proposals
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Portal ISAKMP Phase-1 var 28 16&17 1|16&17|32|64
这个字段包含了IKE Phase-1 proposal,一递减的优先选择的次序列举出可以访问的、能够保护Network Portal发送和接受的所有IKE Phase-2消息的protection suites。它包含了从iSNS客户端到iSNS服务器以及iFCP、iSCSI设备的Phase-2 SAs。这个属性包括,SA payload、proposal payload(s)、和以[ RFC2408]定义的ISAKMP格式转换payload(s)。
当实现者希望定义一个phase-1 SA安全构造,去保护所有phase-2 IKE通讯的时候,可以使用这个属性。如果实现这希望拥有一个不同phase-1 SA 安全构造,去保护每一个Portal接口,就可以使用这个属性,并且Entity Phase-1 Proposal(Section 6.2.6)也应该被设置。
11、Portal ISAKMP Phase-2 Proposals
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Portal ISAKMP Phase-2 var 28 16&17 1|16&17|32|64
这个属性以,ISAKMP格式[ RFC2408]保存的IKE Phase-2 Proposal。其中以逆序保存了Portal发送和接受的、能够访问的Security Proposals。只有当Security Bitmap(6.3.9)的31、30、29字节有效时,这个字段才能够使用。这个属性包括,SA payload、proposal payload(s)、和以[ RFC2408]定义的ISAKMP格式转换payload(s)。
12、Portal Certificate
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Portal Certificate var 31 16&17 1|16&17|32|64
这个属性包含一个或多个Portal绑定的X.509证书。当识别和认证Portal的IP地址和TCP/UDP端口时,可以使用这个证书。更多的关于X.509证书的信息可以访问[ RFC3280]。这个证书必须(
MUST)包含一个空序列的标题名(Subject Name with an empty sequence),并且必须(
MUST)包含一个SubjectAltName extension encoded with the dNSName type。Portal IP Address(6.3.1)应该(
SHALL)保存在证书中的SubjectAltName字段中。