专利名称:iSCSI通信方法以及相应的发起设备和目标设备的制作方法
技术领域:
本发明涉及iSCSI技术,尤其涉及主要应用在目标设备位于NAT设 备之后情况下的一种iSCSI通信方法,以及相应的iSCSI发起设备和iSCSI目标设备。
背景技术:
iSCSI(internet Small Computer System Interface,基于互联网的SCSI) 协议是一种基于TCP (Transmission Control Protocol,传输控制协议)/IP (Internet Protocol,互联网协议)的SCSI (Small Computer System Interface,小型计算机系统接口 )传输协议,其在应用主机和存储系统之 间利用TCP/IP封装来可靠传输SCSI命令/数据。iSCSI协议的典型应用环境如图1所示,应用主机110与存储系统 120之间通过IP网络130来传输SCSI命令和数据。其中,应用主机IIO 中安装有发起模块(initiator),因此通常又称为发起端;而存储系统120 中集成有目标模块(target),因此通常又称为目标端。然而,由于IP地址不足,现在存在大量的企业都采用私有地址组网 (RFC1918),并通过NAT (Network Address Translation,网络地址转 换)来控制与公共网络的通信。NAT能够完成私有编址与公网编址的相 互转化,还可通过设置相应的包过滤规则让不满足条件的IP (Internet Protocol,因特网协议)包不能够穿透NAT。图2给出了应用NAT的典型组网示意图。如图2所示,假设私网内 设备150的私网地址为10.1.1.5,当其要访问外网130时,则由NAT设 备140会分配一个公网地址(比如210.222.10.12)给它,并相应生成一 个私有地址10.1.1.5与公网地址210.222.10.12的转换表项。这样,私网 内设备150发往外网130的报文中的源地址10.1.1.5将由NAT设备140
替换成210.222.10.12之后再发出,而外网130发往公网地址210.222.10.12 的报文中的目的地址也将由NAT设备140替换成10.1.1.5之后再转发给 设备150。NAT的运用为IP网络带来了很多好处,比如,缓解了IPv4构架下 因特网IP地址紧张的问题,提高了私有网络内部的安全性和可控性。但 是,在图2所示的NAT应用组网环境下,如果位于NAT设备140之后 的私网内设备150不主动连接位于外网130中的主机,则NAT设备140 中就不会存在设备150的地址转换表项,这也就意味着外网130中的主 机不能主动发起与设备150的通信连接。于是,对于目前总是先由发起端主动提出iSCSI登录请求、再由目 标端做出响应该iSCSI登录请求的现有iSCSI连接建立技术来说,当目标 端120如图3所示位于NAT设备140之后时,则外网130中的发起端110 将无法与处于私网中的目标端120建立iSCSI连接。发明内容有鉴于此,本发明目的在于提供一种iSCSI通信方法,使得即使目 标设备位于NAT设备之后,相应的发起设备还是能够穿越所述NAT设 备与所述目标设备建立iSCSI连接并相互传输iSCSI命令/数据。同时,本发明另一目的在于提供一种iSCSI发起设备,以支持上述 方法的实施。此外,本发明再一目的在于提供一种iSCSI目标设备,用于与上述 iSCSI发起设备相配合,以支持上述方法的实施。为了达到上述目的,本发明公开了一种iSCSI通信方法,主要应用 在目标设备位于NAT设备之后的情况下。该iSCSI通信方法主要包括有 所述目标设备将其私网地址经由所述NAT设备告知发起设备; 所述发起设备或所述目标设备分别利用UDP (User Data Protocol, 用户数据报协议)或TCP (Transmit Control Protocol,传输控制协议)等 网络传输协议封装各自生成的iSCSI报文,并将所述封装而成的报文经 由所述NAT设备转发至对方;以及 所述发起设备或所述目标设备分别解封装处理来自对方的封装有iSCSI报文的报文,并根据提取出来的iSCSI报文进行相应处理。对于上述iSCSI通信方法,优选地,所述生成及封装iSCSI报文的具体操作包括有所述发起设备或所述目标设备生成一个向对方传输iSCSI命令/数据 的iSCSI报文,其中向所述目标设备传输iSCSI命令/数据的iSCSI报文 的目的地址为所述目标设备的私网地址;所述发起设备或所述目标设备利用所述UDP (User Data Protocol, 用户数据报协议)或TCP (Transmit Control Protocol,传输控制协议)等 网络传输协议封装所述iSCSI报文,且封装而成的报文的目的地址为所 述目标设备的公网地址或所述发起设备的地址;以及所述发送设备或所述目标设备将所述封装而成的报文经由所述NAT 设备发送给对方。对于上述iSCSI通信方法,优选地,所述提取并处理iSCSI报文的具 体操作包括有'所述发起设备或所述目标设备解封装处理来自对方的封装有iSCSI 报文的报文,以提取出其中的iSCSI报文;以及所述发起设备或所述目标设备根据所述提取出来的iSCSI报文进行 相应处理。对于上述iSCSI通信方法,优选地,将所述目标设备的私网地址告 知所述发起设备的具体操作包括有所述目标设备生成一个至少包含其私网地址的消息报文,并将所述 消息报文发送给述NAT设备;以及在收到所述消息报文后,所述NAT设备生成与所述目标设备对应的 地址转换表项,并将所述消息报文转发给所述发起设备。对于上述iSCSI通信方法,进一步优选地,所述消息报文中还包含 所述目标设备预先给所述发起设备分配的存储资源信息。对于上述iSCSI通信方法,更进一步优选地,每隔预定时间重复将 所述目标设备的私网地址告知所述发起设备的操作。
为了达到上述另一目的,本发明公开了一种iSCSI发起设备,主要 应用在相应的iSCSI目标设备位于NAT设备之后的情况下。该iSCSI发 起设备主要包括发起模块,报文封装模块,以及报文提取模块。其中-所述发起模块用于生成和/或处理iSCSI报文,且所述iSCSI报文用于在 所述iSCSI发起设备与所述iSCSI目标设备之间相互传输iSCSI命令/数 据;所述报文封装模块与所述发起模块相连,用于利用UDP (User Data Protocol,用户数据报协议)或TCP (Transmit Control Protocol,传输控 制协议)等网络传输协议封装所述发起模块生成的iSCSI报文,并将所 述封装而成的报文发送至所述iSCSI目标设备;而所述报文提取模块与 所述发起模块相连,用于解封装处理来自所述iSCSI目标设备的封装有 iSCSI报文的报文,并将提取出来的iSCSI报文输出至所述发起模块以进 行相应处理。对于上述iSCSI发起设备,优选地,其还包括对端地址获知模块。 所述对端地址获知模块与所述发起模块和/或所述报文封装模块相连,用 于分析来自所述iSCSI目标设备的、至少包含所述iSCSI目标设备私网地 址信息的消息报文。并且,所述对端地址获知模块将其分析得到的所述 iSCSI目标设备私网地址输出给所述发起模块,以使得所述发起模块可以 将所述私网地址用作向所述iSCSI目标设备发送iSCSI报文的目的地址; 和/或所述对端地址获知模块将其分析得到的所述iSCSI目标设备公网地 址输出给所述报文封装模块,以使得所述报文封装模块可以将所述公网 地址用作向所述iSCSI目标设备发送封装报文的目的地址。为了达到上述再一目的,本发明公开了一种iSCSI目标设备,主要 应用在所述iSCSI目标设备位于NAT设备的情况下。该iSCSI目标设备 主要包括目标模块,私网地址通知模块,报文封装模块,以及报文提取 模块。其中所述目标模块用于生成和/或处理iSCSI报文,且所述iSCSI 报文用于在所述iSCSI目标设备与相应的iSCSI发起设备之间相互传输 iSCSI命令/数据;所述私网地址通知模块用于将所述iSCSI目标设备的 私网地址经由所述NAT设备告知所述iSCSI发起设备;所述报文封装模 块与所述目标模块相连,用于利用UDP (User Data Protocol,用户数据 报协议)或TCP (Transmit Control Protocol,传输控制协议)等网络传输 协议封装所述目标模块生成的iSCSI报文,并将所述封装而成的报文发 送至所述iSCSI发起设备;而所述报文提取模块与所述目标模块相连, 用于解封装处理来自所述发起设备的封装有iSCSI报文的报文,并将提 取出来的iSCSI报文输出至所述目标模块以进行相应处理。对于上述iSCSI目标设备,优选地,所述私网地址通知模块还用于 将所述iSCSI目标设备或所述目标模块预先给所述iSCSI发起设备分配的 存储资源信息告知所述iSCSI发起设备。对于上述iSCSI目标设备,进一步优选地,所述私网地址通知模块 每隔预定时间重复一次将所述iSCSI目标设备的私网地址经由所述NAT 设备告知所述iSCSI发起设备的操作。与现有技术相比,本发明具有如下优点首先,通过由位于NAT设备之后的目标设备预先将其私网地址告知 相应的发起设备,本发明使得外网中的应用主机(发起设备)能够穿越 NAT访问内网中的存储系统(目标设备)。其次,通过将iSCSI报文封装在诸如UDP或TCP之类的网络传输协 议报文中,也即在应用主机(发起设备)和存储系统(目标设备)建立 UDP或TCP隧道来传输iSCSI报文,本发明有效避免了中间网络对 iSCSI报文的影响。最后,应用本发明技术方案时无需对NAT设备进行任何更改,从而 使得本发明技术方案具有很好的通用性。
图1为现有技术中iSCSI协议运用的组网示意图;图2为现有技术中NAT运用的组网示意图;图3为现有技术中iSCSI目标端位于NAT设备之后的组网示意图; 图4为本发明iSCSI通信方法实施例之一的报文流转图; 图5为本发明iSCSI发起设备实施例之一的结构框图; 图6为本发明iSCSI目标设备实施例之一的结构框图。
具体实施方式
本发明的上述及其他技术特征和有益效果,将通过参照附图进行的 优选实施例介绍得到更充分的阐述。首先,请参阅图4,其为本发明所提供iSCSI通信方法的流程图。如 图4所示,该方法主要应用在作为iSCSI目标端的存储系统120位于NAT 设备140之后、而作为iSCSI发起端的应用主机110处于外网中的情况 下。也就是说,应用主机110与存储系统120之间的通信需要经由NAT 设备转发,并且在图4中用c-突出标识应用主机lio与NAT设备140 之间的报文传输属于外网通信,而用—突出标识存储系统120与NAT 设备140之间的报文传输属于内网通信。如图4所示,在正式相互进行iSCSI通信之前,作为iSCSI目标端的 存储系统120预先给相应的作为iSCSI发起端的应用主机110分配好存 储资源(步骤SO)。对此,本领域技术人员应能理解,步骤SO所执行 操作为iSCSI的现有技术内容,故在此不多赘述。接着,鉴于在存储系统120位于NAT设备140之后的情况下,现有 需要由应用主机110主动发起的iSCSI通信技术将iSCSI目标端地址未知 而无法实施;因此,为了能够穿越NAT建立iSCSI通信,存储系统120 需要将其私网地址经由NAT设备140告知给应用主机110。并且,如图 4所示,所述私网地址告知的具体操作内容包括有-步骤S1-1,存储系统120基于其私网地址生成一个消息报文①,并 将该消息报文①发送给NAT设备140;步骤Sl-2, NAT设备140在收到消息报文①之后,首先生成一个与 存储系统120对应的NAT转换表项,随后基于该NAT转换表项对消息 报文①进行NAT转换,并将NAT转换后得到的报文②发送给应用主机110;步骤Sl-3,应用主机IIO在收到经由NAT设备140转发的消息报文 ②之后,对该消息报文②进行处理,从中获知存储系统120的私网地址。至此,由于处于外网中的应用主机110已经获知位于NAT设备之后 的存储系统120的私网地址以及公网地址,因而其完全可以主动向存储
系统120发起iSCSI连接。需要说明的是,为了使应用主机110在断开连接或重启后还能够及 连接到存储系统120,存储系统120优选地每隔预定时间重复一次将上述 的私网地址告知操作。当然,所述预定时间完全可由用户根据实际应用 需要灵活设定。同时,如步骤SO所示,存储系统120预先给应用主机110分配相应 的存储资源为现有iSCSI技术的普遍要求。因此,消息报文①中除了包 含存储系统120的私网地址信息之外,还可包含相应的存储资源分配信 息。甚或,本领域技术人员不难将消息报文①所包含内容延及至任何其 它可用来帮助应用主机IIO主动连接存储系统120的信息。随后,在应用主机110获知存储系统120的私网地址及公网地址使 得相互进行iSCSI通信成为可能之后,本发明还通过在应用主机110和 存储系统120之间建立一条iSCSI报文传输隧道,来使得应用主机110 和存储系统120相互传输的iSCSI命令/数据能够顺利穿越NAT设备到达 对端,同时还可以尽量减少中间网络对iSCSI报文的影响。而隧道作为一种封装技术,其主要是利用一种网络传输协议将其它 协议生成的数据报文封装在它自己的报文中后再进行网络传输。 一般来 说,可用于建立隧道的网络传输协议有很多,比如UDP (User Data Protocol,用户数据报协议)、或者TCP (Transmit Control Protocol,传 输控制协议)等。基于传输速度方面的考虑,本发明优选利用UDP来建立所述iSCSI 报文传输隧道。具体而言应用主机110或存储系统120分别利用UDP 封装各自生成的iSCSI报文,并将封装而成的报文经由NAT设备140转 发给对方;以及,应用主机UO或存储系统120分别解封装处理来自对 方的封装有iSCSI报文的报文,并根据提取出来的iSCSI报文进行相应的 iSCSI通信处理。下面参照图4,并从发起iSCSI连接请求开始,详细介绍应用主机 110和存储系统120之间通过UDP隧道穿越NAT进行的iSCSI通信。如 图4所示,该iSCSI通信主要包括有步骤Si2-1,在应用主机110获知了存储系统120的私网地址及公网
地址之后,如果需要与存储系统120进行iSCSI通信,应用主机110则 生成一个向存储系统120请求建立iSCSI连接的iSCSI连接请求报文③。需要注意的是,这里的iSCSI连接请求报文③是一个完整的iSCSI 报文,即包括IP首部、TCP首部等;同时,iSCSI连接请求报文③的目 的地址为存储系统120的私网地址。步骤Si2-2,应用主机110对iSCSI连接请求报文③进行UDP封装, 并将封装而成的UDP报文④发送给NAT设备140。需要注意的是,这里的UDP报文④的目的地址为存储系统120的公 网地址。这样,NAT设备140在收到该UDP报文④后,才能首先根据其 上相应的NAT转换表项对该UDP报文④进行NAT转换,然后再将相应 NAT转换后的UDP报文⑤转发给存储系统120。步骤St3-l,存储系统120在收到经由NAT设备140转发的、来自 应用主机110的、包含iSCSI连接请求报文③的UDP报文⑤之后,对该 UDP报文⑤进行解封装处理,以提取出其中的iSCSI连接请求报文③。步骤St3-2,存储系统120根据提取出来的iSCSI连接请求报文③进 行相应的iSCSI通信处理,比如生成相应的iSCSI报文⑥以对该iSCSI连接请求报文③作出响应。步骤St2,与应用主机110端类似,存储系统120也利用UDP封装 由其生成的iSCSI报文⑥,并将封装而成的UDP报文⑦发送给NAT设 备140。然而,这里的UDP报文⑦的目的地址为应用主机110的地址。这样, NAT设备140在收到该UDP报文⑦之后,也将首先根据其上相应的NAT 转换表项对该UDP报文⑦进行NAT转换,然后再将相应NAT转换后的 UDP报文⑧转发给应用主机110。步骤Si3-1,与存储系统120端类似,在收到经由NAT设备140转 发的、来自存储系统120的、包含iSCSI报文⑥的UDP报文⑧之后,应 用主机110也会对该UDP报文⑧进行解封装处理,以提取出其中的iSCSI 报文⑥。步骤Si3-2,同样与存储系统120端类似,应用主机120也根据提取 出来的iSCSI报文⑥进行相应的iSCSI通信处理,比如生成用于向存储系
统120传输iSCSI命令/数据的相应iSCSI报文③。在相互成功建立了 iSCSI连接后,应用主机110与存储系统120分 别采用与前述相同的方式处理后续用于数据读写的iSCSI报文,即利用 UDP封装本端生成的iSCSI报文③/⑥后再输出、以及解封装来自对端的 UDP报文获取包含其中的iSCSI报文⑥/③后进行相应的处理。通过上述介绍可知,通过将位于NAT设备之后的iSCSI目标端的私 网地址预先告知给处于公网中的iSCSI发起端、以及在iSCSI目标端和 iSCSI发起端之间建立iSCSI报文传输隧道,本发明所提供iSCSI通信方 法不仅有效实现了 iSCSI对NAT的穿越,还能够尽量避免中间网络对 iSCSI报文的影响。同时,由于无需对NAT设备进行任何修改,本发明所提供iSCSI通 信方法还具有很好的普适性。下面参照图5详细介绍本发明所提供iSCSI发起设备的一个优选实 施例。如图5所示,iSCSI发起设备500主要应用在相应的iSCSI目标设备 600位于NAT设备140之后、而其处于外网中的情况下。该iSCSI发起 设备500主要包括发起模块510,对端地址获知模块540、报文封装模块 520,以及报文提取模块530。其中发起模块510用于生成iSCSI报文③和/或处理iSCSI报文⑥,其中 iSCSI报文③用作发起设备500向iSCSI目标设备600传输iSCSI命令/ 数据,而iSCSI报文⑥在用作iSCSI目标设备600向iSCSI发起设备500 传输iSCSI命令/数据。需要注意的是,此处的iSCSI报文③为完整的iSCSI报文,也即包括 相应的IP首部、TCP首部等。同时,该iSCSI报文③的目的地址为iSCSI 目标设备600的私网地址⑨,而该iSCSI目标设备600的私网地址(D是 对端地址获知模块540通过分析由NAT设备140转发的消息报文②后得 到的。 一般来说,消息报文②需要在发起iSCSI连接之前送达iSCSI发起 设备,且其中除了包含iSCSI目标设备600的私网地址⑨之外,还可能 包含任何其它对发起iSCSI连接有用的信息,比如iSCSI目标设备600
预先为iSCSI发起设备500分配的存储资源信息等。报文封装模块520与发起模块510相连,用于利用UDP或TCP等网 络传输协议封装发起模块510生成的iSCSI报文③,并将封装而成的报 文④发送给NAT设备140。其中,该封装报文④的目的地址为iSCSI目 标设备600的公网地址⑩,从而使得NAT设备140在收到该封装报文④ 后能够根据相应的NAT转换表项进行NAT转换,并将进行NAT转换之 后的封装报文⑤发送给iSCSI目标设备600。类似地,该iSCSI目标设备 的公网地址⑩也是对端地址获知模块540通过分析由NAT设备140转发 的消息报文②后得到的。而报文提取模块530也与发起模块510相连,用于解封装处理经由 NAT设备140转发的、来自iSCSI目标设备600的封装有完整iSCSI报 文的报文⑧,并将从该封装报文⑧中提取出来的完整iSCSI报文⑥输出 至发起模块510,从而使得发起模块510能够根据该iSCSI报文⑥进行相 应的iSCSI通信处理,比如生成向iSCSI发起设备500传输iSCSI命令/ 数据的iSCSI报文③。需要说明的是,上述仅针对本发明所要解决的问题而重点介绍了 iSCSI发起设备500中使其支持iSCSI并可以穿越NAT的功能模块。然 而,本领域技术人员应能理解,在实际实施本发明时,iSCSI发起设备 500还可包括其它通用的应用主机功能模块。也就是说,本发明所提供 iSCSI发起设备500包括但不限于发起模块510,报文封装模块520,以 及报文提取模块530。下面参照图6详细介绍本发明所提供iSCSI目标设备的一个优选实 施例。如图6所示,iSCSI目标设备600主要应用在其位于NAT设备140 之后、而相应的iSCSI发起设备500处于外网中的情况下。该iSCSI目标 设备600主要包括目标模块610,私网地址通知模块620,报文封装模块 630,以及报文提取模块640。其中目标模块610用于生成iSCSI报文⑥和/或处理iSCSI报文③,其中 iSCSI报文③用作发起设备500向iSCSI目标设备600传输iSCSI命令/
数据,而iSCSI报文⑥在用作iSCSI目标设备600向iSCSI发起设备500 传输iSCSI命令/数据。私网地址通知模块620用于将iSCSI目标设备600的私网地址经由 NAT设备140转发而告知给iSCSI发起设备500。如图6所示,iSCSI目标设备600告知iSCSI发起设备其私网地址的 过程可能具体为首先,私网地址通知模块620生成一个至少包含其私 网地址的消息报文①,并将该消息报文①发送给NAT设备140;接着, NAT设备在收到该消息报文①之后,首先将生成一个与iSCSI目标设备 600对应的NAT转换表项,然后利用该NAT转换表项对消息报文①进行 NAT转换,并将进行NAT转换后的报文②发送给iSCSI发起设备500; 至此,iSCSI发起设备500就可根据经由NAT设备140转发包含私网地 址信息的报文②来获知iSCSI目标设备600的私网地址。通过上述介绍可知,在iSCSI目标设备600中增加私网地址通知模 块620的目的是为了将iSCSI目标设备600的私网地址预先告知相应的 iSCSI发起设备,以使得iSCSI发起设备500能够穿越NAT主动发起与 iSCSI目标设备600的iSCSI连接,即使iSCSI目标设备600位于NAT 设备140之后。因此,为了使得iSCSI发起设备500在断开连接或重启 后能够及时与iSCSI目标设备600建立连接,私网地址通知模块620优 选地每隔预定时间重复一次将iSCSI目标设备600的私网地址经由NAT 设备140告知给iSCSI发起设备500的操作。当然,所述预定时间完全 可由用户根据实际应用需要灵活设定。此外,有鉴于现有iSCSI技术普遍要求作为存储系统的iSCSI目标设 备预先为作为应用主机的iSCSI发起设备分配存储资源,因此在消息报 文①中还可以优选地包含有iSCSI目标设备600(或具体为其中目标模块 610)预先为iSCSI发起设备500分配的存储资源相关信息。报文封装模块630与目标模块610相连,用于利用UDP或TCP等网 络传输协议封装目标模块610生成的iSCSI报文 ,并将封装而成的报 文⑦发送给NAT设备140。其中,该封装报文⑦的目的地址为iSCSI发 起设备500的地址,从而使得NAT设备140在收到该封装报文⑦后能够 根据相应的NAT转换表项进行NAT转换,并将进行NAT转换之后的封
装报文⑧发送给iSCSI发起设备500。而报文提取模块640也与目标模块610相连,用于解封装处理经由 NAT设备140转发的、来自iSCSI发起设备500的封装有完整iSCSI报 文的报文⑤,并将从该封装报文⑤中提取出来的完整iSCSI报文③输出 至目标模块610,从而使得目标模块610能够根据该iSCSI报文③进行相 应的iSCSI通信处理,比如生成向iSCSI发起设备500传输iSCSI命令/ 数据的iSCSI报文(D。需要说明的是,上述仅针对本发明所要解决的问题而重点介绍了 iSCSI目标设备600中使其支持iSCSI并可以穿越NAT的功能模块。然 而,本领域技术人员应能理解,在实际实施本发明时,iSCSI目标设备 600还可包括其它通用的存储系统功能模块。也就是说,本发明所提供 iSCSI目标设备600包括但不限于目标模块610,私网地址通知模块620, 报文封装模块630,以及报文提取模块640。需要声明的是,上述发明内容及具体实施方式
意在证明本发明所提 供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域 技术人员在本发明的精神和原理内,当可作各种修改、等同替换、或改 进。本发明的保护范围以所附权利要求书为准。
权利要求
1.一种iSCSI通信方法,应用在目标设备位于NAT设备之后的情况下;其特征在于,包括有所述目标设备将其私网地址经由所述NAT设备告知发起设备;所述发起设备或所述目标设备分别利用网络传输协议封装各自生成的iSCSI报文,并将所述封装而成的报文经由所述NAT设备转发至对方;以及所述发起设备或所述目标设备分别解封装处理来自对方的封装有iSCSI报文的报文,并根据提取出来的iSCSI报文进行相应处理。
2. 如权利要求1所述的iSCSI通信方法,其特征在于,所述生成及封 装iSCSI报文的具体操作包括有所述发起设备或所述目标设备生成一个向对方传输iSCSI命令/数据 的iSCSI报文,其中向所述目标设备传输iSCSI命令/数据的iSCSI报文 的目的地址为所述目标设备的私网地址;所述发起设备或所述目标设备利用所述网络传输协议封装所述 iSCSI报文,且封装而成的报文的目的地址为所述目标设备的公网地址或 所述发起设备的地址;以及所述发送设备或所述目标设备将所述封装而成的报文经由所述NAT 设备发送给对方。
3. 如权利要求1所述的iSCSI通信方法,其特征在于,所述提取并处 理iSCSI报文的具体操作包括有所述发起设备或所述目标设备解封装处理来自对方的封装有iSCSI 报文的报文,以提取出其中的iSCSI报文;以及所述发起设备或所述目标设备根据所述提取出来的iSCSI报文进行 相应处理。
4. 如权利要求1所述的iSCSI通信方法,其特征在于,将所述目标设 备的私网地址告知所述发起设备的具体操作包括有所述目标设备生成一个至少包含其私网地址的消息报文,并将所述 消息报文发送给所述NAT设备;以及 在收到所述消息报文后,所述NAT设备生成与所述目标设备对应的 地址转换表项,并将所述消息报文转发给所述发起设备。
5. 如权利要求4所述的iSCSI通信方法,其特征在于,所述消息报文 中还包含所述目标设备预先给所述发起设备分配的存储资源信息。
6. 如权利要求1至5任一所述的iSCSI通信方法,其特征在于,所述 网络传输协议为用户数据报协议,或者为传输控制协议。
7. 如权利要求l至5任一所述的iSCSI通信方法,其特征在于,每隔 预定时间重复将所述目标设备的私网地址告知所述发起设备的操作。
8. —种iSCSI发起设备,包括用于生成和/或处理iSCSI报文的发起 模块,且所述iSCSI报文用于在所述iSCSI发起设备与相应的iSCSI目标 设备之间传输iSCSI命令/数据;其特征在于,还包括报文封装模块,与所述发起模块相连,用于利用网络传输协议封装 所述发起模块生成的iSCSI报文,并将所述封装而成的报文发送至所述 iSCSI目标设备;以及报文提取模块,与所述发起模块相连,用于解封装处理来自所述 iSCSI目标设备的封装有iSCSI报文的报文,并将提取出来的iSCSI报文输出至所述发起模块。
9. 如权利要求8所述的iSCSI发起设备,其特征在于,还包括 对端地址获知模块,与所述发起模块和/或所述报文封装模块相连,用于分析来自所述iSCSI目标设备的、至少包含所述iSCSI目标设备私网 地址信息的消息报文;所述对端地址获知模块将其分析得到的所述iSCSI目标设备私网地 址输出给所述发起模块,而所述发起模块将把所述私网地址作为向所述 iSCSI目标设备发送iSCSI报文的目的地址;和/或所述对端地址获知模块将其分析得到的所述iSCSI目标设备公网地 址输出给所述报文封装模块,而所述报文封装模块将所述公网地址作为 向所述iSCSI目标设备发送封装报文的目的地址。
10. 如权利要求8或9所述的iSCSI发起设备,其特征在于,所述网 络传输协议为用户数据报协议,或者为传输控制协议。
11. 一种iSCSI目标设备,包括用于生成和/或处理iSCSI报文的目标 模块,且所述iSCSI报文用于在所述iSCSI目标设备与相应的iSCSI发起 设备之间相互传输iSCSI命令/数据;其特征在于,还包括私网地址通知模块,用于在所述iSCSI目标设备位于NAT设备的情 况下,将所述iSCSI目标设备的私网地址经由所述NAT设备告知所述 iSCSI发起设备;报文封装模块,与所述目标模块相连,用于利用网络传输协议封装 所述目标模块生成的iSCSI报文,并将所述封装而成的报文发送至所述 iSCSI发起设备;以及报文提取模块,与所述目标模块相连,用于解封装处理来自所述发 起设备的封装有iSCSI报文的报文,并将提取出来的iSCSI报文输出至所 述目标模块。
12. 如权利要求ll所述的iSCSI目标设备,其特征在于,所述网络传输协议为用户数据报协议,或者为传输控制协议。
13. 如权利要求11或12所述的iSCSI目标设备,其特征在于,所述 私网地址通知模块还用于将所述iSCSI目标设备或所述目标模块预先给 所述iSCSI发起设备分配的存储资源信息告知所述iSCSI发起设备。
14.如权利要求ll或12所述的iSCSI目标设备,其特征在于,所述 私网地址通知模块每隔预定时间重复一次将所述iSCSI目标设备的私网 地址经由所述NAT设备告知所述iSCSI发起设备的操作。
全文摘要
对于目标设备位于NAT设备之后的组网情况,本发明公开了一种iSCSI通信方法,以及相应的发起设备和目标设备。所述iSCSI通信方法主要包括所述目标设备将其私网地址经由所述NAT设备告知相应的发起设备;所述发起设备或所述目标设备分别利用网络传输协议封装各自生成的iSCSI报文,并将封装而成的报文经由所述NAT设备转发至对方;以及所述发起设备或所述目标设备分别解封装处理来自对方的封装有iSCSI报文的报文,并根据提取出来的iSCSI报文进行相应处理。本发明有效实现了iSCSI对NAT的穿越,还可以避免中间网络对iSCSI报文的影响。
文档编号H04L12/56GK101119374SQ20071012156
公开日2008年2月6日 申请日期2007年9月10日 优先权日2007年9月10日
发明者迪 周 申请人:杭州华三通信技术有限公司