具体实施方式
参阅图1,本发明一实施例提供一种虚拟链路建立方法,该方法包括:
101、第一通信网元接收第二通信网元发送的通信请求消息。
其中,本发明实施例中的第一通信网元和第二通信网元为以太网中的通信网元。该通信请求消息可以是单播注册请求消息。
具体的,该单播注册请求消息是第二通信网元接收第一通信网元返回的单播或者多播响应消息后,利用该单播或者多播响应消息中携带的以太网MAC地址向第一通信网元发送的,其中,所述单播或者多播响应消息是对第二通信网元发出的多播发现请求消息的响应消息。或者,在该步骤之前,第一通信网元将自己的以太网MAC地址注册到服务器上,第二通信网元从服务器上获取第一通信网元的以太网MAC地址,根据第一通信网元的以太网MAC地址向第一通信网元发送注册请求消息,其中,上述服务器可以是名字服务器(Name Server,NS)。
102、第一通信网元为第一通信网元与第二通信网元间的虚拟链路分配第一虚拟MAC地址和第二虚拟MAC地址,所述第一虚拟MAC地址为所述虚拟链路中标识第一通信网元的虚拟MAC地址;所述第二虚拟MAC地址为所述虚拟链路中标识第二通信网元的虚拟MAC地址。
具体的,第一通信网元实例化第一虚拟N端口VN_Port/以太网光纤通道链路端点FCoE_LEP对,分配与第一VN_Port/FCoE_LEP对绑定的第一虚拟MAC地址;并分配第二虚拟MAC地址,该第二虚拟MAC地址后续用于与第二通信网元中实例化的第二VN_Port/FCoE_LEP对绑定,同时记录该第二虚拟MAC地址为第一VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元(即第二通信网元)的虚拟MAC地址,后续第一通信网元上的第一VN_Port/FCoE_LEP对用于管理与第二通信网元交互的数据包(该数据包可以是以太网帧);第二通信网元上的第二VN_Port/FCoE_LEP对用于管理与第一通信网元交互的数据包(该数据包可以是以太网帧)。
其中,通信网元实例化VN_Port/FCoE_LEP对是指实例化VN_Port和FCoE_LEP两个实体,并建立这两个实体的对应关系。其中,若该通信网元需要发送数据包时,则VN_Port实体生成FC帧,然后由FCoE_LEP实体将该VN_Port/FCoE_LEP对所绑定的虚拟MAC地址作为源MAC地址,将该VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元的虚拟MAC地址为目的MAC地址,将FC帧封装成以太网帧发出。若该通信网元从以太网接收到以太网帧时,则FCoE_LEP实体通过以太网帧中的目的MAC地址和源MAC地址识别该以太网帧是否是发给自己对应的VN_Port实体的,即判断以太网帧中的目的MAC地址是否与VN_Port/FCoE_LEP对所绑定的虚拟MAC地址相同,且判断以太网帧中的源MAC地址是否与VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元的虚拟MAC地址相同,如果两个判断都为是,将该以太网帧解析出FC帧传给VN_Port实体,由VN_port实体根据光纤通道协议对FC帧进行处理。
103、第一通信网元向第二通信网元发送对通信请求消息的响应消息,所述响应消息中携带第一虚拟MAC地址和第二虚拟MAC地址。
其中,对通信请求消息的响应消息可以是注册接受消息。
该步骤中第一通信网元将第一虚拟MAC地址和第二虚拟MAC地址发送给第二通信网元,以便第二通信网元实例化第二VN_Port/FCoE_LEP对后将第二虚拟MAC地址与第二VN_Port/FCoE_LEP对绑定,并记录第一虚拟MAC地址为第二VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元的MAC地址。
本发明实施例中第一通信网元分配在虚拟链路中标识第一通信网元地址的第一虚拟MAC地址,及在虚拟链路中标识第二通信网元地址的第二虚拟MAC地址,并将第一虚拟MAC地址和第二虚拟MAC地址通知第二通信网元,使后续第一通信网元与第二通信网元利用第一虚拟MAC地址和第二虚拟MAC地址所标识的虚拟链路进行通信。同时,不需要像现有技术那样利用一个网关设备作为中介,降低了网络的复杂度,并且,也有效避免了现有技术中在网络数据流量很大时网关设备成为传输大流量数据瓶颈的问题。
参阅图2,本发明另一实施例提供一种虚拟链路建立方法,该方法包括:
201、第二通信网元获得以太网中除第二通信网元外的通信网元的信息,选择要进行通信的通信网元,本发明实施例中假定第二通信网元选择第一通信网元作为要进行通信的通信网元。
该步骤中第二通信网元获得以太网中除第二通信网元外的通信网元的信息可以有如下两种实现方式:
第一种实现方式:第二通信网元发送多播发现请求消息,该多播发现请求消息的目的地址为多播组地址,比如可以为All-FCF-MACs组地址,以太网会将该多播发现请求消息传给除第二通信网元外的各通信网元。各通信网元接收到多播发现请求消息之后,会向第二通信网元发送单播或者多播响应消息,该单播或者多播响应消息中携带相应通信网元的信息,该信息包括:以太网MAC地址和通信网元名称等。
第二种实现方式:以太网中各通信网元在启动时,都将自己的信息注册到名字服务器(Name Server,NS)上,该步骤中第二通信网元通过到NS上查询所有通信网元的信息,该信息包括:以太网MAC地址和通信网元名称等。
202、第二通信网元根据第一通信网元的以太网MAC地址,向第一通信网元发送单播注册请求,其中,该单播注册请求的源MAC地址是第二通信网元的以太网MAC地址,目的MAC地址是第一通信网元的以太网MAC地址。
203、第一通信网元收到单播注册请求之后,根据预设策略确定是否与第二通信网元建立连接并进行通信,如果否,执行204;如果是,执行205。
其中预设策略可以是访问控制策略,也可以是预先配置的其他策略,不影响本发明的实现。
204、第一通信网元向第二通信网元发送拒绝消息,结束本流程。
205、第一通信网元实例化第一VN_Port/FCoE_LEP对,分配与第一VN_Port/FCoE_LEP对绑定的第一虚拟MAC地址,并为第二通信网元分配一个虚拟MAC地址(假定为第二虚拟MAC地址),且记录该第二虚拟MAC地址作为第一VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元(即第二通信网元)的虚拟MAC地址,向第二通信网元发送注册接受消息,该注册接受消息的源MAC地址为第一通信网元的以太网MAC地址,目的MAC地址为第二通信网元的以太网MAC地址,其该注册接受消息中携带第一虚拟MAC地址和第二虚拟MAC地址。
206、第二通信网元接收到注册接受消息后,实例化本地的第二VN_Port/FCoE_LEP对,并将第二虚拟MAC地址与第二VN_Port/FCoE_LEP对绑定,且记录第一虚拟MAC地址为第二VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元(即第一通信网元)的虚拟MAC地址。
这样就形成了第一通信网元与第二通信网元间虚拟链路,即第一VN_Port/FCoE_LEP中的VN_Port与第二VN_Port/FCoE_LEP中的VN_Port间的虚拟链路,这个虚拟链路的两个端点(即第一通信网元和第二通信网元)通过上述第一虚拟MAC地址和第二虚拟MAC地址标识。
本发明实施例中第一通信网元分配在虚拟链路中标识第一通信网元地址的第一虚拟MAC地址,及在虚拟链路中标识第二通信网元地址的第二虚拟MAC地址,并将第一虚拟MAC地址和第二虚拟MAC地址通知第二通信网元,使后续第一通信网元与第二通信网元利用第一虚拟MAC地址和第二虚拟MAC地址所标识的虚拟链路进行通信。同时,不需要像现有技术那样利用一个网关设备作为中介,降低了网络的复杂度,并且,也有效避免了现有技术中在网络数据流量很大时网关设备成为传输大流量数据瓶颈的问题。
参阅图3,如下是本发明实施例提供的第一通信网元与第二通信网元通信的方法,该方法具体包括:
301、第一通信网元生成光纤帧,利用第一虚拟MAC地址作为源MAC地址,第二虚拟MAC地址作为目的MAC地址,对光纤帧进行封装,得到以太网帧,通过以太网向第二通信网元发送所述以太网帧。
具体的,第一通信网元中第一VN_Port/FCoE_LEP对的VN_Port实体生成FC帧,FCoE_LEP实体将第一VN_Port/FCoE_LEP对所绑定的虚拟MAC地址(即第一虚拟MAC地址)作为源MAC地址,将第一VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元的虚拟MAC地址(即第二虚拟MAC地址)作为目的MAC地址,对FC帧进行封装,得到以太网帧,并通过以太网向第二通信网元发送该以太网帧。
302、第二通信网元从以太网接收以太网帧,判断以太网帧中目的MAC地址是否是第二虚拟MAC地址,判断以太网帧中的源MAC地址是否是第一虚拟MAC地址,如果以太网帧中的目的MAC地址是第二虚拟MAC地址且以太网帧中的源MAC地址是第一虚拟MAC地址,解析所述以太网帧得到光纤帧。
具体的,第二通信网元中第二VN_Port/FCoE_LEP对的FCoE_LEP实体接收该以太网帧,根据第二VN_Port/FCoE_LEP对所绑定的虚拟MAC地址(即第二虚拟MAC地址),及该第二VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元的虚拟MAC地址(即第一虚拟MAC地址),判断该以太网帧中目的MAC地址是否是第二虚拟MAC地址,判断以太网帧中的源MAC地址是否是第一虚拟MAC地址,如果是,解析该以太网帧得到FC帧,将该FC帧传给VN_Port实体。
同理,当第二通信网元作为发送端时,第二通信网元可以利用第二VN_Port/FCoE_LEP对的VN_Port实体生成FC帧,FCoE_LEP实体将第二VN_Port/FCoE_LEP对所绑定的虚拟MAC地址(即第二虚拟MAC地址)作为源MAC地址,将第二VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元的虚拟MAC地址(即第一虚拟MAC地址)作为目的MAC地址,对FC帧进行封装,得到以太网帧,并通过以太网向第一通信网元发送该以太网帧。当第一通信网元从以太网接收以太网帧时,第一VN_Port/FCoE_LEP对的FCoE_LEP实体接收该以太网帧,根据第一VN_Port/FCoE_LEP对所绑定的虚拟MAC地址(即第一虚拟MAC地址),及该第一VN_Port/FCoE_LEP对所管理的虚拟链路上对端通信网元的虚拟MAC地址(即第二虚拟MAC地址),判断该以太网帧中目的MAC地址是否是第一虚拟MAC地址,判断以太网帧中的源MAC地址是否是第二虚拟MAC地址,如果是,解析该以太网帧得到FC帧,将该FC帧传给VN_Port实体。
上述实施例中的第一通信网元与第二通信网元能够利用第一虚拟MAC地址和第二虚拟MAC地址所标识的虚拟链路进行通信。
参阅图4,本发明实施例提供一种通信网元,该通信网元包括:
接收单元401,用于接收对端通信网元发送的通信请求消息;该通信请求消息可以是单播注册请求消息。
地址分配单元402,用于在接收到通信请求消息后,为所述通信网元与对端通信网元间的虚拟链路分配第一虚拟MAC地址和第二虚拟MAC地址,所述第一虚拟MAC地址为所述虚拟链路中标识所述通信网元的虚拟MAC地址;所述第二虚拟MAC地址为所述虚拟链路中标识对端通信网元的虚拟MAC地址;
发送单元403,用于向对端通信网元发送对通信请求消息的响应消息,所述响应消息中携带所述第一虚拟MAC地址和第二虚拟MAC地址。
至此,该通信网元已完成与对端通信网元间虚拟链路的建立,为了能够向对端通信网元发送以太网帧,该通信网元还包括:第一光纤网数据处理单元404和第一以太网数据处理单元405,其中,
第一光纤网数据处理单元404,用于生成光纤帧;
具体的,第一光纤网数据处理单元404相当于方法实施例中通信网元需要发送以太网帧时,第一VN_Port/FCoE_LEP对中VN_Port实体的功能;
第一以太网数据处理单元405,用于利用第一虚拟MAC地址作为源MAC地址,第二虚拟MAC地址作为目的MAC地址,对所述光纤帧进行封装,得到以太网帧;此时发送单元403还用于发送第一以太网数据处理单元405所得到的以太网帧。
其中,第一以太网数据处理单元405相当于方法实施例中通信网元需要发送以太网帧时,第一VN_Port/FCoE_LEP对中FCoE_LEP实体的功能。
为了能够接收并处理对端通信网元发送的以太网帧,该通信网元还包括:第二以太网数据处理单元406和第二光纤网数据处理单元407;
具体的,接收单元401还用于接收以太网帧;
第二以太网数据处理单元406,用于判断接收单元401接收的以太网帧中目的MAC地址是否是第一虚拟MAC地址,判断以太网帧中的源MAC地址是否是第二虚拟MAC地址,如果以太网帧中的目的MAC地址是第一虚拟MAC地址且以太网帧中的源MAC地址是第二虚拟MAC地址,解析以太网帧得到光纤帧,将光纤帧发给第二光纤网数据处理单元407。
第二光纤网数据处理单元407,用于根据光纤通道协议对所述光纤帧进行处理。
其中,第二以太网数据处理单元406相当于方法实施例中通信网元接收以太网帧时,第一VN_Port/FCoE_LEP对中FCoE_LEP实体的功能,第二光纤网数据处理单元407相当于第一VN_Port/FCoE_LEP对中VN_Port实体的功能;
为了使以太网中除该通信网元以外的通信网元能够获知该通信网元的以太网MAC地址,发送单元403还用于将通信网元的以太网MAC地址发送给服务器;通信请求消息是对端通信网元从服务器获取该通信网元的以太网MAC地址后,根据该以太网MAC地址向所述通信网元发送的。
为了确定是否与请求通信的对端通信网元建立连接,该通信网元还包括:判断单元408,
具体的,判断单元408具体用于在接收到对端通信网元发送的单播注册请求之后,根据预设策略确定是否与对端通信网元建立连接,其中预设策略可以是访问控制策略,也可以是预先配置的其他策略,不影响本发明的实现。
地址分配单元402在判断单元408的判断结果为是时,分配第一虚拟MAC地址和第二虚拟MAC地址的。
本发明实施例中通信网元分配在虚拟链路中标识自己的第一虚拟MAC地址,及在虚拟链路中标识对端通信网元地址的第二虚拟MAC地址,并将第一虚拟MAC地址和第二虚拟MAC地址通知对端通信网元,使两个通信网元后续能利用第一虚拟MAC地址和第二虚拟MAC地址所标识的虚拟链路进行通信。
参阅图5,本发明实施例提供一种网络系统,该系统包括:第一通信网元501和第二通信网元502,其中,
第一通信网元501,用于接收第二通信网元502发送的通信请求消息,为第一通信网元501与第二通信网元502间的虚拟链路分配第一虚拟MAC地址和第二虚拟MAC地址,所述第一虚拟MAC地址为所述虚拟链路中标识第一通信网元的虚拟MAC地址;所述第二虚拟MAC地址为所述虚拟链路中标识第二通信网元的虚拟MAC地址;向第二通信网元502发送对通信请求消息的响应消息,所述响应消息中携带所述第一虚拟MAC地址和第二虚拟MAC地址;
第二通信网元502,用于向第一通信网元501发送通信请求消息,接收第一通信网元501发送的对通信请求消息的响应消息。
其中,第一通信网元和第二通信网元间的信息交互具体见实施例二和实施例三,在此不再赘述。
本发明实施例中第一通信网元分配在虚拟链路中标识第一通信网元地址的第一虚拟MAC地址,及在虚拟链路中标识第二通信网元地址的第二虚拟MAC地址,并将第一虚拟MAC地址和第二虚拟MAC地址通知第二通信网元,使以太网中的第一通信网元与第二通信网元能够利用第一虚拟MAC地址和第二虚拟MAC地址所标识的虚拟链路进行通信。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,例如只读存储器,磁盘或光盘等。
以上对本发明实施例所提供的虚拟链路建立方法、通信网元及网络系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。