一、ISNS属性概要
1、字段属性介绍
1)、长度(Length):指明属性的长度,以字节为单位。属性以TLV格式存储,以null结束。长度总是以4字节对齐。
2)、标签(Tag):由IANA定义的用来识别属性的整数。所以未定义的Tag,均为保留值。
3)、注册键值(Reg Key):对应为DevAttrReg消息的Object Key字段。指明了需要登陆到数据库中的属性的键值。
4)、查询键值(Query Key):对应为DevAttrQry消息的Message Key和Object Key字段。指明了可能的需要从数据库中查询的属性的键值。
2、具体的消息列表......好多。
二、以EID为key存储的属性(Entity Identifier-Keyed Attributes)
1、Entity Identifier(EID)
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Entity Identifier (EID) 4-256 1 1 1|2|16&17|32|64
EID是描述Network Entity可变长、UTF-8编码、以Null结尾的字符串。EID是在iSNS服务器中识别Network Entity的Key。这个属性的长度为4-256。
如果iSNS客户端在注册的时候没有提供EID,iSNS服务器应该(
SHALL)产生一个在iSNS服务器中唯一的EID。产生的EID应该(
SHALL)在注册的应答消息中返回。
如果iSNS部署在基于DNS的环境中,EID可能用于保存iSCSI或者iFCP设备的FQDN(Fully Qualified Domain Name)。那么大于255字节FQDNs的一定不能(
MUST NOT)使用。
如果没有使用FQDNs,那么iSNS服务器应该自己产生EIDs。iSNS产生的EIDs必须(
MUST)以“isns:”字符串开头。iSNS客户端提供的EIDs一定不能(
MUST NOT)以“isns:”字符串开头。
EIDs在保存的iSNS数据库之前,必须(
MUST)按照[NAMEPREP]模版格式化。
2、Entity Protocol
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Entity Protocol 4 2 1 1|2|16&17|32|64
Entity Protocol是一个4字节长的整数,它指出在注册Network Entity的存储块协议(Block storage protocol)。Entity Protocol的值由IANA分配和维护。初始的值为:
Value Entity Protocol Type
----- --------------------
1 No Protocol
2 iSCSI
3 iFCP
All others To be assigned by IANA
“No Protocol”指出Network Entity不支持任何IP存储块协议(IP block storage protocol)。控制节点(Control Node)或者监视节点(Monitoring Node)可能(不是必须)使用这个值。
初次注册Network Entity时,这个属性是必须的。
3、Management IP Address
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Management IP Address 16 3 1 1|2|16&17|32|64
这个字段包含了通过iSNSMIB,控制Network Entity和其下的所有存储节点(Storage Nodes)的IP地址。一些实现可能在自己定义的管理协议中使用了这个IP地址。Management IP Address是一个16字节长的字段,他既能够存储IPv4地址,也能够存储IPv6地址。当这个地段存储一个IPv4地址时,他将被转化为一个IPv4-mapped的IPv6
地址(可参见 RFC2373)。也就是说,这个字段的前十位被设为0x00,紧跟的两位被设为0xFFFF,最后的两位才保存IPv4的地址。如果保存的是IPv6的地址,那么所有的16位都会用到。如果这个地段没有被设定,那么通过联合管理(in-band management),可以将IP假定为,Network Entity所属的Portals中的任何一个IP地址。
4、Entity Registration Timestamp
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Timestamp 8 4 -- 1|2|16&17|32|64
这个字段指明iSNS客户端最近的Network Entity注册、关联对象的属性被更新、查询的时间。这个字段记录了从标准基本时间GMT1970年1月1号00:00:00到字段更新时的秒数。这个字段不能直接重新注册。这个timestamp的TLV格式也包含在SCN和ESI消息中。
5、Protocol Version Range
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Protocol Version Range 4 5 1 1|2|16&17|32|64
这个字段包含了Network Entity支持的存储块协议(Block storage protocol)的最低和最高版本号。最前两位是最高版本号,最后两位是最低版本号。如果这个范围没有被指定,那么这个Network Entity就被假定支持所有这个协议的版本。值0xFFFF指出没有最低和最高。如果Network Entity不支持这个协议,这个字段就应该被设为0。
6、Registration Period
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Registration Period 4 6 1 1|2|16&17|32|64
这个4字节的无符号整型,指出了一个iSNS服务器在没有接受到iSNS客户端应答时的最长秒数。没有注册ESI消息的Network Entity必须(
MUST)有一个非0的Registration Period。如果iSNS客户端没有要求Registration Period,并且这个客户端也不支持ESI消息,那么iSNS服务器就应该(
SHALL)将Registration Period设置为一个非0的值。针对实现而异的Registration Period应该(
SHALL)在registration应答消息中返回给iSNS客户端。只有当Network Entity接受ESI消息的时候,Registration Period被设置为0,表示它没有使用。
当一个iSNS消息在Registration Period用完时还没有接受到应答,该iSNS的注册应该(
SHALL)从iSNS数据库中删除。从iSNS客户端接受到任何iSNS协议消息时,应该自动刷新Registration Period和Registration Timestamp。为了防止被服务器删除,iSNS客户端应该在Registration Period内发送一条iSNS协议消息给iSNS服务器。这个消息应该像查询自身的某个属性的消息一样简单,使用关联的iSCSI Name或者FC Port Name WWPN作为Source attribute。
针对支持多个存储节点(Storage Node)对象的Network Entity的iSNS客户端,从任何一个存储节点(Stotage Node)接受到iSNS消息,就可以刷新这个Network Entity中所有的存储节点(Storage Node)。
如果ESI被要求作为Portal注册的一部分,那么当iSNS服务器接受到ESI应答消息的时候,应该(SHALL)刷新注册。
7、Entity Index
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Entity Index 4 7 1 1|2|16&17|32|64
Entity Index是一个非0无符号整型,它能够在iSNS服务器中识别每一个Network Entity。在Network Entity注册之时,iSNS服务器就为其分配了一个未使用过的Entity Index。每一个iSNS数据库中的Network Entity必须(
MUST)被分配一个,没有被其他Network Entity使用的Entity Index。而且,当一个Network Entity注销后,它对应的Entity Index在短期内也不应该(
SHOULD NOT)使用。
当EIDs太长后者其他不合适时,可以(
MAY)使用Entity Index来表示Network Entity。比如,当使用SNMP管理时,如Section 2.10所描述的。
8、Entity Next Index
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Entity Next Index 4 8 -- 1|2|16&17|32|64
这是一个虚拟的属性,包含了4字节的整型,指明下一个可用的Entity Index的值。这个属性只能够查询;如果任何客户端试图为这个属性注册一个值,服务器都应该返回错误代码3(Invalid Registration)。仅仅查询这个属性的消息可以不指定Message Key。
SNMP客户端可能(
MAY)会使用Entity Next Index在iSNS服务器中建立一个新的Entry。SNMP在Section2.10中描述。
9、Entity ISAKMP Phase-1 Proposals
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Entity ISAKMP Phase-1 var 11 1 1|2|16&17|32|64
这个字段包含了IKE Phase-1 proposal,一递减的优先选择的次序列举出可以访问的、能够保护Network Entity发送和接受的所有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接口,就可以使用这个属性。
10、Entity Certificate
Attributes Length Tag Reg Key Query Key
---------- ------ --- ------- ---------
Entity Certificate var 12 1 1|2|16&17|32|64
这个属性包含一个或多个Network Entity绑定的X.509证书。当客户端希望其他客户端去鉴定和访问它提供的服务的时候,可以上载证书。更多的关于X.509证书的信息可以访问[ RFC3280]。这个证书必须(
MUST)包含一个空序列的标题名(Subject Name with an empty sequence),并且必须(
MUST)包含一个SubjectAltName extension encoded with the dNSName type。EIDs必须(
MUST)保存在证书中的SubjectAltName字段中。