[0029] TRILL网络中的交换设备是路由桥(英文:Routing Bridge,缩写:RB);基于FCoE技术的网络中的交换设备是具有FC转发者(英文:FC Forwarder,缩写:FCF)功能的设备。本发明各实施例中将FCoE技术应用到TRILL网络中,形成FCoE over TRILL的组网方式,实现在TRILL网络中传输存储业务。
[0030] 本发明各实施例中的源设备为服务器,目标设备为SAN中的存储设备。源设备和目标设备均位于以太网中,交换设备位于TRILL网络中,也就是说,以太网中的源设备经过TRILL网络中的交换设备,将报文发送给以太网中的目标设备。TRILL网络中与源设备或目标设备连接的交换设备为边缘交换设备。边缘交换设备在面向以太网侧具有FCF的功能,在面向TRILL网络侧具有RB的功能。
[0031] 为了使TRILL网络中的交换设备在发生故障时,不将故障通告发送给所有与其存在连接关系的交换设备,预先将TRILL网络划分为多个多拓扑(英文:multiple topologies,缩写:MT)网络。不同MT网络中的交换设备之间可能存在物理连接,但是在逻辑上是相互隔离的,也就是说交换设备仅能够和其属于同一个MT网络中的交换设备进行通信。
[0032] 每个交换设备可以属于一个或多个MT网络。在交换设备中可以通过路由表的形式记录其与MT网络之间的对应关系,以及与其属于同一个MT网络中的其他交换设备;当交换设备属于多个MT网络时,该路由表中分别记录在各MT网络中与该交换设备属于同一MT网络的其他交换设备。
[0033] 图1为本发明实施例提供的FCoE报文转发方法的流程图,如图1所示,该报文转发方法包括:
[0034] 101、边缘交换设备接收源设备发送的FCoE报文。其中,所述FCoE报文中携带有目的地址和虚拟局域网标识。
[0035] 具体的,源设备需要访问目标设备时,将FCoE报文发送给位于该源设备所在的以太网与TRILL网络边界的边缘交换设备。该FCoE报文中携带有目的地址,即目标设备的地址,以及虚拟局域网标识(英文:Virtual Local AreaNetwork Identity,缩写:VLAN ID)。其中,源设备在将FCoE报文发送给交换设备时,在该FCoE报文中添加该源设备的VLAN ID。
[0036] 交换设备通过VLAN ID可以确定利用哪个MT网络将该源设备发送的FCoE报文转发给目标设备。
[0037] 102、边缘交换设备根据所述虚拟局域网标识,查询与所述虚拟局域网标识对应的MT网络。
[0038] 具体的,在交换设备中预先存储有VLAN ID与MT网络之间的对应关系。交换设备根据所接收到的FCoE报文中的VLAN ID,在预先存储的VLAN ID与MT网络的对应关系中查询,获知与该VLAN ID对应的MT网络。
[0039] 103、边缘交换设备对所述FCoE报文进行封装,得到TRILL报文。
[0040] 具体的,交换设备在查询到与FCoE报文中的VLAN ID对应的MT网络之后,将FCoE报文封装为TRILL报文。对FCoE报文进行封装的方法为,在FCoE报文的外层,增加TRILL报文头。将封装了TRILL报文头的FCoE报文,作为TRILL报文。该TRILL报文是在一个MT网络中传输的报文,本发明实施例中所述的TRILL报文是在所查询到的MT网络中传输的报文。
[0041] 该TRILL报文依次包括外层以太网头、TRILL报文头和FCoE报文。
[0042] 其中,在TRILL报文头中包括该MT网络的多拓扑标识(英文:multipletopologies identifier,缩写:MT-ID)、以太类型、版本号、跳数以及用于对交换设备进行标识的昵称(nickname)等。MT-ID为与所述虚拟局域网标识对应的多拓扑网络的标识,用于标识TRILL网络的逻辑拓扑,通过MT-ID可以对TRILL网络的多个MT网络进行区分。FCoE报文作为该TRILL报文的净荷(英文:payload)。
[0043] FCoE报文包括以太网头和作为该FCoE报文的净荷的FC报文。其中,以太网头包括源设备的介质访问控制(英文:media access control,缩写:MAC)地址、目的设备的MAC地址以及源设备的VLAN ID。源设备的VLANID是交换设备利用FCF功能为其分配的。
[0044] 源设备连接到两个边缘交换设备,两个边缘交换设备各自为源设备分配VLAN ID。在主用路径中的边缘交换设备正常时,源设备发送的FCoE报文的VLAN ID为主用路径上的边缘交换设备为源设备分配的VLAN ID。在主用路径中的边缘交换设备发生故障时,源设备将FCoE报文切换到备用路径上进行传输,这种情况下,源设备发送的FCoE报文的VLAN ID为备用路径上的边缘交换设备为源设备分配的VLAN ID。上述两个边缘交换设备为源设备分配的VLAN ID是预先规划好的。
[0045] FC报文包括用于FC转发的源设备的光纤通道标识(英文:Fiber ChannelID,缩写:FCID)、目的设备的FCID以及小型计算机系统接口(英文:SmallComputer System Interface,缩写:SCSI)命令或者根据SCSI命令所获得的存储数据。
[0046] 104、边缘交换设备将所述TRILL报文在与所述虚拟局域网标识对应的MT网络中发送给的另一边缘交换设备。
[0047] 其中,所述另一边缘交换设备与所述目的地址对应的目标设备所在的以太网连接。执行步骤104是为了使所述边缘交换设备根据所述TRILL报文,得到FCoE报文,并将所述FCoE报文发送给所述目的地址对应的目标设备。
[0048] 具体的,交换设备在将FCoE报文封装为TRILL报文之后,在步骤102中所查询到的MT网络中对该TRILL报文进行转发,将该TRILL报文发送给与目标设备所在以太网连接的边缘交换设备。其中,该目标设备是FCoE报文中所携带的目的地址对应的设备。
[0049] 该边缘交换设备将TRILL报文解封装,得到FCoE报文,将该FCoE报文发送给目的地址对应的目标设备。
[0050] 源设备中预先设置用于多路径管理的应用程序,用以在主用路径中的交换设备发生故障时,将FCoE报文切换到备用路径上进行传输。在基于上述步骤实现的TRILL网络中,主用路径与备用路径的选择由源设备决定。
[0051] FCoE报文在通过主用路径或备用路径进行传输时,在该FCoE报文中所携带的VLAN ID不同,从而使得主用路径和备用路径可以分别属于不同的MT网络,从而更有效地提高了恢复报文传输的效率。交换设备在发生故障时,会发送故障通告,由于本发明各实施例中的交换设备仅能够与属于当前MT网络内的其他交换设备进行通信,因此,避免了发生故障的交换设备将故障通告发送给所有与其存在物理连接的交换设备,也避免了这些交换设备重新计算转发路径,进一步地提高了恢复报文传输的效率。
[0052] 本发明实施例提供的报文转发方法中,交换设备在从源设备接收到FCoE报文之后,根据该FCoE报文中所携带的源设备的虚拟局域网标识,查询出与该虚拟局域网标识对应的多拓扑网络,在将FCoE报文封装为TRILL报文之后,将该TRILL报文在TRILL网络中的该多拓扑网络中进行转发,从而使得TRILL网络中发生故障的交换设备仅能够将故障通告发送给其所属的多拓扑网络中的其他交换设备,不会造成不属于该多拓扑网络的交换设备重新计算转发路径,有效地提高了在交换设备发生故障时恢复报文传输的效率。
[0053] 本发明各实施例中的TRILL网络,仍可以采用与现有技术中类似的中间系统到中间系统(英文:Intermediate system to intermediate system,缩写:ISIS)的路由协议,通过多拓扑技术,将TRILL网络规划为多个控制区域,即多个MT网络,各个控制区域之间在逻辑上是彼此隔离,互不影响。各控制区域还分别包括传输信令的控制平面和传输数据的转发平面。
[0054] 具体的,本发明各实施例中TRILL报文在TRILL网络中的转发方法,可以采用与现有技术中类似的实现方式,此处不再赘述。
[0055] 将FCoE技术应用到TRILL网络之后,TRILL网络中不仅可以传输数据业务,还可以传输存储业务。传输数据业务的源设备与传输存储设备的源设备的VLAN ID不相同,因此基于上述方法,可以使得交换设备在相应的MT网络中对数据业务或存储业务进行转发。
[0056] 例如,将TRILL网络被划分为三个MT网络,分别为MT1、MT2和MT3;对于携带的VLAN ID为100的FCoE报文,通过MT1中的交换设备进行转发;对于携带的VLAN ID为10的FCoE报文,通过MT2中的交换设备进行转发;对于携带的VLAN ID为20的FCoE报文,通过MT3中的交换设备进行转发。VLAN ID为100的FCoE报文用于传输数据业务;VLAN ID为10或20的FCoE报文用于传输存储业务。
[0057] 若交换设备所接收到的FCoE报文中的VLAN ID为10,则交换设备需要将该FCoE报文在MT2对应交换设备之间进行转发,而不会将该FCoE报文发送给MT1或MT3中的交换设备。相应地,当MT2中的交换设备发生故障时,该交换设备仅会将故障通告发送给MT2中的其他交换设备,而不会发送给MT1或MT3中的交换设备,避免了MT1或MT3中的交换设备重新进行转发路径的计算,从而能够提高恢复报文传输的效率。
[0058] 图2为本发明实施例提供的FCoE报文转发设备的结构示意图,如图2所示,该FCoE报文转发设备包括接收单元11、查询单元12、处理单元13和发送单元14。
[0059] 其中,接收单元11,用于接收源设备发送的FCoE报文,所述FCoE报文中携带有目的地址和所述源设备的虚拟局域网标识;
[0060] 查询单元12,用于根据所述虚拟局域网标识,查询与所述虚拟局域网标识对应的多拓扑网络;
[0061] 处理单元13,用于对所述FCoE报文进行封装,获得TRILL报文;
[0062] 发送单元14,用于将所述TRILL报文在与所述虚拟局域网标识对应的所述多拓扑网络中发送给边缘交换设备,所述边缘交换设备与所述目的地址对应的目标设备所在的以太网连接。
[0063] 进一步地,所述处理单元13具体用于:
[0064] 在所述FCoE报文的外层,封装包括MT-ID的TRILL报文头,获得TRILL报文,所述MT-ID为与所述虚拟局域网标识对应的多拓扑网络的标识。
[0065] 具体的,本发明实施例中的FCoE报文转发设备进行FCoE报文转发的方法,可以参见上述对应的方法实施例中所述的操作步骤,此处不再赘述。
[0066] 本发明实施例提供的FCoE报文转发设备,在从源设备接收到FCoE报文之后,根据该FCoE报文中所携带的源设备的虚拟局域网标识,查询出与该虚拟局域网标识对应的多拓扑网络,在将FCoE报文封装为TRILL报文之后,将该TRILL报文在TRILL网络中的该多拓扑网络中进行转发,从而使得TRILL网络中发生故障的交换设备仅能够将故障通告发送给其所属的多拓扑网络中的其他交换设备,不会造成不属于该多拓扑网络的交换设备重新计算转发路径,有效地提高了在交换设备发生故障时恢复报文传输的效率。
[0067] 图3为本发明实施例提供的边缘交换设备的结构示意图,该边缘交换设备具体可以是路由器或网络交换机。如图3所示,该边缘交换设备包括:
[0068] 处理器21、总线23和通信接口24。处理器21和通信接口24之间通过总线23连接并完成相互间的通信。
[0069] 通信接口24接收源设备发送的FCoE报文,所述FCoE报文中携带有目的地址和所述源设备的虚拟局域网标识。
[0070] 处理器21可以为单核或多核中央处理单元(英文:Central ProcessingUnit,缩写:CPU),网络处理器(英文:network processor),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),或者为特殊应用集成电路(英文:application-specific integrated circuit,缩写:ASIC),或者为被配置成实施本发明实施例的一个或多个集成电路。
[0071] 在处理器21为CPU的情况下,边缘交换设备还包括存储器。存储器可以为高速随机存储器(英文:random access memory,缩写:RAM),也可以为非易失性存储器(英文:non-volatile memory),例如至少一个磁盘存储器。
[0072] 存储器中存放程序代码,所述程序代码包括计算机操作指令,CPU根据存储器中的所述程序代码的指令执行以下说明的步骤。
[0073] 在处理器21为网络处理器、FPGA,CPLD或ASIC的情况下,处理器21中的硬件逻辑决定了处理器21的功能。
[0074] 处理器21执行以下步骤:
[0075] 处理器21通过总线23获取通信接口24接收到的FCoE报文,根据所述虚拟局域网标识,查询与所述虚拟局域网标识对应的多拓扑网络。
[0076] 处理器21对所述FCoE报文进行封装,得到TRILL报文,该TRILL报文是在与所述虚拟局域网标识对应的所述多拓扑网络中的TRILL报文,并将得到的TRILL报文通过总线23发送到通信接口24。在与所述虚拟局域网标识对应的所述多拓扑网络中的TRILL报文,即为在报文中携带有与所述虚拟局域网标识对应的MT-ID的TRILL报文。
[0077] 通信接口24将所述TRILL报文发送给另一边缘交换设备,所述另一边缘交换设备与所述目的地址对应的目标设备所在的以太网连接。所述另一所述边缘交换设备根据所述TRILL报文,得到所述FCoE报文,并将所述FCoE报文发送给所述目标设备。
[0078] 图4为本发明实施例提供的FCoE报文转发系统的结构示意图,如图4所示,该FCoE报文转发系统包括第一边缘交换设备51、第二边缘交换设备52、第三边缘交换设备53和第四边缘交换设备54。
[0079] 进一步地,该FCoE报文转发系统还可以包括源设备30和目标设备40。
[0080] 源设备30和目标设备40分别位于以太网中,第一边缘交换设备51、第二边缘交换设备52、第三边缘交换设备53和第四边缘交换设备54位于TRILL网络中。第一边缘交换设备51和第二边缘交换设备52是与源设备30所在的以太网连接的边缘交换设备;第三边缘交换设备53和第四边缘交换设备54是与目标设备40所在的以太网连接的边缘交换设备。
[0081] 主用路径是由源设备30、第一边缘交换设备51、第三边缘交换设备53和目标设备40所组成的传输路径;备用路径是由源设备30、第二边缘交换设备52、第四边缘交换设备54和目标设备40所组成的传输路径。主用路径与备用路径属于不同的MT网络。不同的MT网络之间可以通过其各自的MT-ID进行区分,也就是说,主用路径所属的MT网络的MT-ID与备用路径所属的MT网络的MT-ID不相同。
[0082] 需要说明的是,在主用路径上的第一边缘交换设备51和第三边缘交换设备53之间,还可以包括一个或多个TRILL网络中的交换设备;在备用路径上的第二边缘交换设备52和第四边缘交换设备54之间,也还可以包括一个或多个TRILL网络中的交换设备。
[0083] 在主用路径中的交换设备均处于正常工作状态的情况下,源设备30优选地将FCoE报文发送给第一边缘交换设备51,以利用主用路径将该FCoE报文发送给目标设备40。当主用路径中的一个或多个交换设备发生故障的情况下,源设备30将FCoE报文发送给第二边缘交换设备52,以利用备用路径将该FCoE报文发送给目标设备40。
[0084] 具体的,本发明实施例中的FCoE报文转发系统进行FCoE报文转发的方法,可以参见上述对应的方法实施例中所述的操作步骤,此处不再赘述。
[0085] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0086] 以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。