多链接透明传输互连转发表生成方法、装置及网络设备的制作方法

文档序号:7594705阅读:146来源:国知局
专利名称:多链接透明传输互连转发表生成方法、装置及网络设备的制作方法
技术领域
本发明涉及数据通信领域,尤其涉及一种多链接透明传输互连转发表生成方法、 装置及网络设备。
背景技术
在多链接透明传输互连(Transparent Interconnection of Lots of Link ;简称 为TRILL)网络中,运行TRILL协议的交换机同时具有二层转发功能和三层路由功能,通常 被称为路由交换机(Route Bridge ;简称为RBridge)。TRILL网路中数据流的转发是根据 RBridge的Nickname查找TRILL转发表(TRILL转发表包括两个内容Nickname和下一跳路 由交换机的介质访问控制(Media Access Control ;简称为MAC)地址),找到目的RBridge 对应的下一跳进行转发的。图1为现有技术TRILL网络的一种结构示意图。该网络中包括第一 TRILL子网 A和第二 TRILL子网B。第一 TRILL子网A包括交换机bl和b2、路由交换机RBI、RB2和 RB3 ;第二 TRILL子网B包括交换机b3和b4、路由交换机RB4、RB5和RB6。并且假设路由 交换机RB3和路由交换机RB6的Nickname相同,均为0x0001。其中,以第一 TRILL子网A中 交换机bl往交换机Μ发送数据流为例,说明TRILL网络中数据流的转发过程路由交换机 RBURB2和RB3建立TRILL邻居,路由交换机RB1、RB2和RB3均获取其他路由交换机的链路 状态信息,包括Nickname的信息及相应的下一跳。交换机bl发送目的MAC地址为交换机 b2的数据流,路由交换机RBl收到交换机bl发送的报文后,在不改变原有报文的情况下添 加TRILL报文头封装成TRILL报文,TRILL报文头主要包含5个部分外层目的MAC地址,外 层源MAC地址,外层虚拟局域网(Virtual Local Area Network ;简称为=VLAN)标识(ID), 入口路由交换机(Ingress RBridge)的Nickname和出口路由交换机(Egress RBridge)的 Nickname0路由交换机RBl封装的TRILL报文头中的外层目的MAC地址为路由交换机RB2 的MAC地址,外层源MAC地址为路由交换机RBl的MAC地址,入口路由交换机的Nickname为 路由交换机RBl的Nickname,出口路由交换机的Nickname为路由交换机RB3的Nickname。 在封装后,路由交换机RBl将TRILL报文发送给路由交换机RB2。路由交换机RB2收到报文 后,根据出口路由交换机的Nickname查找TRILL转发表,将外层目的MAC修改为路由交换 机RB3的MAC地址,外层源MAC修改为路由交换机RB2的MAC后,转发给路由交换机RB3。 路由交换机RB3收到报文后,发现出口路由交换机的Nickname为自己,则解封装TRILL报 文,查找MAC表,将报文转发给交换机1^2。第二 TRILL子网B中数据流的转发与此相类似。其中,Nickname用于标识每台路由交换机,是一个16位的无符号字符,可以是为 路由交换机静态配置的,也可以是路由交换机根据一些特定的参数,例如接口的状态、交换 标识(Switch ID)等参数,通过哈希(HASH)算法计算得出的。不管Nickname是静态配置还 是动态生成,不同网络中可能出现相同的Ni ckname,那么在两网融合时就会发生Ni ckname 冲突。在第一 TRILL子网A和第二 TRILL子网B没有互接前,当路由交换机RB2接收到交换机bl发往交换机1^2的报文时,可以将该报文正确转发至路由交换机RB3并最终发送给 交换机1^2。在第一 TRILL子网A和第一 TRILL子网B融合,也就是路由交换机RB2和路由 交换机RB5互接后,路由交换机RB2和路由交换机RB5建立了 TRILL邻居,并完成了链路状 态数据库的同步。对路由交换机RB2而言,当接收到出口路由交换机的Nickname为0x0001 的报文时,会发现两个下一跳,一个是路由交换机RB3,另一个是路由交换机RB5。针对该情 况,路由交换机RB2将通过最短路径优先(Shortest Path First ;简称为SPF)算法计算 出到达Nickname为0x0001的下一跳。其中,若路由交换机RB2计算出的下一跳为路由交 换机RB5,那么交换机bl发往交换机1^2的数据流将全部丢失。另外,交换机b3发往交换 机b4的数据流,本可以在满带宽情况下转发,但由于路由交换机RB2错误的将数据流转发 给了路由交换机RB5,再转发给路由交换机RB6,使得路由交换机RB5到路由交换机RB6的 带宽出现不足,发生拥塞,对于交换机b3发往交换机b4的数据流也会出现丢包。上述各种 情况将一直持续到优先级低的路由交换机重新生成新的Nickname后并不再冲突时才会得 以解决。由此可见,现有TRILL网络存在数据包丢失的问题,而TRILL网络一般为数据中心 网络,其数据传输速率非常高,已经可以达到40G,因此,数据包的丢失对该类网络而言是不 能接受的,会给数据中心网络造成不利的影响。

