目标端和发起端建立iSCSI会话的方法及设备的制作方法

文档序号:7661184阅读:161来源:国知局

专利名称::目标端和发起端建立iSCSI会话的方法及设备的制作方法
技术领域
:本发明涉及iSCSI技术,尤其涉及一种目标端建立iSCSI会话的方法和相应的iSCSI目标设备,以及一种发起端建立iSCSI会话的方法和相应的iSCSI发起设备。
背景技术
:SCSI(SmallComputerSystemInterface,小型计算机系统接口)协议定义了应用主机和外部设备(包括磁盘、磁带、光盘、打印机、扫描仪等)之间读写操作的过程。iSCSI(InternetSCSI,互联网小型计算机系统接口)是一种基于TCP(TransmissionControlProtocol,传车俞控制协议)/IP(InternetProtocol,互联网协议)的SCSI传输协议,也即发起端(initiator)和目标端(target)之间通过互联网来传输SCSI命令和数据。目前,iSCSI协议常用于在应用主机和存储系统之间进行数据传输,且其典型应用环境如图1所示。应用主机110作为iSCSI连接的发起方,其中通过安装iSCSI发起软件、或装配iSCSIHBA(HostBusAdaptor,主机总线适配卡)卡的方式集成有一个iSCSI发起模块。同时,为了在异常掉电或者重启之后应用主机110能够自动运行iSCSI发起模块,以保证服务依赖(即对某些基于iSCSI存储资源的应用来说,只有在iSCSI服务启动之后,这些应用才能成功运行),iSCSI发起端通常都提供了自动绑定功能。而存储系统120中集成有一个iSCSI目标模块,并会创建多个存储资源以供不同的应用主机110访问,通常使用目标端和发起端之间的对应关系来建立一组访问控制权限。例如,首先创建一个目标端,并为这个目标端分配一个或多个存储资源,其中存储资源通常以巻为单位(相应地,发起端看到的一个巻就是一个磁盘);然后,建立目标端与发起端之间的访问控制权限。存储系统120会根据发起端和目标端之间设置的访问控制权限进行控制,只有对目标端拥有读写权限的发起端才能对该目标端上的存储资源进行读写。同时,目前有些功能完备的存储系统还允许设置存储系统的访问权限(包括读/写和只读等),且常用的存储资源配置表可参见表1中举例。表1:现有技术中存储系统上的iSCSI存储资源配置表举例<table>tableseeoriginaldocumentpage8</column></row><table>应用主机110要对存储系统120上的存储资源进行数据读写操作,必须首先获得存储系统分配给他的iSCSI目标列表,然后再建立到iSCSI目标的连接。在现有技术中,一个带有安全认证的iSCSI发起端到iSCSI目标端的连接过程如图2所示,主要包括下列步骤1)首先,应用主机110和存储系统120之间建立TCP/IP连接;2)接着,应用主机110向存储系统120发送登录请求,并在其中相关特征位上指明需要进行安全认证方式协商(SecurityNegotiation),如果协商不通过(比如密码错误)则会话结束并断开TCP/IP连接,否则继续下面第3步;3)应用主机110向存储系统120发送登录请求,并在其中相关特征位上指明需要进行操作方式协商(OperationNegotiation),相应地存储系统120会在完成协商之后向应用主机110返回登录响应,也即接受应用主机110的登录请求,至此双方建立了会话通道;4)应用主机110向存储系统120开始数据传输;5)在数据传输结束后,应用主机110会向存储系统120发送注销请求,存储系统120则会向应用主机110返回注销响应,至此iSCSI会话结束。通过上述介绍可知,现有iSCSI技术主要是基于发起名和目标名之间的对应关系来进行存储资源访问控制的,因此RFC3720要求iSCSI发起名必须全局唯一。但实际上很难实现发起名全局唯一,比如稍微粗心就可能导致两个应用主机上的发起名相同,更不用说有些用户还可能故意去冒充别人。这样,根据iSCSI技术现状,拥有相同发起名的不同主机将拥有相同的读写访问权限,并且当它们同时进行读写操作时就可能导致数据破坏。另一方面,尽管协议已规定决定一个iSCSI会话的元素包括发起名、目标名、ISID(initiatorsessionID,发起端的会话ID)禾tlTPGT(TargetPortalGroupTag,目标端入口组标记)共四个,然而现有技术中仅利用了发起名和目标名这两个值。这样,由于ISID的值是各个系统不同且可以修改的,将不仅使得现有的权限控制可能出现漏洞,且这种漏洞还可能导致数据的破坏、甚至恶意窃取。
发明内容有鉴于此,本发明目的在于提供一种目标端建立iSCSI会话的方法,该方法不仅可以有效避免非预期情况下多台应用主机使用相同发起名连接存储系统而导致的数据破坏,还可以通过设置相应的过滤规则来防止恶意用户冒充。同时,本发明另一目的在于提供一种iSCSI目标设备,以支持上述方法的实施。此外,本发明再一目的在于提供一种发起端建立iSCSI会话的方法以及相应的iSCSI发起设备,用于与上述目标端建立iSCSI会话的方法以及相应iSCSI目标设备相配合,以支持上述方法的实施。为了达到上述目的,本发明公开了一种目标端建立iSCSI会话的方法。该方法主要包括有步骤T1,目标设备接收来自发起设备的、用于发起iSCSI会话的登录请求报文,且所述登录请求报文中携带有所述发起设备的硬件标识,其中所述硬件标识可能是所述发起设备的CPU(CenterProcessingUnit,中央处理单元)序列号、还可能是所述发起设备的MAC(MediaAccessControl,媒体接入控制)地址;步骤T2,所述目标设备检测是否存在与所述iSCSI会话具有相同发起名的同发起名会话,如果所述检测结果为否则继续执行下列步骤T5,如果所述检测结果为是则继续执行下列步骤T3;步骤T3,所述目标设备判断所述发起设备的硬件标识与所述同发起名会话对应的另一发起设备的硬件标识是否相同,如果判断结果为是则继续执行下列步骤T5,如果判断结果为否则继续执行下列步骤T4;步骤T4,所述目标设备将所述iSCSI会话的访问权限设置为保护性访问权限(包括只读权限、或没有权限等);以及步骤T5,进入所述iSCSI会话的建立流程。对于上述目标端建立iSCSI会话的方法,优选地,在所述步骤T3之后,还包括有步骤T6:所述目标设备向所述发起设备和/或所述另一发起设备发送重名冲突通知,且所述重名冲突通知至少包含所述发起设备的硬件标识和/或所述另一发起设备的硬件标识。对于上述目标端建立iSCSI会话的方法,进一步优选地,所述步骤T6具体为所述目标设备在与所述登录请求报文对应的登录响应报文中加载所述另一发起设备的硬件标识,以将所述另一发起设备已与所述目标设备建立了同发起名会话的重名冲突通知给所述发起设备;和/或,所述目标设备向所述另一发起设备发送携带有所述发起设备的硬件标识的异步消息报文,以将所述发起设备企图与所述目标设备建立同发起名会话的重名冲突通知给所述另一发起设备。对于上述目标端建立iSCSI会话的方法,优选地,所述步骤T1具体包括有步骤T1-1,所述目标设备接收来自所述发起设备的、用于发起iSCSI会话的登录请求报文;步骤Tl-2,在收到所述登录请求报文之后,所述目标设备判断所述登录请求报文是否携带有所述发起设备的硬件标识,如果判断结果为是则继续执行所述步骤T2,如果判断结果为否则继续执行上述步骤T4或下列步骤T7;以及,步骤T7,所述目标设备拒绝建立所述iSCSI会话。对于上述目标端建立iSCSI会话的方法,优选地,在所述步骤T2之前、或在所述步骤T5之前,还包括有步骤T8:所述目标设备根据预定的放行/阻止规则对所述登录请求报文携带的发起设备硬件标识进行过滤;如果所述发起设备的硬件标识通过了所述过滤,则继续执行所述步骤T2或所述步骤T5;或者,如果所述发起设备的硬件标识没能通过所述过滤,则继续执行所述步骤T7,以拒绝建立所述iSCSI会话。为了达到上述另一目的,本发明公开了一种iSCSI目标设备,其主要包括目标模块、同发起名会话检测模块、同硬件标识判断模块、以及保护性权限设置模块。其中所述目标模块用于生成和/或处理iSCSI报文,且所述iSCSI报文用于在所述目标设备与相应的发起设备之间相互传输iSCSI命令/数据。所述同发起名会话检测模块与所述目标模块相连,用于根据来自所述发起设备的、发起iSCSI会话用的登录请求报文,检测所述iSCSI目标设备上是否存在与所述iSCSI会话具有相同发起名的同发起名会话;并将不存在所述同发起名会话的检测结果输出至所述目标模块,以进入所述iSCSI会话的建立流程。所述同硬件标识判断模块,与所述同发起名会话检测模块以及所述目标模块相连,在所述同发起名会话检测模块检测到存在所述同发起名会话时被触发,用于判断所述登录请求报文中携带的所述发起设备的硬件标识与所述同发起名会话对应的另一发起设备的硬件标识是否相同;并将所述硬件标识相同的判定结果输出至所述目标模块,以进入所述iSCSI会话的建立流程。其中所述硬件标识可能是所述发起设备的CPU序列号、还可能是所述发起设备的MAC地址。所述保护性权限设置模块与所述同硬件标识判断模块以及所述目标模块相连,在所述同硬件标识判断模块判定所述硬件标识不同时被触发,用于将所述iSCSI会话的访问权限设置为保护性访问权限(包括只读权限、或没有权限等);并将所述保护性访问权限的设置值输出至所述目标模块,以相应进入所述iSCSI会话的建立流程。对于上述iSCSI目标设备,优选地,其还包括重名冲突通知模块。所述重名冲突通知模块与所述同硬件标识判断模块相连,在所述同硬件标识判断模块判定所述硬件标识不同时被触发,主要用于向所述发起设备和/或所述另一发起设备发送相应的重名冲突通知。其中,向所述发起设备发送的重名冲突通知中至少包含所述另一发起设备的硬件标识,而向所述另一发起设备发送的重名冲突通知中至少包含所述发起设备的硬件标识。对于上述iSCSI目标设备,进一步优选地,所述重名冲突通知模块具体包括响应通知模块和异步通知模块。其中所述响应通知模块与所述同硬件标识判断模块相连以及所述目标模块相连,在所述同硬件标识判断模块判定所述硬件标识不同时被触发,用于在所述目标模块生成的、与所述登录请求报文对应的登录响应报文中加载所述另一发起设备的硬件标识,以将所述另一发起设备已与所述目标设备建立了同发起名会话的重名冲突通知给所述发起设备;而所述异步通知模块与所述同硬件标识判断模块相连,在所述同硬件标识判断模块判定所述硬件标识不同时被触发,用于向所述另一发起设备发送携带有所述发起设备的硬件标识的异步消息报文,以将所述发起设备企图与所述目标设备建立同发起名会话的重名冲突通知给所述另一发起设备。对于上述iSCSI目标设备,优选地,其还包括硬件标识检测模块。所述硬件标识检测模块与所述目标模块以及所述同发起名会话检测模块相连,用于检测所述登录请求报文是否携带有所述发起设备的硬件标识;和/或,所述硬件标识检测模块将没有携带硬件标识的检测结果输出至所述目标模块以拒绝建立所述iSCSI会话,或者在所述检测结果为否时触发所述保护性权限设置模块,或者在所述检测结果为是时触发所述同发起名会话检测模块。对于上述iSCSI目标设备,优选地,其还包括硬件标识过滤模块。所述硬件标识过滤模块与所述目标模块相连,用于根据预定的放行/阻止规则对所述登录请求报文中携带的发起设备硬件标识进行过滤,也即判断所述登录请求报文中携带的发起设备硬件标识是否属于放行对象(或不属于阻止对象);和/或,所述硬件标识过滤模块将没通过的过滤结果输出至所述目标模块,以拒绝建立所述iSCSI会话。为了达到上述再一目的,本发明公开了一种发起端建立iSCSI会话的方法。该方法主要表现为发起设备在其生成的、用于向相应的目标设备发起iSCSI会话的登录请求报文中加载其硬件标识之后,再将所述登录请求报文发送给所述目标设备。一般来说,所述硬件标识可能是所述发起设备的CPU序列号、还可能是所述发起设备的MAC地址;同时,所述硬件标识优选地加载在相应iSCSI报文(比如所述登录请求报文)的数据段(DataSegment)中。对于上述发起端建立iSCSI会话的方法,优选地,所述发起设备在收到来自所述目标设备的、与所述登录请求报文对应的登录响应报文后,判断所述登录响应报文中是否携带有另一发起设备的硬件标识;并且,如果所述判断结果为是,则确定所述目标设备已与所述另一发起设备建立了与所述iSCSI会话具有相同发起名的同发起名会话,从而进行相应的重名冲突处理。同时,本发明还公开了一种iSCSI发起设备,其主要包括发起模块和硬件标识获取模块。其中所述发起模块用于生成和/或处理iSCSI报文,且所述iSCSI报文用于在所述发起设备与相应的目标设备之间传输iSCSI命令/数据。所述硬件标识获取模块与所述发起模块相连,用于获取所述发起设备的硬件标识,并将所述硬件标识输出至所述发起模块;而所述发起模块将在其生成的、用于向所述目标设备发起iSCSI会话的登录请求报文中加载所述硬件标识。一般来说,所述硬件标识可能是所述发起设备的CPU序列号、还可能是所述发起设备的MAC地址;同时,所述硬件标识优选地加载在相应iSCSI报文(比如所述登录请求报文)的数据段(DataSegment)中。对于上述iSCSI发起设备,优选地,其还包括重名冲突处理模块。所述重名冲突处理模块与所述发起模块相连,在所述发起模块检测到来自所述目标设备的iSCSI报文中携带有另一发起设备的硬件标识时被触发,用于对所述另一发起设备和所述目标设备正在建立或已经建立与所述iSCSI会话具有相同发起名会话的重名冲突进行处理。与现有技术相比,本发明具有如下优点首先,通过设置保护性访问权限,本发明能够有效防止非预期情况下多台应用主机使用相同发起名连接存储系统而导致的数据破坏。其次,通过设置相应的过滤规则(比如,在存储系统上增加允许访问的应用主机硬件标识列表),本发明还可以防止恶意的用户冒充。最后,本发明还为简化存储系统上访问资源管理提供了合理的设计基础。比如,对于多台应用主机使用相同发起名的访问情况,通过自动将第二个及往后的登录设置为只读,可以有效减少权限分配的工作量;或者,对于一个用户拥有多台应用主机的情况,为该用户分配一个发起名就能确保该用户可同时使用这些应用主机访问相同的存储资源,而无需分别为该用户的每台应用主机分配发起名,从而简化了相应的权限管理操作。图1为现有技术中iSCSI协议运用的组网示意图;图2为现有技术中iSCSI连接过程的示意图;图3为本发明目标端建立iSCSI会话方法第一优选实施例的流程图;图4为现有技术中iSCSI登录请求报文内协议数据单元的示意图;图5为本发明目标端建立iSCSI会话方法第二优选实施例的流程图;图6为本发明iSCSI目标设备优选实施例之一的结构框图;图7为本发明发起端建立iSCSI会话方法优选实施例之一的流程图;图8为本发明iSCSI发起设备优选实施例之一的结构框图。具体实施方式本发明的上述及其他技术特征和有益效果,将通过参照附图进行的优选实施例介绍得到更充分的阐述。图3给出了本发明所提供一种目标端建立iSCSI会话的方法第一优选实施例的流程图。如图3所示,目标设备在接收到来自发起设备的、用于发起iSCSI会话的登录请求报文(步骤T1-1)之后,其首先判断所述登录请求报文是否携带有所述发起设备的硬件标识(步骤Tl-2)。如果步骤Tl-2判断结果为否,该目标设备则将直接拒绝建立所述iSCSI会话(步骤T7),从而可以禁止没有携带硬件标识的发起端混水摸鱼。然而,如果步骤Tl-2的判断结果为是,该目标设备则继续检测其上是否存在与所述iSCSI会话具有相同发起名的同发起名会话,也即执行图3所示步骤T2。其中,所述硬件标识通常是能够唯一标识所述发起设备的硬件参数,比如CPU(CenterProcessingUnit,中央处理单元)序列号、MAC(MediaAccessControl,媒体接入控制)地址等。同时,所述硬件标识优选地加载在所述登录请求报文的数据段(DataSegment)字段中。一般来说,iSCSI登录请求报文内PDU(ProtocolDataUnit,协议数据单元)的数据结构如图4所示,其中用于协商iSCSI会话的各个参数主要由数据段(文本登录参数)字段携带。继续,如果步骤T2的检测结果为否,则说明在该目标设备上不存在对应所述iSCSI会话的同发起名冲突,从而可以直接执行后续步骤。然而,如果步骤T2的检测结果为是,说明在该目标设备上存在同发起名冲突,则需要根据所述发起设备的硬件标识与所述同发起名会话对应的另一发起设备的硬件标识是否相同分别进行相应的后续处理,也即首先执行图3所示步骤T3、然后再基于步骤T3的判断结果进行相应处理。具体而言如果步骤T3的判断结果为是,则说明使用相同发起名向该目标设备发起iSCSI会话的应该是同一台发起设备。同时,由于在该目标设备上已经基于该发起名和该发起设备建立了iSCSI会话,也就是说该发起名和该发起设备均已通过该目标设备上的相关鉴权操作,从而可以直接进入所述iSCSI会话的建立流程(步骤T5)。进一步,对于发起名和硬件标识(代表发起设备)同时相同的情况,根据iSCSI会话的ISID(InitiatorSessionID,发起端的会话ID)值是否相同分别对应以下两种情况1、当硬件标识相同、但ISID却不同时,对应着同一个应用主机上存在不同发起端(比如一个应用主机上装配有多个HBA卡)的情况,这种情况通常出现在MPIO(Multi-Pathingl/O,多径传输)中,这时直接进入所述iSCSI会话的建立流程(步骤T5)即可。2、然而,当硬件标识相同、且ISID也相同时,对应的是会话重建情形;这时也直接进入所述iSCSI会话的建立流程(步骤T5)即可,只是所述建立流程具体为会话重建流程。如果步骤T3的判断结果为否,则说明使用相同发起名向该目标设备发起iSCSI会话的应该不是同一台发起设备,也就是说在该目标设备上出现了重名冲突。这时,为了避免由重名冲突导致的数据破坏,则必须将当前需要建立的所述iSCSI会话的访问权限设置为保护性访问权P艮(包括只读权限、或没有权限等),也即执行图3所示步骤T4。随后,根据步骤T4中具体保护性访问权限的设置值进入相应的后续处理。比如,当所述保护性访问权限被设置为"只读"权限时,则相应的后续处理可能具体为进入所述iSCSI会话的建立流程,且所述iSCSI会话的访问权限为只读。然而,当所述保护性访问权限被设置为"没有"权限时,则相应的后续处理可能具体为拒绝建立所述iSCSI会话,虽然图3为简化图示考虑没有具体示出这一处理情形,但本领域技术人员应能理解"没有权限"的具体含义所指。并且,如图3所示,在检测到出现了重名冲突之后,该目标设备还优选地向出现重名冲突的发起设备(包括所述发起设备和所述另一发起设备)发送相应的重名冲突通知,也即执行图3所示步骤T6。其中,向所述发起设备发送的重名冲突通知中至少包含所述另一发起设备的硬件标识信息,而向所述另一发起设备发送的重名冲突通知中则至少包含所述发起设备的硬件标识信息。一方面,发送重名冲突通知可以起到提醒恶意冒充的作用。比如,在接收到来自目标设备的重名冲突通知后,如果当前企图连接的发起设备认为已经连接上的另一发起设备是对自己的冒充,则可向相关管理员请求终止该另一发起设备的iSCSI会话;或者,如果已经连接上的另一设备认为当前企图连接的发起设备是对自己的冒充,也可向相关管理员请求拒绝该发起设备的iSCSI会话建立请求。另一方面,即使对于合法访问,发送重名冲突通知也是很有意义的。比如,对于被分配为通过使用同一个发起名共享存储系统上某一存储资源的多个关系密切的用户来说,在其中用户A需要对所述存储资源进行数据修改的情况下,当用户A通过相应的重名冲突通知获知由于合法用户B的在先登录导致其无法完成修改动作(因为其访问权限被置为保护性的只读或没有)时,则将由于确知冲突对象为用户B而使得相关协调工作比较容易。同时,发送重名冲突通知的具体方式可以有很多。比如,该目标设备在与所述登录请求报文对应的登录响应报文中加载所述另一发起设备的硬件标识,使得所述发起设备在接收到所述登录响应报文并对其进行相应处理后能够解析出所述另一发起设备的硬件标识,从而获知所述另一发起设备已与所述目标设备建立了同发起名会话。或者,该目标设备向所述另一发起设备发送携带有所述发起设备的硬件标识的异步消息报文,以将所述发起设备企图与所述目标设备建立同发起名会话的重名冲突通知给所述另一发起设备。鉴于上述步骤T4和T6都是由步骤T3的"Y"判断结果触发,因此步骤T4和T6两者的执行没有必然的先后次序;也即,在具体实施中既可能先执行步骤T4、之后再执行步骤T6(如图3所示),也可能先执行步骤T6、之后再执行步骤T4,还可能步骤T4和T6同时执行。此外,如图3所示,在正式进入所述iSCSI会话的建立流程之前,本发明所提供目标端建立iSCSI会话的方法第一实施例还优选地根据预定的放行/阻止规则对所述登录请求报文携带的发起设备硬件标识进行过滤,也即执行图3所示步骤T8,以判断所述发起设备的硬件标识是否属于该目标设备的放行对象、或者是否属于该目标设备的阻止对象。如果步骤T8的执行结果为是,说明所述发起设备的硬件标识属于该目标设备的放行对象、或者不属于该目标设备的阻止对象,则随后执行图3所示步骤T5,也即进入所述iSCSI会话的建立流程;然而,如果步骤T8的执行结果为否,说明所述发起设备的硬件标识不属于该目标设备的放行对象、或属于该目标设备的阻止对象,则随后执行图3所示步骤T7,也即拒绝建立所述iSCSI会话。通过上述介绍可知,本发明所公开目标端建立iSCSI会话的方法提供了一套基于相同发起名发起iSCSI会话的重名冲突检测及处理机制,通过在检测到重名冲突后设置相应的保护性访问权限来有效避免可能的数据破坏,不仅能够很好地保证数据安全,同时还为存储资源的访问管理提供了可发展的设计基础。同时,在上述重名冲突检测及处理机制之上,本发明所公开目标端建立iSCSI会话的方法还提供了一套基于硬件标识的主机过滤机制,通过设置相应的过滤规则能够有效防止恶意的用户冒充,从而能够很好地杜绝数据窃取。图5给出了本发明所提供一种目标端建立iSCSI会话的方法第二优选实施例的流程图。比较图5和图3可以发现,图5所示第二优选实施例包括的步骤与图3所示第一优选实施例完全相同,两者的区别主要在于步骤执行的次序稍有不同。具体而言-首先,在图3所示第一优选实施例中,根据预定的放行/阻止规则对所述发起设备的硬件标识进行过滤(步骤T8)执行在具体进入所述iSCSI会话的建立流程(步骤T5)之前,也即在完成了上述重名冲突检测及处理机制之后再运行上述基于硬件标识的主机过滤机制;然而,在图5所示第二优选实施例中,所述步骤T8执行在判断是否存在同发起名会话(步骤T2)之前,也即将所述主机过滤机制提到所述重名冲突检测及处理机制之前运行。对此,本领域技术人员应能理解,所述重名冲突检测及处理机制和所述主机过滤机制作为两个相互独立的程序,本发明重点在于两者的融合,而无意对两者的执行次序进行任何限定。其次,在图3所示第一优选实施例中,步骤Tl-2的"N"判断结果将触发步骤T7的执行,也即该目标设备不支持没有携带硬件标识的iSCSI会话建立请求;然而,在图5所示第二优选实施例中,由步骤Tl-2的"N"判断结果将触发步骤T4的执行,也即该目标设备虽然支持没有携带硬件标识的iSCSI会话建立请求,但基于保护数据安全的考虑,却将所述没有携带硬件标识的iSCSI会话请求的访问权限均设置为保护性访问权限。当然,当所述保护性访问权限具体为"只读"权限时,说明图5所示第二优选实施例对没有携带硬件标识的iSCSI会话建立请求的处理方式相对宽松;但是,当所述保护性访问权限具体为"没有"权限时,则图5所示第二优选实施例对没有携带硬件标识的iSCSI会话建立请求的处理方式本质上与图3所示第一优选实施例相同。为了支持上述目标端建立iSCSI会话的方法的实施,本发明还公开了一种iSCSI目标设备,且图6给出了该iSCSI目标设备优选实施例之一的结构框图。如图6所示,目标设备600主要包括目标模块610、同发起名会话检测模块620、同硬件标识判断模块630、保护性权限设置模块640、以及硬件标识检测模块650。其中-目标模块610用于生成和/或处理iSCSI报文,且所述iSCSI报文用于在目标设备600与相应的发起设备800(包括800#A和800#B)之间相互传输iSCSI命令/数据。硬件标识检测模块650与目标模块模块610以及同发起名会话检测模块620相连,主要用于检测来自发起设备800#A的、发起iSCSI会话用的登录请求报文①是否携带有相应发起设备800#A的硬件标识。其中所述硬件标识通常是能够唯一标识对应发起设备800#A的硬件参数,可能是发起设备800#A的CPU(CenterProcessingUnit,中央处理单元)序列号,还可能是发起设备800弁A的MAC(MediaAccessControl,媒体接入控制)地址。如果硬件标识检测模块650确定登录请求报文①没有携带发起设备800#八的硬件标识,则将相应的检测结果②输出至目标模块610,使得目标模块610可以基于该检测结果②拒绝建立所述iSCSI会话。或者,如果硬件标识检测模块650确定登录请求报文①携带有发起设备800#A的硬件标识,则将相应的检测结果输出至同发起名会话检测模块620,以触发该同发起名会话检测模块620进行后续操作。同发起名会话检测模块620与硬件标识检测模块650、目标模块610以及同硬件标识判断模块630相连,主要用于根据来自发起设备800#A的、发起iSCSI会话用的登录请求报文①检测目标设备600上是否存在与该iSCSI会话具有相同发起名的同发起名会话。如果同发起名会话检测模块620确定该目标设备600上不存在所述同发起名会话,则将相应的检测结果③输出至目标模块610,使得目标模块610可以基于该检测结果③相应进入所述iSCSI会话的建立流程。或者,如果同发起名会话检测模块620确定该目标设备600上存在所述同发起名会话,则将相应的检测结果输出至同硬件标识判断模块630,以触发该同硬件标识判断模块630进行后续操作。同硬件标识判断模块630与同发起名会话检测模块620、目标模块610以及保护性权限设置模块640相连,主要用于根据同发起名会话检测模块620的触发而判断登录请求报文①中携带的发起设备800#A的硬件标识与所述同发起名会话对应的另一发起设备(假设为800#B)的硬件标识是否相同。如果同硬件标识判断模块630确定所述两者的硬件标识相同,则将相应的判定结果④输出至目标模块610,使得目标模块610可以基于该判断结果④相应进入所述iSCSI会话的建立流程。并且,与前面目标端建立iSCSI会话的方法中的相关介绍类似,基于判断结果④进入的所述iSCSI会话建立流程或者对应发起设备800#A上的多径传输,或者对应发起设备800#A上某一iSCSI会话的重建。如果同硬件标识判断模块630确定所述两者的硬件标识不同,也即出现了重名冲突,则将相应的判定结果输出至保护性权限设置模块640,以触发该保护性权限设置模块640进行后续操作。保护性权限设置模块640与同硬件标识判断模块630以及目标模块610相连,主要用于根据同硬件标识判断模块630的触发而将所述iSCSI会话的访问权限设置为保护性访问权限,并将该保护性访问权限⑤的设置值输出至目标模块610,使得目标模块610可以基于该保护性访问权限⑤设置值相应建立所述iSCSI会话。与前面目标端建立iSCSI会话的方法中的相关介绍类似,保护性访问权限⑤包括但不限于只读权限、或没有权限。且基于不同的保护性访问权限⑤设置值进行的后续处理也与前述类似,故在此不再重复。对于图6所示iSCSI目标设备600,优选地,其还包括有重名冲突通知模块660。如图6所示,重名冲突通知模块660与同硬件标识判断模块630以及目标模块610相连,在同硬件标识判断模块630确定出现了重名冲突时被触发,主要用于向发起设备800#A和/或另一发起设备800#B发送相应的重名冲突通知⑦。与前面目标端建立iSCSI会话的方法中的相关介绍类似,一般来说,向发起设备800#A发送的重名冲突通知⑦中至少包含另一发起设备800#B的硬件标识,而向另一发起设备800#B发送的重名冲突通知⑦中至少包含发起设备800#A的硬件标识。并且,发送重名冲突通知的意义也与前述相关部分类似,故在此不再重复。同时,重名冲突通知模块660具体发送重名冲突通知⑦的方式有很多。比如,重名冲突通知模块660可能优选地具体包括响应通知模块和异步通知模块。其中响应通知模块主要用于向发起设备80(WA发送重名冲突通知⑦,其具体实施方式是在目标模块610生成的、与登录请求报文①对应的登录响应报文(D中加载另一发起设备800#B的硬件标识,从而将另一发起设备800#B已与目标设备600建立了同发起名会话的重名冲突通知⑦送达发起设备800#A;而异步通知模块主要用于向另一发起设备800#B发送重名冲突通知⑦,其具体实施方式是使目标模块610生成一个携带有发起设备800#A的硬件标识的异步消息报文⑧,并将该异步消息报文⑧输出至另一发起设备800#B,从而将发起设备800#A企图与目标设备600建立同发起名会话的重名冲突通知⑦送达另一发起设备800#B。对于图6所示iSCSI目标设备600,进一步优选地,其还包括硬件标识过滤模块670。如图6所示,硬件标识过滤模块670插接在同发起名会话检测模块620与目标模块610之间、和/或插接在保护性权限设置模块640与目标模块610之间,主要用于根据预定的放行/阻止规则对登录请求报文①中携带的发起设备800#A的硬件标识进行过滤,也即判断发起设备800#入是否属于放行对象(或不属于阻止对象)。如果硬件标识过滤模块670确定发起设备800#A属于目标设备600的放行对象、或者不属于目标设备600的阻止对象,则相应进入所述iSCSI会话的建立流程;然而,如果硬件标识过滤模块670确定发起设备800#A不属于目标设备600的放行对象、或者属于目标设备600的阻止对象,则相应拒绝建立所述iSCSI会话。需要说明的是,图6所示iSCSI目标设备主要用于支持图3所示目标端建立iSCSI会话的方法第一优选实施例。为了支持图5所示目标端建立iSCSI会话的方法第二优选实施例,则有必要对照图5所示相比图3所示步骤执行次序的变动相应修改硬件标识过滤模块670与其它功能模块的连接关系,且该修改对于掌握了本发明原意的本领域技术人员来说并非难事,故在此不再赘述。图7给出了本发明所提供一种发起端建立iSCSI会话的方法优选实施例之一的流程图。如图7所示,发起设备在生成用于向相应目标设备发起iSCSI会话的登录请求报文(步骤II)之后,首先往所述登录请求报文中加载其硬件标识,然后再将所述登录请求报文发送给相应的目标设备(步骤I2)。一般来说,为了支持上述步骤I2的执行,需要该发起设备在发起登录请求之前通过直接访问驱动等方式获得所述硬件标识。而所述硬件标识通常是能够唯一标识该发起设备的硬件参数,比如CPU(CenterProcessingUnit,中央处理单元)序歹U号、MAC(MediaAccessControl,媒体接入控制)地址等。并且,鉴于对现有iSCSI技术中登录请求报文的PDU(ProtocolDataUnit,协议数据单元)来说,其中用于协商iSCSI会话的各个参数主要由数据段(文本登录参数)字段携带,因此所述硬件标识也优选地加载在iSCSI报文中PDU的数据段(文本登录参数)字段中。此外,对应本发明所提供目标端建立iSCSI会话的方法中的重名冲突检测及处理机制,图7所示发起端建立iSCSI会话的方法还优选地包括有进行重名冲突处理的相关步骤。如图7所示,发起设备在收到来自相应目标设备的、与所述登录请求报文对应的登录响应报文(步骤13)之后,首先判断所述登录响应报文中是否携带有另一发起设备的硬件标识(步骤I4)。如果步骤14的判断结果为否,则说明发起设备所需建立的iSCSI会话在相应目标设备上没有引发重名冲突,因而可以直接进入相应的iSCSI会话建立流程,也即执行步骤I5。然而,如果步骤I4的判断结果为是,则说明相应的目标设备已与所述另一发起设备建立了与所述iSCSI会话具有相同发起名的同发起名会话,也即发起设备所需建立的iSCSI会话在相应目标设备上引发了重名冲突,从而需要进行相应的重名冲突处理(步骤I4-Y)。比如,如果当前发起设备认为己经连接上的另一发起设备是对自己的冒充,则可向相关管理员请求终止所述另一发起设备的iSCSI会话。为了支持上述发起端建立iSCSI会话的方法的实施,本发明还公开了一种iSCSI发起设备,且图8给出了该iSCSI发起设备优选实施例之一的结构框图。如图8所示,发起设备800包括发起模块810和硬件标识获取模块820。其中发起模块810用于生成和/或处理iSCSI报文,且所述iSCSI报文用于在发起设备810与相应的目标设备600之间传输iSCSI命令/数据。硬件标识获取模块820与发起模块810相连,主要用于获取发起设备800的硬件标识⑨,并将所述硬件标识⑨输出至发起模块810。从而使得发起模块810能够在其生成的、用于向目标设备600发起iSCSI会话的登录请求报文①中加载所述硬件标识⑨。与前面发起端建立iSCSI会话的方法中的相关介绍类似,一般来说,所述硬件标识⑨可能是发起设备800的CPU序列号,也可能是发起设备800的MAC地址。同时,所述硬件标识⑨优选地加载在相应iSCSI报文(比如所述登录请求报文①)的数据段(文本登录参数)字段中。此外,如图8所示,iSCSI发起设备800还优选地包括重名冲突处理模块830。重名冲突处理模块830与发起模块810相连,主要用于判断来自目标设备600的、与所述登录请求报文①对应的登录响应报文⑥是否携带有其它发起设备的硬件标识。并且,如果重名冲突处理模块830判定登录响应报文⑥中并没有携带其它发起设备的硬件标识,则说明发起设备800所需建立的iSCSI会话并没有在相应的目标设备600上引发重名冲突,从而可以直接进入所述iSCSI会话的建立流程。如果重名冲突处理模块830判定登录响应报文⑥中携带有其它发起设备的硬件标识,则说明目标设备600已与其它发起设备建立了与所述iSCSI会话具有相同发起名的同发起名会话,也即出现了重名冲突,从而需要进行相应的重名冲突处理。比如,如果发起设备800认为已经连接上其它发起设备是对自己的冒充,则可向相关管理员请求终止其它发起设备的iSCSI会话。需要声明的是,上述
发明内容及具体实施方式意在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理内,当可作各种修改、等同替换、或改进。本发明的保护范围以所附权利要求书为准。权利要求1.一种目标端建立iSCSI会话的方法,其特征在于,包括有步骤T1,目标设备接收来自发起设备的、用于发起iSCSI会话的登录请求报文,且所述登录请求报文中携带有所述发起设备的硬件标识;步骤T2,所述目标设备检测是否存在与所述iSCSI会话具有相同发起名的同发起名会话,如果所述检测结果为否则继续执行下列步骤T5,如果所述检测结果为是则继续执行下列步骤T3;步骤T3,所述目标设备判断所述发起设备的硬件标识与所述同发起名会话对应的另一发起设备的硬件标识是否相同,如果判断结果为是则继续执行下列步骤T5,如果判断结果为否则继续执行下列步骤T4;步骤T4,所述目标设备将所述iSCSI会话的访问权限设置为保护性访问权限;以及步骤T5,进入所述iSCSI会话的建立流程。2.如权利要求1所述目标端建立iSCSI会话的方法,其特征在于,在所述步骤T3之后,还包括有-步骤T6,所述目标设备向所述发起设备和/或所述另一发起设备发送相应的重名冲突通知,且所述重名冲突通知至少包含所述发起设备的硬件标识和/或所述另一发起设备的硬件标识。3.如权利要求2所述目标端建立iSCSI会话的方法,其特征在于,所述步骤T6具体为所述目标设备在与所述登录请求报文对应的登录响应报文中加载所述另一发起设备的硬件标识,以将所述另一发起设备己与所述目标设备建立了同发起名会话的重名冲突通知给所述发起设备;和/或所述目标设备向所述另一发起设备发送携带有所述发起设备的硬件标识的异步消息报文,以将所述发起设备企图与所述目标设备建立同发起名会话的重名冲突通知给所述另一发起设备。4.如权利要求1至3任一所述目标端建立iSCSI会话的方法,其特征在于,所述步骤T1具体包括有步骤T1-1,所述目标设备接收来自所述发起设备的、用于发起iSCSI会话的登录请求报文;步骤Tl-2,所述目标设备判断所述登录请求报文是否携带有所述发起设备的硬件标识,如果判断结果为是则继续执行所述步骤T2,如果判断结果为否则继续执行上述步骤T4或下列步骤T7;以及步骤T7,所述目标设备拒绝建立所述iSCSI会话。5.如权利要求4所述目标端建立iSCSI会话的方法,其特征在于,在所述步骤T2之前、或在所述步骤T5之前,还包括有步骤T8,所述目标设备根据预定的放行/阻止规则对所述登录请求报文携带的发起设备硬件标识进行过滤,如果所述发起设备的硬件标识通过了所述过滤则继续执行所述步骤T2或所述步骤T5,如果所述发起设备的硬件标识没通过所述过滤则继续执行所述步骤T7。6.如权利要求4所述目标端建立iSCSI会话的方法,其特征在于,所述保护性访问权限具体为只读权限、或没有权限。7.如权利要求4所述目标端建立iSCSI会话的方法,其特征在于,所述硬件标识具体为所述发起设备的CPU序列号、或所述发起设备的MAC地址。8.如权利要求4所述目标端建立iSCSI会话的方法,其特征在于,所述硬件标识加载相应iSCSI报文的数据段中。9.一种iSCSI目标设备,包括用于生成和/或处理iSCSI报文的目标模块,且所述iSCSI报文用于在所述目标设备与相应的发起设备之间相互传输iSCSI命令/数据;其特征在于,还包括同发起名会话检测模块,与所述目标模块相连,用于根据来自所述发起设备的、发起iSCSI会话用的登录请求报文,检测所述iSCSI目标设备上是否存在与所述iSCSI会话具有相同发起名的同发起名会话;并将不存在所述同发起名会话的检测结果输出至所述目标模块,以进入所述iSCSI会话的建立流程;同硬件标识判断模块,与所述同发起名会话检测模块以及所述目标模块相连,在所述同发起名会话检测模块检测到存在所述同发起名会话时被触发,用于判断所述登录请求报文中携带的所述发起设备的硬件标识与所述同发起名会话对应的另一发起设备的硬件标识是否相同;并将所述硬件标识相同的判定结果输出至所述目标模块,以进入所述iSCSI会话的建立流程;以及保护性权限设置模块,与所述同硬件标识判断模块以及所述目标模块相连,在所述同硬件标识判断模块判定所述硬件标识不同时被触发,用于将所述iSCSI会话的访问权限设置为保护性访问权限;并将所述保护性访问权限的设置值输出至所述目标模块,以相应进入所述iSCSI会话的建立流程。10.如权利要求9所述的iSCSI目标设备,其特征在于,还包块括重名冲突通知模块所述重名冲突通知模块与所述同硬件标识判断模块相连,在所述同硬件标识判断模块判定所述硬件标识不同时被触发,用于向所述发起设备和/或所述另一发起设备发送相应的重名冲突通知;其中,向所述发起设备发送的重名冲突通知中至少包含所述另一发起设备的硬件标识,而向所述另一发起设备发送的重名冲突通知中至少包含所述发起设备的硬件标识。11.如权利要求IO所述的iSCSI目标设备,其特征在于,所述重名冲突通知模块具体包括响应通知模块,与所述同硬件标识判断模块相连以及所述目标模块相连,在所述同硬件标识判断模块判定所述硬件标识不同时被触发,用于在所述目标模块生成的、与所述登录请求报文对应的登录响应报文中加载所述另一发起设备的硬件标识,以将所述另一发起设备已与所述目标设备建立了同发起名会话的重名冲突通知给所述发起设备;和/或异步通知模块,与所述同硬件标识判断模块相连,在所述同硬件标识判断模块判定所述硬件标识不同时被触发,用于向所述另一发起设备发送携带有所述发起设备的硬件标识的异步消息报文,以将所述发起设备企图与所述目标设备建立同发起名会话的重名冲突通知给所述另一发起设备。12.如权利要求9至ll任一所述的iSCSI目标设备,其特征在于,还包括硬件标识检测模块所述硬件标识检测模块与所述目标模块以及所述同发起名会话检测模块相连,用于检测所述登录请求报文是否携带有所述发起设备的硬件标识;和/或,所述硬件标识检测模块将没有携带硬件标识的检测结果输出至所述目标模块以拒绝建立所述iSCSI会话,或者在所述检测结果为否时触发所述保护性权限设置模块,或者在所述检测结果为是时触发所述同发起名会话检测模块。13.如权利要求12所述的iSCSI目标设备,其特征在于,还包括硬件标识过滤模块所述硬件标识过滤模块与所述目标模块相连,用于根据预定的放行/阻止规则对所述登录请求报文中携带的发起设备硬件标识进行过滤;和/或,所述硬件标识过滤模块将没通过的过滤结果输出至所述目标模块,以拒绝建立所述iSCSI会话。14.如权利要求12所述的iSCSI目标设备,其特征在于,所述保护性访问权限具体为只读权限、或没有权限。15.如权利要求12所述的iSCSI目标设备,其特征在于,所述硬件标识加载在相应iSCSI报文的数据段中。16.如权利要求12所述的iSCSI目标设备,其特征在于,所述硬件标识具体为所述发起设备的CPU序列号、或所述发起设备的MAC地址。17.—种发起端建立iSCSI会话的方法,其特征在于发起设备在其生成的、用于向相应的目标设备发起iSCSI会话的登录请求报文中加载其硬件标识之后,再将所述登录请求报文发送给所述目标设备。18.如权利要求17所述发起端建立iSCSI会话的方法,其特征在于所述发起设备在收到来自所述目标设备的、与所述登录请求报文对应的登录响应报文后,判断所述登录响应报文中是否携带有另一发起设备的硬件标识;和/或,如果判断结果为是,则确知所述目标设备已与所述另一发起设备建立了与所述iSCSI会话具有相同发起名的同发起名会话,并进行相应的重名冲突处理。19.如权利要求17或18所述发起端建立iSCSI会话的方法,其特征在于,所述硬件标识加载在相应iSCSI报文的数据段中。20.如权利要求17或18所述发起端建立iSCSI会话的方法,其特征在于,所述硬件标识具体为所述发起设备的CPU序列号、或所述发起设备的MAC地址。21.一种iSCSI发起设备,包括用于生成和/或处理iSCSI报文的发起模块,且所述iSCSI报文用于在所述发起设备与相应的目标设备之间传输iSCSI命令/数据;其特征在于,还包括硬件标识获取模块,与所述发起模块相连,用于获取所述发起设备的硬件标识,并将所述硬件标识输出至所述发起模块;而所述发起模块将在其生成的、用于向所述目标设备发起iSCSI会话的登录请求报文中加载所述硬件标识。22.如权利要求21所述的iSCSI发起设备,其特征在于,还包括重名冲突处理模块,与所述发起模块相连,在所述发起模块检测到来自所述目标设备的iSCSI报文中携带有另一发起设备的硬件标识时被触发,用于对所述另一发起设备和所述目标设备正在建立或已经建立与所述iSCSI会话具有相同发起名会话的重名冲突进行处理。23.如权利要求21或22所述的iSCSI发起设备,其特征在于,所述硬件标识加载在相应iSCSI报文的数据段中。24.如权利要求21或22所述的iSCSI发起设备,其特征在于,所述硬件标识具体为所述发起设备的CPU序列号、或所述发起设备的MAC地址。全文摘要本发明公开了一种目标端建立iSCSI会话的方法和相应目标设备,以及一种发起端建立iSCSI会话的方法和相应发起设备。其中,所述目标端建立iSCSI会话的方法主要包括目标设备接收到发起设备用于发起iSCSI会话的登录请求报文后,首先检测其上是否存在与所述iSCSI会话具有相同发起名的同发起名会话;如果检测结果为是,则继续判断所述发起设备的硬件标识与所述同发起名会话对应的另一发起设备的硬件标识是否相同;如果判断结果为否,则将所述iSCSI会话的访问权限设置为保护性访问权限;最后,基于上述操作相应进入所述iSCSI会话的建立流程。本发明可以有效避免相同发起名导致的数据破坏,还可以防止恶意用户冒充。文档编号H04L12/56GK101119383SQ200710151300公开日2008年2月6日申请日期2007年9月19日优先权日2007年9月19日发明者景冬生申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1