发明内容
本发明要解决的问题是现有技术中静态配置发起方名称造成的设置、维护繁琐,难以保证名称的唯一性。
本发明所述配置发起方名称的方法包括以下步骤:
接收发起方的名称请求,名称请求中包括发起方的标识;
向发起方返回与其标识对应的名称。
可选地,所述方法还包括:根据发起方标识按照生成算法生成唯一确定的名称。
优选地,所述名称中包括发起方标识。
可选地,所述方法还包括:保存返回发起方的名称及与其对应的标识;
所述向发起方返回名称具体为:当所接收的名称请求中的发起方标识已保存时,向发起方返回对应的已保存的名称;否则向发起方返回与已保存名称不同的名称。
优选地,所述名称请求中还包括发起方的标识类型;
所述方法还包括:当名称请求中的发起方标识类型不在所支持的标识类型中时,将所支持的标识类型通知发起方;
所述向发起方返回名称具体为:当名称请求中的发起方标识类型在所支持的标识类型中时,返回对应于发起方标识的名称。
本发明提供了另一种配置发起方名称的方法,包括以下步骤:
发送发起方的名称请求,其中包括发起方的标识;
接收对名称请求的响应,将响应中与标识具有对应关系的名称设置为发起方名称。
优选地,所述发送发起方的名称请求具体为:在每次发起方启动时发送其名称请求。
优选地,所述名称请求中还包括发起方的当前标识类型;
所述方法还包括:当接收到所支持标识类型的通知时,将当前标识类型修改为支持的标识类型,并重新发送发起方的名称请求,其中包括发起方当前标识类型的标识。
本发明还提供了一种用于配置发起方名称的网络节点,包括发送单元和接收单元、以及名称单元,用来根据接收单元接收的发起方名称请求中的发起方标识确定对应于该标识的名称,并通过发送单元返回该名称。
可选地,所述名称单元确定对应于发起方标识的名称具体为:名称单元采用生成算法根据发起方标识生成唯一确定的名称。
可选地,所述名称单元包括存储模块和请求处理模块,其中:
存储模块用来保存通过发送单元返回的名称以及对应的发起方标识;
请求处理模块用来查找存储模块是否保存有名称请求中的发起方标识,查找成功时通过发送单元返回对应的名称;查找失败时返回与保存的名称不同的名称,并将该名称与对应的发起方标识保存在存储模块中。
优选地,所述网络节点还包括标识类型单元,用来在接收的名称请求中的发起方标识类型不属于该网络节点支持的标识类型时通过发送单元返回该网络节点支持的标识类型,在属于该网络节点支持的标识类型时将名称请求输出至名称单元。
本发明提供的另一种作为发起方的网络节点,包括发送单元和接收单元、以及名称请求单元和名称设置单元,其中:
名称请求单元用来生成包括发起方标识的名称请求,并通过发送单元发送;
名称设置单元用来在接收单元接收的名称请求响应中解析出与标识具有对应关系的名称,并将其设置为本网络节点的发起方名称。
优选地,所述名称请求中还包括发起方标识类型;
所述名称请求单元生成名称请求具体为:名称请求单元根据当前标识类型,以本网络节点上该类型标识的标识作为发起方标识生成名称请求。
优选地,所述网络节点还包括标识类型响应单元,用来在接收单元收到支持标识类型通知时将当前标识类型修改为通知中的标识类型,并指令名称请求单元生成名称请求。
本发明中根据发起方名称请求中的发起方标识生成与标识对应的发起方名称,并将名称返回至发起方进行设置,实现了发起方名称的自动配置和集中管理,降低了设置、维护发起方名称的工作量,还可以防止恶意冒用发起方名称造成的数据安全问题;同时,本发明通过名称与标识的对应关系保证了发起方名称的唯一性和一致性;
另外,本发明通过采用发起方某种类型的标识作为发起方标识,能够提供对多种硬件结构的发起方的支持。
具体实施方式
现有技术中名称的配置工作分散在每个发起方手动进行,缺乏对名称的集中管理,导致易于出现名称的重复和冒用问题。当名称的管理和配置集中在网络中的一个节点上进行时,可以进行名称的自动设置,并且名称的唯一性可以得到较好的保障。同时,由于存储网络中的目标方唯一地根据名称来识别发起方,还需要保证发起方名称配置的相对稳定,使得发起方能够根据自动配置的名称实现对目标方的正常访问。本发明中,在发起方的名称与发起方的标识之间建立对应关系,利用发起方标识的确定性实现名称的一致性。
网络中任意一个能够与发起方通信的节点均可以作为进行名称集中配置和管理的节点,在本发明中称之为名称管理服务器。本发明的一种典型应用网络的结构如图2所示,发起方、目标方和名称管理服务器之间通过IP网络能够相互访问。名称管理服务器在物理上可能是是主机或者服务器,也可能是网络设备或者存储设备;在功能上可能只用作发起方名称配置和管理,也可能是在其他系统中运行进行名称配置和管理的进程后具有了名称服务功能。
本发明所述发起方名称配置方法在名称管理服务器一侧的流程如图3所示,在步骤S310,接收发起方的名称请求。发起方的名称请求可以是单播报文,也可以是组播报文。
发起方在名称请求中携带本端的标识,供名称管理服务器识别该发起方。任何可以使名称服务器将每个发起方区别于同一应用网络中其他发起方的特征值都可以作为发起方标识,例如,发起方标识可以是发起方的IP地址、MAC(Media Access Control,媒介接入控制)地址等网络特征值,可以是发起方的CPU(Central Process Unit,中央处理器)序列号等硬件特征值,可以是用户在发起方设置的其他特征值,还可以是上述特征值的组合。
名称管理服务器可以提供对多种标识的支持,例如不论发起方以MAC地址作为标识还是以用户设置的主机名作为标识均可为其分配名称。当发起方和名称管理服务器所在的应用网络支持多种标识时,可以通过标识类型来对标识的种类进行区分,此时在发起方的名称请求中不仅包括发起方标识,还可以包括标识类型,以供名称管理服务器结合二者来识别每个发起方。
标识类型可以采用发起方和名称管理服务器约定的编码来表示,占用名称请求消息中的一个字段。下表所示为一种可能的标识类型编码方式:
标识类型 |
编码 |
端口MAC地址 |
0 |
CPU序列号 |
1 |
|
|
用户自定义 |
100~255 |
当名称管理服务器所在的应用网络支持超过一种类型的标识时,可以执行步骤S320,判断名称请求中的标识类型是否属于本名称管理服务器支持的标识类型,如果是,执行步骤S340;如果否,执行步骤S330。
在步骤330,将名称管理服务器所支持的标识类型通知发起方,转步骤S310。对名称请求中标识类型得不到本服务器支持的发起方,名称管理服务器向该发起方返回本服务器支持的所有标识类型,发起方可以任选其一来重新请求名称分配。
由于发起方的各种类型标识之间往往不具有关联性,因而当发起方更换标识类型时,在大多数情况下较难实现为同一发起方不同类型的标识分配相同的名称。为了尽量保持发起方名称的一致性,本发明建议对名称管理服务器所支持的标识类型进行扩展,而尽量避免删除原来支持的标识类型。这样,使用名称管理服务器所支持标识类型的发起方每次在名称请求中均维持相同的标识类型和该类型的标识,便于名称管理服务器将其对应于固定的名称。
在步骤S340,根据名称请求中的发起方标识确定对应的名称。根据发起方标识确定名称的具体方法可由用户按照应用环境来实现,本发明给出两种类型的实现方式作为示例性说明。
第一类方式为以发起方标识为输入,通过生成算法得出名称。生成算法应满足的条件是当输入的标识相同时,生成的名称相同;而输入的标识不同时,生成的名称不同。换言之,生成算法应能根据发起方标识生成唯一确定的名称。最为简单的一种实现是在生成的名称中包括发起方标识,以iSCSI发起方为例,当采用MAC地址作为标识类型时,对MAC地址为0X000AE55B8C6E的发起方A以及MAC地址为0X000AE55B8C6F的发起方B,可以按照RFC 3721规定的iSCSI命名规范生成如下名称:
发起方A:iqn.2001-04.com.example.storage:MAC:000AE55B8C6E;
发起方B:iqn.2001-04.com.example.storage:MAC:000AE55B8C6F。
第二类方式为在名称管理服务器上保存已分配的标识与名称的对应关系表,在接收到名称请求时先检索该名称请求中的标识是否已保存在对应关系表中,如果是意味着已经为该发起方分配过名称,则返回该标识对应的名称,以保持发起方名称的一致性;如果否则该发起方为新的请求者,为其分配新的名称,并将新的名称与该发起方标识保存在对应关系表中。在这种方式中,名称的产生方式只要保证新的名称不同于已保存的名称即可,例如可以用顺序编号的方式生成新的名称。当名称管理服务器支持多个标识类型时,对应关系表中还可以增加标识类型项,以更好地区分各个发起方。
在步骤S350,向发起方返回步骤S340中确定的名称,作为对发起方名称请求的响应。
当名称管理服务器所在的应用网络只支持一种标识类型时,步骤S320、S330可以省略。
本发明所述名称配置方法在发起方一侧的流程如图4所示,在步骤S410,发起方发送包括其标识的名称请求。对支持多种标识类型的应用网络,还可以在名称请求中包括该发起方的当前标识类型。发起方按照当前标识类型在名称请求中写入该类型的标识。
可以在每次发起方节点启动的时候发送名称请求,使得名称管理服务器能够更为完整地实现对发起方名称的集中管理,以增强整个网络系统的安全性。
发起方的名称请求可以是单播报文,也可以是组播报文。如果采用单播报文,发起方需要预先知道名称管理服务器的IP地址。
在步骤S420,接收对名称请求的回复。
在步骤S430,判断接收的回复是否是对端名称管理服务器所支持标识类型的通知,如果是,执行步骤S440;如果否,转步骤S450。
当发起方所在的应用网络支持超过一种标识类型时,如果发起方名称请求中的标识类型不是名称管理服务器所支持的标识类型,则名称管理服务器返回所支持标识类型的通知,告知发起方应当使用哪些标识类型;如果名称请求中的标识类型属于名称管理服务器所支持的标识类型,则返回对名称请求的响应。
在步骤S440,按照通知中的类型修改发起方的当前标识类型,转步骤S410,由新的当前标识类型生成新的名称请求重新发送给名称管理服务器。当通知中包括超过一种标识类型时,发起方可以任选一种作为当前标识类型。
在步骤S450,将名称管理服务器在对名称请求的响应中返回的名称设置为发明方名称。
当发起方所在的应用网络只支持一种标识类型时,步骤S430、S440可以省略。
图5所示为本发明中发起方与名称管理服务器之间的信号流程示例。发起方节点启动,按照当前标识类型生成名称请求消息并向名称管理服务器发送,其中携带了当前标识类型和该类型的标识。名称管理服务器检查接收的名称请求消息,发现其中的标识类型不是本服务器所支持的标识类型,生成支持标识类型通知消息发送,将所支持的标识类型告知该发起方。发起方按照支持标识类型通知消息中的标识类型更新当前标识类型,重新生成包括更新后标识类型和该类型标识的名称请求消息发送至名称管理服务器。通过标识类型检查后,名称管理服务器根据发起方标识确定对应的名称,在名称请求响应消息中将名称回复发起方。发起方设置名称后,即可以该名称与应用网络中的目标方建立连接,进行存储操作。
当发起方节点重新启动后,按照已更新的当前标识类型生成名称请求消息,发送至名称管理服务器。名称管理服务器进行标识类型检查后,按照发起方标识与名称的对应关系,将在名称请求响应消息中返回与上次确定的名称相同的名称。这样,发起方名称的一致性得到保证。
本发明中具有名称配置功能的网络节点,即名称管理服务器可以具有图6所示的结构。标识类型单元630分别与发送单元610、接收单元620和名称单元640连接,名称单元640与发送单元610连接。
发送单元610用来向应用网络中的其他节点发送报文,接收单元620用来接收应用网络中的其他节点发送给本节点的报文。
当接收单元620接收到名称请求时,将其输出至标识类型单元630。标识类型单元判断名称请求中的标识类型是否属于本节点支持的名称类型,如果属于则将该名称请求输出至名称单元640;如果不属于则将本节点支持的标识类型封装在支持标识类型通知中,并将支持标识类型通知输出至发送单元610,由发送单元610发送到该名称请求的发起方。标识类型单元630为可选单元,在应用网络支持单一的标识类型时可以省略。
名称单元640按照输入的名称请求中的发起方标识确定名称,将名称封装在名称请求响应中输出至发送单元610。发送单元610将名称请求响应发送至该名称请求的发起方。
按照名称单元640中由标识确定名称的方式不同,名称管理服务器可以有不同的实施例。在实施例一中,名称单元640采用生成算法由发起方标识算得名称,生成算法所需满足的条件如前所述。
名称管理服务器实施例二可以具有图7所示的结构,名称单元640包括相互连接的请求处理模块641和存储模块642,其中请求处理模块分别与标识类型单元630和发送单元610连接。
存储模块642中保存着已经通过发送单元610发送至发起方的名称及其对应的发起方标识。请求处理模块641从接收单元620或标识类型单元630接收到名称请求时,解析出其中的发起方标识,在存储模块642中查找该标识。如果在存储模块642中找到了该标识,请求处理模块641将存储模块642中该标识对应的名称封装在名称请求响应中输出至发送单元610;如果在存储模块642中没有找到该标识,请求处理模块641生成与存储模块641中保存的名称不同的新名称,将新名称封装在名称请求响应中输出至发送单元610,并将新名称及其对应的发起方标识存入存储模块642中。
图8所示为本发明中作为发起方的网络节点的结构示意图,名称请求单元830分别连接发送单元810和标识类型响应单元840;接收单元620分别连接至标识类型响应单元840和名称设置单元850。
发送单元810用来向应用网络中的其他节点发送报文,接收单元820用来接收应用网络中的其他节点发送给本节点的报文。
发起方节点的名称请求单元830将发起方标识封装在名称请求中,将名称请求输出至发送单元810,由发送单元810发送至名称管理服务器。接收单元820将接收的名称请求响应输出至名称设置单元850,名称设置单元850从名称请求响应中解析出名称,将其设置为本节点的发起方名称。
当发起方所在的应用网络支持多种标识类型时,可以增加标识类型响应单元840。在名称请求单元830或者标识类型响应单元840中保存当前标识类型,名称请求单元830在生成名称请求时同时封装当前标识类型和该类型的标识。接收单元820接收到支持标识类型通知时将其输出至标识类型响应单元840,标识类型响应单元840从中解析出名称管理服务器所支持的标识类型,将本发起方的当前标识类型修改为其中的一种,并指令名称请求单元830按照修改后的当前标识类型重新生成名称请求。
需要说明的是,本发明中发起方和名称管理服务器之间交互的各种报文可以采用双方约定的任意消息名和格式,只要能够承载在该报文中需要通知对端的发起方标识、标识类型和/或发起方名称即可。
综上,本发明实现了发起方名称的动态分配,保证了发起方名称在应用网络系统中的唯一性,减少了管理员规划配置发起方名称的工作量;同时,应用网络中所有发起方的集中管理分配,可有效防止恶意冒用发起方名称,避免了潜在的数据安全问题。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。