发明内容
本发明提供一种多链接透明传输互连转发表生成方法、装置及网络设备,用以解 决现有TRILL网络中存在的数据流丢失的问题,提高TRILL网络中数据流转发的成功率。本发明提供一种多链接透明传输互连转发表生成方法,包括第一网络的第一路由交换机接收第二网络中与所述第一路由交换机连接的第二 路由交换机发送的链路状态协议数据单元报文,所述链路状态协议数据单元报文包括所述 第二路由交换机存储的Nickname和所述Nickname对应的系统标识;所述第一路由交换机分别将所述链路状态协议数据单元报文中的Nickname和所 述Nickname对应的系统标识,与本地链路状态数据库中存储的Nickname和所述Nickname 对应的系统标识进行比较,以判断所述链路状态协议数据单元报文与所述本地链路状态数 据库中是否存在冲突的Nickname ;当判断结果为存在时,所述第一路由交换机根据所述链路状态协议数据单元报 文更新所述本地链路状态数据库,并根据更新后的本地链路状态数据库和所述冲突的 Nickname生成多链接透明传输互连转发表。本发明提供一种多链接透明传输互连转发表生成装置,包括接收模块,用于接收与本地网路中本多链接透明传输互连转发表生成装置连接 的第二网络中第二多链接透明传输互连转发表生成装置发送的链路状态协议数据单元报 文,所述链路状态协议数据单元报文包括所述第二路由交换机存储的Nickname和所述 Nickname对应的系统标识;第一判断模块,用于分别将所述链路状态协议数据单元报文中的Nickname和所 述Nickname对应的系统标识,与本地链路状态数据库中存储的Nickname和所述Nickname 对应的系统标识进行比较,以判断所述链路状态协议数据单元报文与所述本地链路状态数据库中是否存在冲突的Nickname ;第一更新生成模块,用于在所述第一判断模块的判断结果为存在时,根据所述链 路状态协议数据单元报文更新所述本地链路状态数据库,并根据更新后的本地链路状态数 据库和所述冲突的Nickname生成多链接透明传输互连转发表。本发明提供一种网络设备,包括本发明提供的任一多链接透明传输互连转发表生 成装置。本发明的多链接透明传输互连转发表生成方法、装置及网路设备,在本网络中的 路由交换机接收到其他网络的路由交换机发送的链路状态协议数据单元报文时,通过将链 路状态协议数据单元报文中的Mckname与Mckname对应的系统标识分别与本地链路状态 数据库中存储的Nickname与Nickname对应的系统标识进行比较,以判断是否存在冲突的 Nickname,即不同系统标识对应同一 Nickname,在发现冲突的Nickname时根据更新后的本 地链路状态数据库和冲突的Nickname生成TRILL转发表,使生成的TRILL转发表中不包括 冲突的Nickname对应的由链路状态协议数据单元报文更新得到的链路状态信息,保证到 达同一 Nickname的路径仅有一条,从而解决了现有技术中因冲突的Nickname导致数据流 错误转发引起的数据流丢失的问题,提高了数据流转发的成功率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。图1为现有技术TRILL网络的一种结构示意图;图2为本发明实施例一提供的TRILL转发表生成方法的流程图;图3为本发明实施例二提供的TRILL转发表生成方法的流程图;图4为本发明实施例三提供的TRILL转发表生成方法的流程图;图5为本发明实施例四提供的TRILL转发表生成装置的结构示意图;图6为本发明实施例五提供的TRILL转发表生成装置的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图2为本发明实施例一提供的TRILL转发表生成方法的流程图。如图2所示,本 实施例的方法包括步骤21、第一网络的第一路由交换机接收第二网络中与第一路由交换机连接的第 二路由交换机发送的链路状态协议数据单元(Link State Protocol Data Unit ;简称为 LSP)报文,所述LSP报文包括第二路由交换机存储的Nickname和所述Nickname对应的系 统标识。
其中,第一网络和第二网络分别为独立的TRILL网络,通过第一路由交换机和第 二路由交换机相连接,实现两网融合。在TRILL网路中,路由交换机运行中间系统到中间系统Qntermediate System to Intermediate System ;简称为ISIS)协议,通过邻居发现获得相邻路由交换机的 Nickname,并通过交互LSP信息,获取整个TRILL网络的链路状态信息,以建立起整个TRILL 网络的链路状态数据库。该链路状态数据库中包括TRILL网络中所有路由交换机的相关信 息,例如路由交换机的Nickname、系统标识(Sys ID)、下一跳MAC地址以及Nickname的优 先级等。上述LSP信息由ISIS包头和类型长度数值(Type Length Value ;简称为TLV)组 成。ISIS包头包括LSPID,该LSPID由系统标识(Sys ID)、伪节点标识符((Pseudo node ; 简称为PSN)ID)以及LSP编号(LSP number)组成。系统标识是指整个网络中标识一台设 备的唯一标识,网络中不会出现重复的系统标识,比如MAC地址,就可以作为系统标识,因 为每台设备的MAC地址是全球唯一的。TLV有多种类型,其中类型(Type)值为6的TLV中 携带了路由交换机的Nickname信息,例如Nickname、该Nickname对应的下一跳MAC地址、 以及该Nickname的优先级等。在本实施例中,以第一网络中的第一路由交换机为执行主体,即以第二网络中的 第二路由交换机向第一网络中的路由交换机发送LSP报文为例,但并不限于此。其中,LSP 报文中携带的Nickname是第二路由交换机所有使用的Nickname。另外,由于各台路由交换机之间彼此交互LSP报文,因此,第二网络中的第二路由 交换机也会收到第一网络的第一路由交换机发送的LSP报文,其处理操作同第一路由交换 机。步骤22、第一路由交换机分别将LSP报文中的Nickname和Nickname对应的系统 标识,与本地链路状态数据库中存储的Nickname和Nickname对应的系统标识进行比较,以 判断LSP报文与本地链路状态数据库中是否存在冲突的Mckname ;当判断结果为是,即LSP 报文与本地链路状态数据库中存在冲突的Nickname时,执行步骤23 ;反之,当判断结果为 否,即LSP报文与本地链路状态数据库中不存在冲突的Nickname时,执行步骤24。其中,本地链路状态数据库是指第一路由交换机上的链路状态数据库。冲突的 Nickname是指不同路由交换机同时使用的Nickname。在本实施例中,第一路由交换机接收到的是TLV中类型值为6的LSP报文。当第 一路由交换机接收到LSP报文时,获取该LSP报文中携带的Nickname和Nickname对应的 系统标识;然后,将LSP报文中的Nickname与本地链路状态数据库中存储的Nickname逐一 进行比较,以判断是否存在相同的Nickname。当判断结果为LSP报文中的Nickname中与本地链路状态数据库存储的Nickname 中存在相同的Ni ckname时,第一路由交换机进一步判断相同的Ni ckname对应的LSP报 文中的系统标识,与相同的Nickname对应的本地链路状态数据库中的系统标识是否相同; 如果判断结果为相同,说明相同的Nickname对应于一个系统标识,表明LSP中该相同的 Nickname与本地链路状态数据库中该相同的Nickname对应的是同一台路由交换机,则判 定LSP报文与本地链路状态数据库中不存在冲突的Nickname ;如果判断结果为不相同,说 明相同的Nickname对应不同的系统标识,表明LSP中该相同的Nickname与本地链路状态数据库中该相同的Nickname分别对应不同的路由交换机,则判定该相同的Nickname为冲 突的 Nickname。当判断结果为LSP报文中的Nickname中与本地链路状态数据库存储的Nickname 中不存在相同的Mckname时,则直接判定LSP报文中与本地链路状态数据库中不存在冲突 的 Nickname。步骤23、第一路由交换机根据LSP报文更新本地链路状态数据库,并根据更新后 的本地链路状态数据库和冲突的Nickname生成TRILL转发表,并结束本次TRILL转发表生 成操作。具体的,第一路由交换机利用LSP报文中携带的Mckname对应的链路状态信息等 更新本地链路状态数据库,以使本地链路状态数据库保存有整个网络中各台路由交换机的 相关信息。换句话说,第一路由交换机通过该更新操作获知整个网络的链路状态信息,以便 于根据整个网络的链路状态信息生成TRILL转发表,进行数据流的转发。其中,当第一路由交换机发现冲突的Nickname时,为了防止生成的TRILL转发表 中包括两条冲突的Nickname的路径,第一路由交换机同时根据更新后的本地链路状态数 据库和冲突的Nickname生成TRILL转发表,以使TRILL转发表中仅包括第一路由交换机 上原来到达冲突的Nickname的一条链路状态信息,而不包括与该冲突的Nickname对应的 由LSP报文更新生成的链路状态信息,从而解决了根据TRILL转发表转发数据流时因冲突 Nickname选错转发路径造成的数据流丢失问题。在此说明,在本实施例中,将LSP报文中携带的所有Nickname对应的链路状 态信息均更新到了本地链路状态数据库中,这样当冲突的Nickname被分别通告到发生 Nickname冲突的路由交换机时,这两台路由交换机可以采用现有技术根据Nickname优先 级来解决Nickname冲突的问题技术方案解决Nickname冲突问题,便于与现有技术方案兼容。基于上述,本实施例提供一种根据更新后的链路状态数据库和冲突的Nickname 生成TRILL转发表的具体实施方式
,但并不限于此。该实施方式包括第一路由器可以获取 更新后的本地链路状态数据库中,冲突的Nickname对应的更新链路状态信息;所述更新链 路状态信息是指由LSP报文中发生冲突的Nickname对应的链路状态信息更新到本地链路 状态数据库中的。然后,第一路由交换机根据更新后的本地链路状态数据库中,除了冲突的 Nickname对应的更新链路状态信息之外的其他链路状态信息,生成TRILL转发表,则所生 成的TRILL转发表中将不会存在两条或多条到冲突的Nickname的路径。步骤M、第一路由交换机根据LSP报文更新本地链路状态数据库,并根据更新后 的本地链路状态数据库生成TRILL转发表,并结束本次TRILL转发表生成操作。具体的,在没有冲突的Nickname时,第一路由交换机将LSP报文中的链路状态信 息更新到本地链路状态数据库中,并根据更新后的本地链路状态数据库中的全部链路状态 信息生成TRILL转发表,以基于生成的TRILL转发表进行数据流转发。本实施例的TRILL转发表生成方法,在两网融合的情况下,当本网络中的路由 交换机接收到与其融合的网络中的路由交换机发送的LSP报文时,通过将LSP报文中的 Nickname与Nickname对应的系统标识分别与本地链路状态数据库中存储的Nickname与 Nickname对应的系统标识进行比较,以判断是否存在冲突的Nickname,即不同系统标识对应的相同Nickname,在发现冲突的Nickname时根据更新后的本地链路状态数据库和冲突 的Nickname生成TRILL转发表,使生成的TRILL转发表中不包括冲突的Nickname对应的 由LSP报文更新得到的链路状态信息,保证到达同一 Nickname的路径仅有一条,从而解决 了现有技术中因冲突的Nickname导致数据流丢失、网络拥塞等问题,提高了网络中数据流 转发的稳定性和成功率。图3为本发明实施例二提供的TRILL转发表生成方法的流程图。本实施例可基于 实施例一实现,其相同之处不再赘述,如图3所示,本实施例的方法中步骤23的具体由以下 步骤实现步骤23a、第一路由交换机根据LSP报文更新本地链路状态数据库,并将LSP报文 中的冲突的Nickname和该冲突的Nickname对应的系统标识存储到冲突映射表中,执行步 骤 23b ;其中,第一路由交换机在判断出LSP报文与本地链路状态数据库中存在冲突的 Nickname时,通过将LSP报文中的冲突的Nickname和冲突的Nickname对应的LSP报文中 的系统标识存储到冲突映射表中,以便于第一路由交换机通过判断冲突映射表是否为空来 获知是否存在冲突的Nickname。步骤23b、第一路由交换机根据更新后的本地链路状态数据库和冲突映射表,生成 TRILL转发表。具体的,第一路由交换机是根据本地链路状态数据库中存储的链路状态信息和冲 突映射表中存储的冲突的Nickname,生成TRILL转发表,其具体生成过程可参见实施例一 中该步骤23提供的实施方式,在此不再赘述。本实施例的TRILL转发表生成方法,第一路由交换机通过将冲突的Nickname和冲 突的Mckname对应的LSP报文中的系统标识存储到冲突映射表中,可以方便第一路由交换 机获知本地链路状态数据库中是否存在冲突的Mckname。尤其当整个TRILL融合网络较复 杂,存在较多冲突的Nickname时,通过专门的冲突映射表还具有便于管理冲突Nickname的 优点。图4为本发明实施例三提供的TRILL转发表生成方法的流程图。本实施例基于上 述包括冲突映射表的实施例实现,相同之处不再赘述,如图4所示,本实施例的方法在步骤 22之前还包括步骤21a、第一路由交换机判断LSP报文与冲突映射表中是否存在相同的系统标 识;当判断结果为是,即LSP报文与冲突映射表中存在相同的系统标识时,执行步骤21b ;反 之,当判断结果为否,即LSP报文与冲突映射表中不存在相同的系统标识时,执行步骤22。步骤21b、第一路由交换机判断相同的系统标识对应的LSP报文中的Nickname与 相同的系统标识对应的冲突映射表中的Nickname是否相同;当判断结果为相同时,执行步 骤22 ;反之,执行步骤21c。步骤21c、第一路由交换机将相同的系统标识和相同的系统标识对应的Nickname 从冲突映射表中删除,并执行步骤22。具体的,当冲突映射表不为空时,说明有发生冲突的Nickname需要进行解决,即 其中一台路由交换机变更其Nickname。变更后的Nickname也需要通过LSP报文通告其他 路由交换机,以保证整个TRILL网络链路状态信息的一致性。因此,当第一路由交换机在接收到LSP报文时,先将LSP报文中的系统标识与冲突映射表中存储的系统标识进行比较,以 判断该LSP报文中是否包含有待解决冲突的路由交换机的信息。当得出该LSP报文中不包含有待解决冲突的路由交换机的信息时,直接执行步骤 22,以判断是否存在新的冲突的Nickname,即判断是否存在新的有待解决冲突的路由交换 机。当得出该LSP报文中包含有待解决冲突的路由交换机的信息时,进一步比较相 同的系统标识对应的LSP报文中的Nickname与之前冲突的Nickname是否相同,以确定 Nickname冲突是否解决了。当判断结果为不相同时,说明该Mckname冲突的问题已经解决,则将原来存储在 冲突映射表中的冲突的Nickname以及对应的系统标识删除;这样在后续根据冲突映射表 生成TRILL转发表时,由于该冲突的Nickname对应的系统标识已被删除,则所生成的TRILL 转发表中将包括该被删除的系统标识对应的路由交换机的链路状态信息,使得转发给该路 由交换机的数据流能够正确到达,进一步提高数据流转发的成功率。当判断结果为相同时,说明该Nickname冲突问题尚未解决,原先存储的冲突的 Nickname仍保留在冲突映射表中,当第一路由交换机再根据冲突映射表生成的TRILL转发 表中仍只保留一条到达冲突的Nickname的路径。无论判断结果是否相同,均继续执行步骤22,以判断LSP报文与本地链路状态数 据库中是否存在新的冲突的Nickname,即判断是否存在新的有待解决冲突的路由交换机。本实施例的TRILL转发表生成方法,在接收到LSP报文时先将LSP报文与冲突映 射表进行比较,并根据比较结果对冲突映射表进行更新,以提高第一路由交换机根据冲突 映射表生成TRILL的准确性,进一步提高数据流转发的稳定性和成功率。在上述各实施例的基础上,当发现冲突的Nickname时,冲突的Nickname对应的两 台路由交换机在获知冲突后,将根据冲突Mckname的优先级进行Mckname冲突的解决,即 优先级低的路由交换机将放弃该冲突的Nickname,并重新生成新的Nickname,然后通告给 邻居。关于Nickname冲突解决的详细方案可参见现有技术,本实施例不再赘述。本发明以下实施例将结合图1所示的网络结构,以具体示例对上述各实施例的流 程做进一步分析说明,在本实施例中,以Switch ID表示系统标识。具体如下在初始状态下,设置标志位C为0 ;该标志位用于表示冲突映射表中是否为空,当 取值为O表示为空;取值为1表示不为空。当路由交换机RB2和路由交换机RB5互连后,将 通过ISIS协议建立TRILL邻居。本实施例以路由交换机RB2的处理行为为例进行说明,路 由交换机RB5的行为与路由交换机RB2的处理行为相同。路由交换机RB2收到路由交换机RB5通告的TLV中类型值为6的LSP报文后, 先判断标志位C的值。由于初始值为0,故路由交换机RB2直接将收到的LSP中包含的 Nickname与路由交换机RB2本地的链路状态数据库中的Nickname进行比对,查看是否有冲 突的Nickname。其中,假设路由交换机RB3和路由交换机RB6具有相同的Nickname,因此 路由交换机RB2发现本地链路数据库中路由交换机RB3 (假设路由交换机RB3的Switch ID 为0000. 0000. 00001)的Nickname为0x0001,与该LSP报文中携带的路由交换机RB6 (假 设路由交换机 RB6 的 Switch ID 为 0000. 0000. 0002)的 Nickname (0x0001)相同,发生了冲 突。则路由交换机RB2将标志位C设置为1,将LSP报文中发生冲突的Nickname的相关信息(例如Nickname、对应的Switch ID、Nickname的优先级、对应的下一跳MAC地址等)存 储到冲突映射表中,构成一个冲突映射表项,该冲突映射表项表示Nickname 0x0001的分 别指向两个不同的Switch ID 0000. 0000. 0001和0000. 0000. 0002。然后,在路由交换机 RB2利用LSP中的链路状态信息更新本地链路状态数据库之后,根据更新后的本地链路状 态数据库更新TRILL转发表,但是不将这个冲突的Nickname对应的相关信息更新到TRILL 转发表中,这样TRILL转发表中到达这个冲突的Nickname 0x0001的下一跳就不会发生改 变,仍然是路由交换机RB3,这样路由交换机RB2接收到的数据流就能正确的被转发。接下 来,路由交换机RB2等待冲突的解决。本实施例假设路由交换机RB6的冲突的Nickname的优先级比较低,则路由交换机 RB6在收到路由交换机RB3通告的LSP报文后,发现其Nickname与路由交换机RB3发生了 冲突,则放弃冲突的Nickname,重新动态生成新的Nickname,并通过LSP报文向邻居通告。当路由交换机RB2再次从路由交换机RB5处收到路由交换机RB6通告的TLV Type 为6的LSP报文时,先判断标志位。由于此时标志位C为1,故路由交换机RB2先判断LSP 报文中包含的Switch ID是否含有冲突映射表中存储的Switch ID (即0000. 0000. 0001和 0000. 0000. 0002)。路由交换机 RB2 判断出该 LSP 报文中含有 Switch ID 0000. 0000. 0002, 然后,进一步判断LSP报文中Switch ID 0000. 0000. 0002对应的Nickname与冲突映射表 中Switch ID0000. 0000. 0002对应的Nickname是否相同。因为路由交换机RB6已经放弃 了冲突的Ni ckname (0x0001),所以路由交换机RB2将判断出不相同,即不存在Ni ckname 冲突了。于是路由交换机RB2将标志位C设置为0,并清除之前保存在冲突映射表中的冲 突Nickname的相关信息。接下来,路由交换机RB2继续对该LSP报文中包含的Nickname 与本地链路状态数据库中的Nickname进行比对,并得出不存在冲突的Nickname。路由 交换机RB2根据该LSP报文更新本地链路状态数据库,并通过最短路径算法(Siortest PathFirst ;简称为SPF)算法生成最新的TRILL转发表,并根据该最新的TRILL转发表转 发数据流。由上述可见,本实施例的TRILL转发表生成方法,同时根据Nickname和系统标识 来判断是否存在冲突的Nickname,并在发现冲突的Nickname之后,将冲突的Nickname的相 关信息存储到冲突映射表中,在根据LSP更新后的本地链路状态数据库生成TRILL转发表 的时候不将冲突的Nickname对应的相关信息更新到TRILL转发表中,在冲突解决后再行更 新到TRILL转发表中,使得在Nickname冲突的一段时间内,TRILL转发表中仅包含到达冲 突Nickname的一个下一跳,使各路由交换机能够正确传输数据流,避免了由于Nickname冲 突导致数据流的错误转发而引起的网络中流量冲突、数据流丢失、数据流传输时延等问题。图5为本发明实施例四提供的TRILL转发表生成装置的结构示意图。本实施例的 装置可以作为TRILL网络中的路由交换机的功能模块设置于路由交换机内,也可以独立于 路由交换机而与路由交换机连接。如图5所示,本实施例的装置包括接收模块51、第一判 断模块52和第一更新生成模块53。其中,接收模块51,用于接收与本地网路中本TRILL转发表生成装置连接的第二 网络中第二 TRILL转发表生成装置发送的LSP报文,所述LSP报文包括第二路由交换机存 储的Nickname和Nickname对应的系统标识;第一判断模块52,与接收模块51连接,用于 分别将LSP报文中的Nickname和Nickname对应的系统标识,与本地链路状态数据库中存储的Nickname和Nickname对应的系统标识进行比较,以判断LSP报文与本地链路状态数 据库中是否存在冲突的Nickname ;第一更新生成模块53,与第一判断模块52连接,用于在 第一判断模块52的判断结果为存在时,根据LSP报文更新本地链路状态数据库,并根据更 新后的本地链路状态数据库和冲突的Nickname生成TRILL转发表。本实施例的TRILL转发表生成装置的各功能模块可用于执行上述方法实施例的 流程,其具体工作原理不再赘述,详见方法实施例的描述。本实施例的TRILL转发表生成装置,可在两网融合的情况下,通过将与其融合的 网络中的路由交换机发送的LSP报文中的Nickname与Nickname对应的系统标识分别与本 地链路状态数据库中存储的Nickname与Nickname对应的系统标识进行比较,以判断是否 存在冲突的Nickname,即不同系统标识对应的相同Nickname,在发现冲突的Nickname时根 据更新后的本地链路状态数据库和冲突的Nickname生成TRILL转发表,使生成的TRILL转 发表中不包括冲突的Nickname对应的由LSP报文更新得到的链路状态信息,保证到达同一 Nickname的路径仅有一条,从而解决了现有技术中因冲突的Nickname导致数据流丢失、网 络拥塞等问题,提高了网络中数据流转发的稳定性和成功率。图6为本发明实施例五提供的TRILL转发表生成装置的结构示意图。本实施例可 基于实施例四实现,如图6所示,本实施例的装置还包括第二更新生成模块61。第二更新生成模块61,与第一判断模块52连接,用于在第一判断模块52的判断结 果为不存在时,根据LSP报文更新本地链路状态数据库,并根据更新后的本地链路状态数 据库生成TRILL转发表。进一步,本实施例的装置中第一判断模块52包括第一判断单元521、第二判断单 元522、第一判定单元523和第二判定单元524。具体的,第一判断单元521,用于将LSP报文中的Nickname与本地链路状态数据 库中的Nickname进行比较,以判断是否存在相同的Nickname ;第二判断单元522,与第一判 断单元521连接,用于在第一判断单元521的判断结果为存在时,判断相同的Nickname对 应的LSP报文中的系统标识,与相同的Mckname对应的本地链路状态数据库中的系统标识 是否相同;第一判定单元523,与第二判断单元522连接,用于在第二判断单元522的判断 结果为不相同时,判定相同的Nickname为冲突的Nickname,并将判定结果提供给第一更新 生成模块53 ;第二判定单元524,与第一判断单元521和第二判断单元522连接,用于在第 一判断单元521的判断结果为不存在,或者在第二判断单元522的判断结果为相同时,判定 LSP报文与本地链路状态数据库中不存在冲突的Nickname,并将判定结果提供给第二更新 生成模块61。更进一步,本实施例的第一更新生成模块53包括更新单元531、获取单元532和 生成单元533。具体的,更新单元531,与接收模块51连接,用于根据LSP报文更新本地链路状态 数据库;获取单元532,与更新单元531和第一判定单元523连接,用于获取更新后的本地 链路状态数据库中,冲突的Mckname对应的更新链路状态信息;生成单元533,与获取单元 532连接,用于根据更新后的本地链路状态数据库中,除冲突的Nickname对应的更新链路 状态信息之外的其他链路状态信息,生成TRILL转发表。本实施例TRILL转发表生成装置的上述各功能模块或单元可用于执行上述方法实施例的流程,其具体工作原理不再赘述,详见方法实施例的描述。更进一步,本实施例的TRILL转发表生成装置还包括存储模块62。存储模块62, 与第一判定单元523连接,用于在第一更新生成模块53生成TRILL转发表之前,将第一判 定单元523判定出的LSP报文中的冲突的Nickname和冲突的Nickname对应的系统标识存 储到冲突映射表中。基于上述存储模块62,本实施例的第一更新生成模块53具体用于根据LSP报文 更新本地链路状态数据库,并根据更新后的本地链路状态数据库和冲突映射表,生成TRILL 转发表。本实施例的TRILL转发表生成装置,通过存储模块在判断出LSP报文与本地链 路状态数据库中存在冲突的Mckname时,将LSP报文中的冲突的Mckname和冲突的 Nickname对应的LSP报文中的系统标识存储到冲突映射表中,通过判断冲突映射表是否为 空即可获知是否存在冲突的Nickname,提高了获知是否存在冲突的Nickname的便利性,还 具有便于管理冲突Nickname的优点。基于上述,本实施例的TRILL转发表生成装置还包括第二判断模块63、第三判断 模块64、删除模块65和触发模块66。其中,第二判断模块63,与接收模块51连接,用于在第一判断模块52判断LSP报 文与本地链路状态数据库中是否存在冲突的Mckname之前,判断LSP报文与冲突映射表中 是否存在相同的系统标识;第三判断模块64,与第二判断模块63连接,用于在第二判断模 块63的判断结果为存在时,判断相同的系统标识对应的LSP报文中的Nickname与相同的 系统标识对应的冲突映射表中的Nickname是否相同;删除模块65,与第三判断模块64连 接,用于在第三判断模块64的判断结果为不相同时,将相同的系统标识和相同的系统标识 对应的Nickname从冲突映射表中删除,并触发第一判断模块52执行判断操作;触发模块 66,与第二判断模块63和第三判断模块64连接,用于在第二判断模块63的判断结果为不 存在,或第三判断模块64的判断结果为相同时,触发第一判断模块52执行判断LSP报文与 本地链路状态数据库中是否存在冲突的Nickname的操作。其中,TRILL转发表生成装置也 可以不设置触发模块66,而直接由第二判断模块63和第三判断模块64分别直接触发第一 判断模块52,本实施例以存在触发模块66为例。本实施例的TRILL转发表生成装置的上述功能模块可用于执行上述方法实施例 的流程,其工作原理不再赘述,详见方法实施例的相应描述。本实施例的TRILL转发表生成装置,通过上述功能模块在接收到LSP报文时先将 LSP报文与冲突映射表进行比较,并根据比较结果对冲突映射表进行更新,以提高根据冲突 映射表生成TRILL的准确性,进一步提高数据流转发的稳定性和成功率。在此说明,上述各实施例的TRILL转发表生成装置中的各功能模块主要可由路由 交换机的CPU来实现。例如本网络中的本路由交换机的硬件接口模块接收到另一网络中 另一路由交换机发送的LSP报文后,本路由交换机的CPU从该硬件接口模块获取LSP报文, 然后对LSP报文进行处理生成TRILL转发表,之后CPU将生成的TRILL转发表下发到本路 由交换机的硬件转发模块,以对数据流进行硬件转发。本发明实施例六提供一种网络设备,包括上述实施例提供的TRILL转发表生成装 置。其中,TRILL转发表生成装置的结构和工作原理详见上述实施例的描述,在此不再赘述。
本实施例的网络设备包括TRILL转发表生成装置,可用于执行上述方法实施例 提供的TRILL转发表生成方法的流程,同样可在两网融合的情况下,解决现有技术中因冲 突的Nickname导致数据流丢失、网络拥塞等问题,提高网络中数据流转发的稳定性和成功率。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
1.一种多链接透明传输互连转发表生成方法,其特征在于,包括第一网络的第一路由交换机接收第二网络中与所述第一路由交换机连接的第二路由 交换机发送的链路状态协议数据单元报文,所述链路状态协议数据单元报文包括所述第二 路由交换机存储的Nickname和所述Nickname对应的系统标识;所述第一路由交换机分别将所述链路状态协议数据单元报文中的Nickname和所述 Nickname对应的系统标识,与本地链路状态数据库中存储的Nickname和所述Nickname对 应的系统标识进行比较,以判断所述链路状态协议数据单元报文与所述本地链路状态数据 库中是否存在冲突的Nickname ;当判断结果为存在时,所述第一路由交换机根据所述链路状态协议数据单元报文更新 所述本地链路状态数据库,并根据更新后的本地链路状态数据库和所述冲突的Nickname 生成多链接透明传输互连转发表。
2.根据权利要求1所述的多链接透明传输互连转发表生成方法,其特征在于,还包括 当判断结果为不存在时,所述第一路由交换机根据所述链路状态协议数据单元报文更新所述本地链路状态数据库,并根据更新后的本地链路状态数据库生成所述多链接透明传 输互连转发表。
3.根据权利要求1所述的多链接透明传输互连转发表生成方法,其特征在于,所述第 一路由交换机分别将所述链路状态协议数据单元报文中的Nickname和所述Nickname对应 的系统标识,与本地链路状态数据库中存储的Nickname和所述Nickname对应的系统标识 进行比较,以判断所述链路状态协议数据单元报文与所述本地链路状态数据库中是否存在 冲突的Nickname包括所述第一路由交换机将所述链路状态协议数据单元报文中的Nickname与所述本地链 路状态数据库中的Nickname进行比较,以判断是否存在相同的Nickname ;当判断结果为所述链路状态协议数据单元报文与所述本地链路状态数据库中存在所 述相同的Nickname时,所述第一路由交换机判断所述相同的Nickname对应的所述链路状 态协议数据单元报文中的系统标识,与所述相同的Nickname对应的所述本地链路状态数 据库中的系统标识是否相同;当判断结果为所述相同的Nickname对应的所述链路状态协议数据单元报文中的与所 述本地链路状态数据库中的系统标识不相同时,所述第一路由器判定所述相同的Nickname 为所述冲突的Nickname ;当判断结果为所述链路状态协议数据单元报文与所述本地链路状态数据库中不存在 所述相同的Mckname,或者当判断结果为所述相同的Nickname对应的所述链路状态协议 数据单元报文中的与所述本地链路状态数据库中的系统标识相同时,所述第一路由器判定 所述链路状态协议数据单元报文与本地链路状态数据库中不存在所述冲突的Nickname。
4.根据权利要求1或2或3所述的多链接透明传输互连转发表生成方法,其特征在于, 所述第一路由交换机根据更新后的本地链路状态数据库和所述冲突的Nickname生成多链 接透明传输互连转发表包括所述第一路由交换机获取所述更新后的本地链路状态数据库中,所述冲突的Nickname 对应的更新链路状态信息;所述第一路由交换机根据所述更新后的本地链路状态数据库中,除所述冲突的Nickname对应的更新链路状态信息之外的其他链路状态信息,生成所述多链接透明传输互 连转发表。
5.根据权利要求1或2或3所述的多链接透明传输互连转发表生成方法,其特征在于, 当判断结果为存在时,所述第一路由交换机根据更新后的本地链路状态数据库和所述冲突 的Nickname生成多链接透明传输互连转发表之前还包括所述第一路由交换机将所述链路状态协议数据单元报文中的冲突的Nickname和所述 冲突的Nickname对应的系统标识存储到冲突映射表中;所述第一路由交换机根据更新后的本地链路状态数据库和所述冲突的Nickname生成 多链接透明传输互连转发表具体为所述第一路由交换机根据更新后的本地链路状态数据 库和所述冲突映射表,生成所述多链接透明传输互连转发表。
6.根据权利要求5所述的多链接透明传输互连转发表生成方法,其特征在于,所述第 一路由交换机分别将所述链路状态协议数据单元报文中的Nickname和所述Nickname对应 的系统标识,与本地链路状态数据库中存储的Nickname和所述Nickname对应的系统标识 进行比较,以判断所述链路状态协议数据单元报文与所述本地链路状态数据库中是否存在 冲突的Nickname之前还包括所述第一路由交换机判断所述链路状态协议数据单元报文与所述冲突映射表中是否 存在相同的系统标识;当判断结果为所述链路状态协议数据单元报文与所述冲突映射表中存在所述相同 的系统标识时,判断所述相同的系统标识对应的所述链路状态协议数据单元报文中的 Nickname与所述相同的系统标识对应的所述冲突映射表中的Nickname是否相同;当判断结果为所述相同的系统标识对应的所述链路状态协议数据单元报文中的与所 述冲突映射表中的Nickname不相同时,所述第一路由交换机将所述相同的系统标识和所 述相同的系统标识对应的Nickname从所述冲突映射表中删除。
7.一种多链接透明传输互连转发表生成装置,其特征在于,包括接收模块,用于接收与本地网路中本多链接透明传输互连转发表生成装置连接的第二 网络中第二多链接透明传输互连转发表生成装置发送的链路状态协议数据单元报文,所述 链路状态协议数据单元报文包括所述第二路由交换机存储的Nickname和所述Nickname对 应的系统标识;第一判断模块,用于分别将所述链路状态协议数据单元报文中的Nickname和所述 Nickname对应的系统标识,与本地链路状态数据库中存储的Nickname和所述Nickname对 应的系统标识进行比较,以判断所述链路状态协议数据单元报文与所述本地链路状态数据 库中是否存在冲突的Nickname ;第一更新生成模块,用于在所述第一判断模块的判断结果为存在时,根据所述链路状 态协议数据单元报文更新所述本地链路状态数据库,并根据更新后的本地链路状态数据库 和所述冲突的Nickname生成多链接透明传输互连转发表。
8.根据权利要求7所述的多链接透明传输互连转发表生成装置,其特征在于,还包括第二更新生成模块,用于在所述第一判断模块的判断结果为不存在时,根据所述链路状态协议数据单元报文更新所述本地链路状态数据库,并根据更新后的本地链路状态数据 库生成所述多链接透明传输互连转发表。
9.根据权利要求7所述的多链接透明传输互连转发表生成装置,其特征在于,所述第 一判断模块包括第一判断单元,用于将所述链路状态协议数据单元报文中的Nickname与所述本地链 路状态数据库中的Nickname进行比较,以判断是否存在相同的Nickname ;第二判断单元,用于在所述第一判断单元的判断结果为存在时,判断所述相同的 Nickname对应的所述链路状态协议数据单元报文中的系统标识,与所述相同的Nickname 对应的所述本地链路状态数据库中的系统标识是否相同;第一判定单元,用于在所述第二判断单元的判断结果为不相同时,判定所述相同的 Nickname为所述冲突的Nickname ;第二判定单元,用于在所述第一判断单元的判断结果为不存在,或者在所述第二判断 单元的判断结果为相同时,判定所述链路状态协议数据单元报文与所述本地链路状态数据 库中不存在所述冲突的Nickname。
10.根据权利要求7或8或9所述的多链接透明传输互连转发表生成装置,其特征在 于,所述第一更新生成模块包括更新单元,用于根据所述链路状态协议数据单元报文更新所述本地链路状态数据库; 获取单元,用于获取所述更新后的本地链路状态数据库中,所述冲突的Nickname对应 的更新链路状态信息;生成单元,用于根据所述更新后的本地链路状态数据库中,除所述冲突的Nickname对 应的更新链路状态信息之外的其他链路状态信息,生成所述多链接透明传输互连转发表。
11.根据权利要求7或8或9所述的多链接透明传输互连转发表生成装置,其特征在 于,还包括存储模块,用于在所述第一更新生成模块生成所述多链接透明传输互连转发表之前, 将所述链路状态协议数据单元报文中的冲突的Mckname和所述冲突的Mckname对应的系 统标识存储到冲突映射表中;所述第一更新生成模块具体用于根据所述链路状态协议数据单元报文更新所述本地 链路状态数据库,并根据更新后的本地链路状态数据库和所述冲突映射表,生成所述多链 接透明传输互连转发表。
12.根据权利要求11所述的多链接透明传输互连转发表生成装置,其特征在于,还包括第二判断模块,用于在所述第一判断模块判断所述链路状态协议数据单元报文与所述 本地链路状态数据库中是否存在冲突的Nickname之前,判断所述链路状态协议数据单元 报文与所述冲突映射表中是否存在相同的系统标识;第三判断模块,用于在所述第二判断模块的判断结果为存在时,判断所述相同的系统 标识对应的所述链路状态协议数据单元报文中的Nickname与所述相同的系统标识对应的 所述冲突映射表中的Nickname是否相同;删除模块,用于在所述第三判断模块的判断结果为不相同时,将所述相同的系统标识 和所述相同的系统标识对应的Nickname从所述冲突映射表中删除。
13.—种网络设备,其特征在于,包括如权利要求7-12任一项所述的多链接透明传输 互连转发表生成装置。
全文摘要
本发明提供一种多链接透明传输互连转发表生成方法、装置及网络设备。其中方法包括第一网络的第一路由交换机接收第二网络中与第一路由交换机连接的第二路由交换机发送的LSP报文;分别将LSP报文中的Nickname和Nickname对应的系统标识与本地链路状态数据库中的进行比较,以判断是否存在冲突的Nickname;当判断结果为存在时,根据LSP报文更新本地链路状态数据库,并根据更新后的本地链路状态数据库和冲突的Nickname生成TRILL转发表。本发明技术方案解决了因Nickname冲突导致数据流错误转发而引起的数据流丢失的问题,提高了数据流转发的成功率。
文档编号H04L12/56GK102123091SQ20111004682
公开日2011年7月13日 申请日期2011年2月25日 优先权日2011年2月25日
发明者张小兴 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1