Trill网络中的报文转发方法和路由网桥的制作方法

文档序号:7860260阅读:116来源:国知局
专利名称:Trill网络中的报文转发方法和路由网桥的制作方法
技术领域
本申请涉及通信技术领域,特别涉及一种多链接透明互联(TRILL, TransparentInterconnection of Lots of Links)网络中的报文转发方法和路由网桥。
背景技术
TRILL是互联网工程任务组(IETF, Internet Engineering Task Force)推荐的连接层(L2)网络标准,用于解决大型数据中心生成树协议(STP, Spanning Tree Protocol)的不足。在L2网络中,STP通过阻塞冗余链路来避免环路,但同时也造成了冗余链路带宽的浪费,而TRILL则通过将中间系统对中间系统(ISIS, Intermediate system to intermediatesystem)路由协议引入L2网络,不仅解决了 L2环路问题,而且还能够支持冗余路径和负载分担。在TRILL网络中,运行TRILL协议的设备称为路由网桥(RB,Router Bridge),且该RB是交换机和路由器功能的综合体。图I给出了现有单播报文转发方法的过程示意图,如图I所示,以主机C向主机A发送单播报文为例,该单播报文转发过程可包括a、主机C发送单播报文,由交换机对该单播报文进行普通二层转发;b、RB2的交换功能模块对交换机发送的单播报文进行普通MAC学习和查找,查找 到主机A的表项出端口为2,并且出口 RB为RB4后,对该单播报文进行TRILL封装,从端口2发送到路由功能模块;路由功能模块进行TRILL路由查找,查找到RB4的下一跳为RB1,查找邻接表获取RBl的MAC地址F和控制VLAN200,进行封装后将单播报文发送给RBl ;c、RBl对接收到的单播报文进行TRILL路由查找转发过程,发送到RB4 ;d、RB4发现出口 RB为自身,则对接收到的单播报文进行解封装过程,剥离TRILL头,进行内层MAC地址查找,得到出端口,进而将单播报文发送给主机A。通过上述分析可以看出,现有在TRILL网络中转发单播报文时,在入口 RB和出口RB都要进行MAC地址查找得到出端口,进而根据查找到的出端口转发该单播报文。然而,由于MAC地址表很大,因而查找MAC地址的过程可能会很长,不仅延长了报文转发时间,而且提高了转发复杂度。

发明内容
有鉴于此,本发明提供了一种TRILL网络中的报文转发方法,能够实现依据标签对报文的转发,减少对MAC地址表的查找,降低报文转发的复杂度。本发明还提供了一种路由网桥,能够实现依据标签对报文的转发,减少对MAC地址表的查找,降低报文转发的复杂度。为了达到上述目的,本发明提出的技术方案为一种多链接透明互联TRILL网络中的报文转发方法,该方法应用于TRILL网络中的入口 RB,包括入口 RB为每个本地端口分配本地唯一的标签,将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中;入口 RB接收到由本地主机发送的待转发报文后,在本地MAC地址表中查找待转发报文的目的MAC地址对应的MAC地址表项,根据查找结果对待转发报文进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装,将封装后的TRILL报文发送给出口 RB ;所述入口标签为入口 RB为接收所述待转发报文的端口分配的标签,所述出口标签由入口 RB根据目的MAC地址查找的结果确定;所述出口标签用于指示出口 RB在完成对所述TRILL报文的解封装后根据该出口标签对解封装后的TRILL报文进行转发。当所述入口 RB接收到的待转发报文为已知单播报文时,则所述出口标签为交换标签类型,所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文从出口标签所对应的出口 RB的端口进行转发;当所述入口 RB接收到的待转发报文为未知单播报文时,所述出口标签为单播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找到,则进行本地端口泛洪;当所述入口 RB接收到的待转发报文为已知组播报文时,所述出口标签为组播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发;当所述入口 RB接收到的待转发报文为未知组播报文或广播报文时,所述出口标签为广播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB对解封装后的报文进行本地端口泛洪。当MAC地址迁移时,所述方法还包括入口 RB在本地检测到有主机迁入时,更新本地MAC地址表中该迁入主机对应的MAC表项关联的标签。当入口 RB的接收所述待转发报文的端口不能正常工作时,该方法进一步包括入口 RB向其它每一个RB发送标签无效消息,所述标签无效消息包含入口 RB的标号Nickname和为所述接收待转发报文的端口分配的标签;所述标签无效消息用于指示收到标签无效消息的RB将本地MAC地址表中包含相同入口 RB的标号Nickname和相同标签的MAC地址表项中的标签更新为单播标签。一种多链接透明互联TRILL网络中的报文转发方法,该方法应用于TRILL网络中的出口 RB,包括出口 RB为每个本地端口分配本地唯一的标签,将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中;出口 RB接收到由入口 RB发送的包含入口 RB、入口标签、出口 RB和出口标签的TRILL报文后,进行TRILL解封装,并进行内层源MAC地址学习,将内层源MAC地址、入口 RB及入口标签学习到本地MAC地址表项中;所述入口标签为入口 RB为接收主机发送的报文的端口分配的标签,所述出口标签为入口 RB根据目的MAC地址查找的结果所确定的标签;
出口 RB根据出口标签对解封装后的报文进行转发。当所述出口标签为交换标签类型时,所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文从出口标签所对应的出口 RB的端口进行转发;当所述出口标签为单播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找到,则进行本地端口泛洪;当所述出口标签为组播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发;
当所述出口标签为广播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB对解封装后的报文进行本地端口泛洪。在MAC地址迁移的情况下,所述出口 RB对接收到的TRILL报文进行解封装,进行内层源MAC地址学习时,该方法还包括当出口 RB判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的RB有变化,则使用报文中的入口 RB更新本地MAC地址表中该源MAC地址对应的MAC地址表项中的RB ;和/或,当出口 RB判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的标签有变化,则使用报文中的入口标签更新本地MAC地址表项中该源MAC地址对应的MAC地址表项中的标签。该方法进一步包括当出口 RB接收到入口 RB发送的包含入口 RB的标号Nickname和不能正常工作的端口对应的标签的标签无效消息时,查看本地MAC地址表项,当本地MAC地址表项中RB的Nickname为标签无效消息中入口 RB的Nickname、且本地MAC地址表项中包含标签无效消息中的标签时,将本地MAC地址表项中的标签更新为单播标签。一种多链接透明互联TRILL网络中的路由网桥,该路由网桥为接收报文的入口路由网桥RB,该路由网桥包括标签处理单元,用于为每个端口分配本地唯一的标签;将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中;报文接收单元,用于接收由本地主机发送的待转发报文;报文封装单元,用于在本地MAC地址表中查找待转发报文的目的MAC地址对应的MAC地址表项,根据查找结果对待转发报文进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装;所述入口标签为入口 RB为接收所述待转发报文的端口分配的标签,所述出口标签根据目的MAC地址查找的结果确定;所述报文发送单元,用于将所述报文封装单元进行TRILL封装后的报文发送给出口 RB,以使出口 RB根据目的MAC和出口标签对报文进行转发。当所述报文接收单元接收到的主机发送的待转发报文为已知单播报文时,所述报文封装单元封装的TRILL报文的出口标签为交换标签类型,所述交互标签指示出口 RB将解封装后的报文从出口标签所对应的出口 RB的端口进行转发;当所述报文接收单元接收到的主机发送的待转发报文为未知单播报文时,所述报文封装单元封装的TRILL报文的出口标签为单播标签类型,所述单播标签指示出口 RB对解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找到,则进行本地端口泛洪;当所述报文接收单元接收到的主机发送的待转发报文为已知组播报文时,所述报文封装单元封装的TRILL报文的出口标签为组播标签类型,所述组播标签指示出口 RB对解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发;当所述报文接收单元接收到的主机发送的待转发报文为未知组播报文或广播报文时,所述报文封装单元封装的TRILL报文的出口标签为组播标签类型,所述组播标签指示出口 RB对解封装后的报文进行本地端口泛洪。该路由网桥还包括标签更新单元,用于在本地检测到有主机迁入时,更新本地MAC地址表中该迁入主机对应的MAC表项关联的标签。该路由网桥还包括无效发送单元,用于当所述报文接收单元的接收报文的端口不能正常工作时,向其它每一个RB发送标签无效消息,所述标签无效消息用于指示每一个收到标签无效消息的RB在判定本地MAC地址表项中RB的Nickname为标签无效消息中携带的入口 RB的Nickname、且该本地MAC地址表项中包含标签无效消息中携带的标签时,将本地MAC地址表项中的标签更新为单播标签。一种多链接透明互联TRILL网络中的路由网桥,该路由网桥为转发报文的出口路由网桥RB,该路由网桥包括标签处理单元,用于为每个端口分配本地唯一的标签;将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中;报文接收单元,用于接收由入口 RB发送的由入口 RB进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装后的TRILL报文,所述入口标签为入口 RB为接收主机发送的报文的端口分配的标签,所述出口标签由入口 RB根据目的MAC地址查找的结果确定;报文解封装单元,用于对所述报文接收单元接收到的报文进行TRILL解封装;地址学习单元,用于对报文解封装单元解封装后的报文进行内层源MAC地址学习,将内层源MAC地址、入口 RB及入口标签学习到本地MAC地址表项中;报文转发单元,用于根据出口标签对所述报文解封装单元解封装后的报文进行转发。当所述报文接收单元接收的TRILL报文中的出口标签为交换标签类型时,所述报文转发单元用于将解封装后的报文从出口标签所对应的端口进行转发;当所述报文接收单元接收的TRILL报文中的出口标签为单播标签类型时,所述报文转发单元用于将解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找到,则进行本地端口泛洪;当所述报文接收单元接收的TRILL报文中的出口标签为组播标签类型时,所述报文转发单元用于将解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发;当所述报文接收单元接收的TRILL报文中的出口标签为广播标签类型时,所述报文转发单元用于将解封装后的报文进行本地端口泛洪。所述地址学习单元还用于在判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的RB有变化时,使用报文中的入口 RB更新本地MAC地址表中该源MAC地址对应的MAC地址表项中的RB ;和/或,在判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的标签有变化时,使用报文中的入口标签更新本地MAC地址表中该源MAC地址对应的MAC地址表项中的标签。该路由网桥还包括无效接收单元和标签更新单元,其中,所述无效接收单元,用于当入口 RB的接收报文的端口不能正常工作时,接收由入口 RB发送的标签无效消息,所述标签无效消息包含入口 RB的Nickname和为该端口分配的标签;所述标签更新单元,用于当所述无效接收单元接收到标签无效消息后,查看本地MAC地址表,当判定本地MAC地址表项中RB的Nickname为标签无效消息中携带的入口 RB的Ni ckname、且该本地MAC地址表项中包含标签无效消息中携带的标签时,将本地MAC地址 表项中的标签更新为单播标签。综上所述,本发明所采用的TRILL网络中的报文转发方法,是通过由入口 RB和出口 RB分别为本地端口分配本地唯一的标签,将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中,当入口 RB接收到由本地主机发送的待转发报文后,在本地MAC地址表中查找待转发报文的目的MAC地址对应的MAC地址表项,根据查找结果对待转发报文进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装,将封装后的TRILL报文发送给出口 RB,由出口 RB将接收到的包含入口 RB、入口标签、出口 RB和出口标签的TRILL报文进行TRILL解封装,并进行内层源MAC地址学习,将内层源MAC地址、入口 RB及入口标签学习到本地MAC地址表项中,并根据出口标签对解封装后的报文进行转发。由于本发明建立标签与接收主机报文的端口之间的对应关系,RB进行源MAC地址的学习后,能够实现基于标签的报文转发,从而减少了 MAC地址查找,因此,本发明方法不仅避免了由于查找大的MAC地址表可能造成的时间浪费问题,而且还降低了转发复杂度。


图I为现有TRILL网络中单播报文转发方法的过程示意图;图2为本发明TRILL网络中报文转发方法的工作流程图;图3为本发明扩展后的TRILL报文结构示意图;图4为本发明所采用的路由网桥实施例一的结构示意图;图5为本发明所采用的路由网桥实施例二的结构示意图。
具体实施例方式为了解决本发明提出的技术问题,本发明所述方案的具体实现包括入口 RB为每个本地端口分配本地唯一的标签,将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中;入口 RB接收到由本地主机发送的待转发报文后,在本地MAC地址表中查找待转发报文的目的MAC地址对应的MAC地址表项,根据查找结果对待转发报文进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装,将封装后的TRILL报文发送给出口 RB ;所述入口标签为入口 RB为接收所述待转发报文的端口分配的标签,所述出口标签由入口 RB根据目的MAC地址查找的结果确定;所述出口标签用于指示出口 RB在完成对所述TRILL报文的解封装后根据该出口标签对解封装后的TRILL报文进行转发;出口 RB为每个本地端口分配本地唯一的标签,将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中;出口 RB接收到由入口RB发送的包含入口 RB、入口标签、出口 RB和出口标签的TRILL报文后,进行TRILL解封装,并进行内层源MAC地址学习,将内层源MAC地址、入口 RB及入口标签学习到本地MAC地址表项中;所述入口标签为入口 RB为接收主机发送的报文的端口分配的标签,所述出口标签为入口 RB根据目的MAC地址查找的结果所确定的标签;出口 RB根据出口标签对解封装后的报文进行转发。为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步地详细描述。 图2为本发明TRILL网络中报文转发方法的工作流程图,如图2所示,该流程包括步骤201 :定义标签类型,TRILL网络内的每个RB都需要为每个本地端口分配本地唯一的标签。本发明中,在各个RB启动时,会给本地的每个端口分配一个本地具有唯一性的标签;本发明对TRILL报文的结构进行了扩展,在TRILL报文中增加入口标签和出口标签的信元,扩展后的TRILL报文结构示例如图3所示。在本发明优选实施例中,在TRILL报文的出口标号Egress Nickname和入口标号Ingress Nickname的后面添加出口标签Egress Label和入口标签Ingress Label。其中Ingress Label信兀表不报文进入入口 RB时的入端口,只能是交换标签;Egress Label信元表示报文从出口 RB发送报文时对应的出端口信息,出端口的信息通过标签值来揭示,即根据标签的取值范围可获知标签的类型,根据标签的类型执行相应的处理。本发明根据报文类型将标签分为五类,并定义了不同类型的标签的取值或取值范围,所述五种标签类型定义如下广播标签(例如取值为OxFFFFFFFF):表示出口 RB在接收到带有该类型的出口标签的报文时,需要在出口 RB进行本地端口泛洪,从所有本地端口复制发送所接收到的报文;组播标签(例如取值为OxFFFFFFFE):表示出口 RB在接收到带有该类型的出口标签的报文时,需要在出口 RB进行本地二层组播组查找,即根据报文的内层目的MAC地址查询组播MAC地址表,根据查找结果对接收到的报文进行组播复制,从组播MAC地址表项指定的出端口发送;单播标签(例如取值范围为OxFFFFFFFD):表示出口 RB在接收到带有该类型的出口标签的报文时,需要在出口 RB要进行本地二层单播MAC地址表查找,根据查找结果进行转发;交换标签(例如取值范围为1-OxOFFFFFFC):表示出口 RB在接收到带有该类型的出口标签的报文时,直接从该出口标签对应的本地端口发送即可。
保留标签(OxOOFFFFOl-OxFFFFFFFO):保留后续使用。步骤202 :每个RB将本地连接的主机MAC地址及对应的为本地端口分配的标签学习到本地MAC地址表项中。网络中的每个RB都需要学习与自身连接的主机的MAC地址,不同的是,本发明中,每个RB还需要学习与本地主机MAC地址对应的标签,本发明不限定采用何种方式或协议学习包含本地主机MAC地址和为本地端口分配的标签。一具体实例中,RB在接收到本地主机发送的报文后,将该主机MAC地址与接收该主机发送的报文的端口对应的标签关联起来,将该主机MAC地址及关联的标签一同学习到本地MAC地址表中。步骤203 :入口 RB接收到由主机发送的待转发报文后,入口 RB根据待转发报文中 的目的MAC,在本地MAC地址表中进行目的MAC查找,在需要通过TRILL隧道转发时,根据查找结果对主机发送的待转发报文进行TRILL封装。在入口 RB对主机发送的报文进行封装时,TRILL报文中的入口标签为入口 RB上接收所述主机发送的报文的端口对应的标签即入口 RB为该端口分配的标签,出口标签根据目的MAC查找的结果来确定,当查找到(表示已知)目的MAC地址时,所述出口标签是为接收报文的出口 RB的端口分配的标签;当查找不到(表示未知)目的MAC地址时,所述出口标签根据入口 RB接收到的报文类型来确定。基于上述原则,确定出口标签的方式如下如果是已知单播报文即查找到目的MAC的单播报文,则出口标签为交换标签类型,即出口标签为本地查找到MAC地址表项中的标签;如果是未知单播报文即未查找到目的MAC的单播报文,则出口标签为单播标签类型;如果是未知组播报文即未查找到目的MAC的组播报文,则出口标签为广播标签类型;如果是已知组播报文即查找到目的MAC的组播报文,则出口标签为组播标签类型;如果是广播报文,则出口标签为广播标签类型。步骤204 :对所述封装后的TRILL报文进行TRILL路由表查找,根据查找到的路由,将TRILL报文发送给出口 RB。在本步骤中,所述封装后得到的TRILL报文进行路由查找封装后,由中间RB将所述路由查找封装后的TRILL报文发送给出口 RB。步骤205 :出口 RB对接收到的报文进行TRILL解封装后,进行内层源MAC地址学习,将TRILL报文的内层源MAC地址(即源主机的MAC地址)与内层标签即入口标签关联,将解封装后的报文的内层源MAC地址即源主机MAC地址、入口 RB的Nickname及入口标签学习到本地MAC表项中。当执行完步骤205后,需要根据出口标签将报文进行转发,具体如何转发报文需要根据出口标签类型而定,当出口标签为交换标签时,执行步骤206 ;当出口标签为单播标签时,执行步骤207 ;当出口标签为组播标签时,执行步骤208 ;当出口标签为广播标签时,执行步骤209。下面具体说明报文转发过程
步骤206 :当出口标签为交换标签时,由出口 RB将进行源MAC地址学习后的报文从出口标签所对应的出口 RB的端口进行转发后,结束当前报文转发流程。当所述入口 RB接收到的报文为已知单播报文时,所述出口标签为交换标签,即为接收到的报文的出口 RB的端口分配的标签,则,所述根据出口标签将报文进行转发包括所述出口 RB将进行源MAC地址学习后的报文从出口标签所对应的出口 RB的端口进行转发。步骤207 :当出口标签为单播标签时,由出口 RB将进行源MAC地址学习后的报文进行目的MAC地址查找,根据查找结果对报文进行组播复制转发后,结束当前报文转发流程。当所述入口 RB接收到的报文为未知单播报文时,所述出口标签为单播标签,则, 所述根据出口标签将报文进行转发包括所述出口 RB将进行源MAC地址学习后的报文进行目的MAC地址查找,如果查找到对应的目的MAC地址,则从该目的MAC地址对应的端口转发;如果未查找到,则进行泛洪。步骤208 :当出口标签为组播标签时,由出口 RB将进行源MAC地址学习后的报文进行组播组查找,根据查找结果对报文进行组播复制转发后,结束当前报文转发流程。当所述入口 RB接收到的报文为已知组播报文时,所述出口标签为组播标签,则,所述根据出口标签将报文进行转发包括所述出口 RB将进行源MAC地址学习后的报文进行组播组查找,根据查找结果对报文进行组播复制转发。步骤209 :当出口标签为广播标签时,由出口 RB将进行源MAC地址学习后的报文在查找到的目的MAC地址对应的MAC地址表项中的标签所对应的出口 RB的端口进行泛洪后,结束当前报文转发流程。当所述入口 RB接收到的报文为未知组播报文或广播报文时,所述出口标签为广播标签,则,所述根据出口标签将报文进行转发包括所述出口 RB将进行源MAC地址学习后的报文从出口标签所对应的出口 RB的端口进行泛洪,也即从所有端口对报文进行复制转发。基于上述TRILL网络中的报文转发方法,本发明还进一步公开了如下在发生MAC地址迁移时,数据平面实时更新MAC地址表中的RB和标签信息的方法入口 RB检测到本地有迁移的主机接入后,更新本地MAC地址表中该主机的MAC地址对应的表项中关联的标签。在TRILL隧道的出口 RB,对TRILL报文进行解封装得到原始的以太帧之后,进行内层源MAC学习时进行如下判断和操作如果原来MAC地址表中的该源MAC对应的RB变化,则使用报文中的入口 RB更新MAC地址表中该源MAC地址对应表项中的RB ;和/或如果原来MAC地址表中的该源MAC对应的标签变化,则使用报文中的入口标签更新MAC地址表中该源MAC地址对应表项中的标签。还需说明的是,当RB的本地端口不能正常工作或者其他原因导致不能收发数据报文时,本发明还进一步给出如下处理流程步骤SI、该RB通过IGP协议向其他所有的RB通告标签无效消息,消息包含该RB的标号Nickname和该端口对应的标签等内容。
步骤S2、TRILL网络中的其他RB收到该通告时,查找本地MAC地址表的每个表项,如果MAC地址表项对应的RB的标号Nickname为无效消息中的RB的Nickname,且该MAC地址表项对应的标签为无效消息中的标签,则将MAC地址表中的对应的标签更新为单播标签。上述IGP协议为TRILL-ESADI。至此,即完成了本发明所采用的TRILL网络中报文转发方法的整个工作流程。基于上述方法,图4给出了本发明所采用的路由网桥实施例一的结构,如图4所示,该路由网桥为接收报文的入口 RB,该路由网桥包括标签处理单元41,用于为每个端口分配本地唯一的标签;将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中;报文接收单元42,用于接收由本地主机发送的待转发报文;报文封装单元43,用于在标签处理单元41学习到的本地MAC地址表中查找待转发报文的目的MAC地址对应的MAC地址表项,根据查找结果对报文接收单元42接收的待转发报文进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装;所述入口标签为入口RB为接收所述待转发报文的端口分配的标签,所述出口标签根据目的MAC地址查找的结果确定;所述报文发送单元,用于将所述报文封装单元进行TRILL封装后的报文发送给出口 RB,以使出口 RB根据目的MAC和出口标签对报文进行转发。当所述报文接收单元42接收到的主机发送的待转发报文为已知单播报文时,所述报文封装单元43封装的TRILL报文的出口标签为交换标签类型,所述交互标签指示出口RB将解封装后的报文从出口标签所对应的出口 RB的端口进行转发;当所述报文接收单元42接收到的主机发送的待转发报文为未知单播报文时,所述报文封装单元43封装的TRILL报文的出口标签为单播标签类型,所述单播标签指示出口RB对解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找到,则进行本地端口泛洪;当所述报文接收单元42接收到的主机发送的待转发报文为已知组播报文时,所述报文封装单元43封装的TRILL报文的出口标签为组播标签类型,所述组播标签指示出口RB对解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发;当所述报文接收单元42接收到的主机发送的待转发报文为未知组播报文或广播报文时,所述报文封装单元43封装的TRILL报文的出口标签为组播标签类型,所述组播标签指示出口 RB对解封装后的报文进行本地端口泛洪。进一步地,该路由网桥还包括标签更新单元45,用于在本地检测到有主机迁入时,更新标签处理单元41学习的本地MAC地址表中该迁入主机对应的MAC表项关联的标签。更进一步地,该路由网桥还包括无效发送单元46,用于当所述报文接收单元42的接收报文的端口不能正常工作时,向其它每一个RB发送标签无效消息,所述标签无效消息用于指示每一个收到标签无效消息的RB在判定本地MAC地址表项中RB的Nickname为标签无效消息中携带的入口 RB的Nickname、且该本地MAC地址表项中包含标签无效消息中携带的标签时,将标签处理单元41学习的本地MAC地址表项中的标签更新为单播标签。
同样地,基于上述方法,图5给出了本发明所采用的路由网桥实施例二的结构,如图5所示,该路由网桥为转发报文的出口 RB,包括
标签处理单元51,用于为每个端口分配本地唯一的标签;将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中;报文接收单元52,用于接收由入口 RB发送的由入口 RB进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装后的TRILL报文,所述入口标签为入口 RB为接收主机发送的报文的端口分配的标签,所述出口标签由入口 RB根据目的MAC地址查找的结果确定;报文解封装单元53,用于对所述报文接收单元52接收到的报文进行TRILL解封装;地址学习单元54,用于对报文解封装单元53解封装后的报文进行内层源MAC地址学习,将内层源MAC地址、入口 RB及入口标签学习到本地MAC地址表项中; 报文转发单元55,用于根据出口标签对所述报文解封装单元53解封装后的报文进行转发。当所述报文接收单元52接收的TRILL报文中的出口标签为交换标签类型时,所述报文转发单元55用于将报文解封装单元53解封装后的报文从报文接收单元52接收到的出口标签所对应的端口进行转发;当所述报文接收单元52接收的TRILL报文中的出口标签为单播标签类型时,所述报文转发单元55用于将报文解封装单元53解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找到,则进行本地端口泛洪;当所述报文接收单元52接收的TRILL报文中的出口标签为组播标签类型时,所述报文转发单元55用于将报文解封装单元53解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发;当所述报文接收单元52接收的TRILL报文中的出口标签为广播标签类型时,所述报文转发单元55用于将报文解封装单元53解封装后的报文进行本地端口泛洪。进一步地,所述地址学习单元54还用于在判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的RB有变化时,使用报文中的入口 RB更新本地MAC地址表中该源MAC地址对应的MAC地址表项中的RB ;和/或,在判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的标签有变化时,使用报文中的入口标签更新本地MAC地址表中该源MAC地址对应的MAC地址表项中的标签。更进一步地,该路由网桥还包括无效接收单元56和标签更新单元57,其中,所述无效接收单元56,用于当入口 RB的接收报文的端口不能正常工作时,接收由入口 RB发送的标签无效消息,所述标签无效消息包含入口 RB的Nickname和为该端口分配的标签;所述标签更新单元57,用于当所述无效接收单元56接收到标签无效消息后,查看本地MAC地址表,当判定本地MAC地址表项中RB的Nickname为标签无效消息中携带的入口 RB的Nickname、且该本地MAC地址表项中包含标签无效消息中携带的标签时,将标签处理单元51学习的本地MAC地址表项中的标签更新为单播标签。至此,即得到了本发明所采用的TRILL网络中的路由网桥。图4和图5所述路由网桥的工作流程具体可参见图2所述方法的工作流程,这里不再赘述。总之,本发明所采用的TRILL网络中的报文转发方法,通过由入口 RB和出口 RB分别为本地端口分配本地唯一的标签,将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中,当入口 RB接收到由本地主机发送的待转发报文后,在本地MAC地址表中查找待转发报文的目的MAC地址对应的MAC地址表项,根据查找结果对待转发报文进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装,将封装后的TRILL报文发送给出口 RB,由出口 RB将接收到的包含入口 RB、入口标签、出口 RB和出口标签的TRILL报文进行TRILL解封装,并进行内层源MAC地址学习,将内层源MAC地址、入口 RB及入口标签学习到本地MAC地址表项中,并根据出口标签对解封装后的报文进行转发。由于本发明建立标签与接收主机报文的端口之间的对应关系,RB进行源MAC地址的学习后,能够实现基于标签的报文转发,从而减少了 MAC地址查找,因此,本发明方法不仅避免了由于查找大的MAC地址表可能造成的时间浪费问题,而且还降低了转发 复杂度。进一步地,当MAC地址迁移时,本发明方法在入口 RB更新本地MAC地址表中该迁入主机对应的MAC表项关联的标签,并在出口 RB判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的RB或标签有变化时,使用报文中的入口 RB或入口标签更新本地MAC地址表中该源MAC地址对应的MAC地址表项中的RB或标签,也就解决了 MAC地址迁移可能造成的报文不能正常转发的问题。最后,当入口 RB接收待转发报文的端口不能正常工作时,本发明方法通过由该入口 RB向其它每一个RB发送包含入口 RB的Nickname和为接收待转发报文的端口分配的标签的标签无效信息,进而每一个收到标签无效信息的RB查看本地MAC地址表,当MAC地址表项中RB的Nickname为标签无效消息中入口 RB的Nickname、且MAC地址表项中标签为标签无效消息中的标签时,将MAC地址表项中的标签更新为单播标签,也就避免了由于接收报文的端口不能正常工作而带来的报文不能正常转发的问题。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种多链接透明互联TRILL网络中的报文转发方法,其特征在于,该方法应用于TRILL网络中的入口 RB,包括 入口 RB为每个本地端口分配本地唯一的标签,将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中; 入口 RB接收到由本地主机发送的待转发报文后,在本地MAC地址表中查找待转发报文的目的MAC地址对应的MAC地址表项,根据查找结果对待转发报文进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装,将封装后的TRILL报文发送给出口 RB ;所述入口标签为入口 RB为接收所述待转发报文的端口分配的标签,所述出口标签由入口 RB根据目的MAC地址查找的结果确定; 所述出口标签用于指示出口 RB在完成对所述TRILL报文的解封装后根据该出口标签对解封装后的TRILL报文进行转发。
2.根据权利要求I所述的方法,其特征在于, 当所述入口 RB接收到的待转发报文为已知单播报文时,则所述出口标签为交换标签类型,所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文从出口标签所对应的出口 RB的端口进行转发; 当所述入口 RB接收到的待转发报文为未知单播报文时,所述出口标签为单播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找至IJ,则进行本地端口泛洪; 当所述入口 RB接收到的待转发报文为已知组播报文时,所述出口标签为组播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发; 当所述入口 RB接收到的待转发报文为未知组播报文或广播报文时,所述出口标签为广播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB对解封装后的报文进行本地端口泛洪。
3.根据权利要求I或2所述的方法,其特征在于,当MAC地址迁移时,所述方法还包括入口 RB在本地检测到有主机迁入时,更新本地MAC地址表中该迁入主机对应的MAC表项关联的标签。
4.根据权利要求I或2所述的方法,其特征在于,当入口RB的接收所述待转发报文的端口不能正常工作时,该方法进一步包括 入口 RB向其它每一个RB发送标签无效消息,所述标签无效消息包含入口 RB的标号Nickname和为所述接收待转发报文的端口分配的标签; 所述标签无效消息用于指示收到标签无效消息的RB将本地MAC地址表中包含相同入口 RB的标号Nickname和相同标签的MAC地址表项中的标签更新为单播标签。
5.一种多链接透明互联TRILL网络中的报文转发方法,其特征在于,该方法应用于TRILL网络中的出口 RB,包括 出口 RB为每个本地端口分配本地唯一的标签,将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中; 出口 RB接收到由入口 RB发送的包含入口 RB、入口标签、出口 RB和出口标签的TRILL报文后,进行TRILL解封装,并进行内层源MAC地址学习,将内层源MAC地址、入口 RB及入口标签学习到本地MAC地址表项中;所述入口标签为入口 RB为接收主机发送的报文的端口分配的标签,所述出口标签为入口 RB根据目的MAC地址查找的结果所确定的标签; 出口 RB根据出口标签对解封装后的报文进行转发。
6.根据权利要求5所述的方法,其特征在于, 当所述出口标签为交换标签类型时,所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文从出口标签所对应的出口 RB的端口进行转发; 当所述出口标签为单播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找到,则进行本地端口泛洪; 当所述出口标签为组播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB将解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发; 当所述出口标签为广播标签类型,则所述出口 RB根据出口标签对解封装后的报文进行转发包括出口 RB对解封装后的报文进行本地端口泛洪。
7.根据权利要求5或6所述的方法,其特征在于,在MAC地址迁移的情况下,所述出口RB对接收到的TRILL报文进行解封装,进行内层源MAC地址学习时,该方法还包括 当出口 RB判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的RB有变化,则使用报文中的入口 RB更新本地MAC地址表中该源MAC地址对应的MAC地址表项中的RB ;和/或, 当出口 RB判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的标签有变化,则使用报文中的入口标签更新本地MAC地址表项中该源MAC地址对应的MAC地址表项中的标签。
8.根据权利要求5或6所述的方法,其特征在于,该方法进一步包括 当出口 RB接收到入口 RB发送的包含入口 RB的标号Nickname和不能正常工作的端口对应的标签的标签无效消息时,查看本地MAC地址表项,当本地MAC地址表项中RB的Nickname为标签无效消息中入口 RB的Nickname、且本地MAC地址表项中包含标签无效消息中的标签时,将本地MAC地址表项中的标签更新为单播标签。
9.一种多链接透明互联TRILL网络中的路由网桥,该路由网桥为接收报文的入口路由网桥RB,其特征在于,该路由网桥包括 标签处理单元,用于为每个端口分配本地唯一的标签;将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中; 报文接收单元,用于接收由本地主机发送的待转发报文; 报文封装单元,用于在本地MAC地址表中查找待转发报文的目的MAC地址对应的MAC地址表项,根据查找结果对待转发报文进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装;所述入口标签为入口 RB为接收所述待转发报文的端口分配的标签,所述出口标签根据目的MAC地址查找的结果确定; 所述报文发送单元,用于将所述报文封装单元进行TRILL封装后的报文发送给出口RB,以使出口 RB根据目的MAC和出口标签对报文进行转发。
10.根据权利要求9所述的路由网桥,其特征在于, 当所述报文接收单元接收到的主机发送的待转发报文为已知单播报文时,所述报文封装单元封装的TRILL报文的出口标签为交换标签类型,所述交互标签指示出口 RB将解封装后的报文从出口标签所对应的出口 RB的端口进行转发; 当所述报文接收单元接收到的主机发送的待转发报文为未知单播报文时,所述报文封装单元封装的TRILL报文的出口标签为单播标签类型,所述单播标签指示出口 RB对解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找到,则进行本地端口泛洪; 当所述报文接收单元接收到的主机发送的待转发报文为已知组播报文时,所述报文封装单元封装的TRILL报文的出口标签为组播标签类型,所述组播标签指示出口 RB对解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发; 当所述报文接收单元接收到的主机发送的待转发报文为未知组播报文或广播报文时,所述报文封装单元封装的TRILL报文的出口标签为组播标签类型,所述组播标签指示出口RB对解封装后的报文进行本地端口泛洪。
11.根据权利要求9或10所述的路由网桥,其特征在于,该路由网桥还包括标签更新单元,用于在本地检测到有主机迁入时,更新本地MAC地址表中该迁入主机对应的MAC表项关联的标签。
12.根据权利要求9或10所述的路由网桥,其特征在于,该路由网桥还包括无效发送单元,用于当所述报文接收单元的接收报文的端口不能正常工作时,向其它每一个RB发送标签无效消息,所述标签无效消息用于指示每一个收到标签无效消息的RB在判定本地MAC地址表项中RB的Nickname为标签无效消息中携带的入口 RB的Nickname、且该本地MAC地址表项中包含标签无效消息中携带的标签时,将本地MAC地址表项中的标签更新为单播标签。
13.一种多链接透明互联TRILL网络中的路由网桥,该路由网桥为转发报文的出口路由网桥RB,其特征在于,该路由网桥包括 标签处理单元,用于为每个端口分配本地唯一的标签;将本地主机的MAC地址及为接收本地主机发送报文的本地端口分配的标签学习到本地MAC地址表项中; 报文接收单元,用于接收由入口 RB发送的由入口 RB进行包含入口 RB、入口标签和出口 RB、出口标签的TRILL封装后的TRILL报文,所述入口标签为入口 RB为接收主机发送的报文的端口分配的标签,所述出口标签由入口 RB根据目的MAC地址查找的结果确定; 报文解封装单元,用于对所述报文接收单元接收到的报文进行TRILL解封装; 地址学习单元,用于对报文解封装单元解封装后的报文进行内层源MAC地址学习,将内层源MAC地址、入口 RB及入口标签学习到本地MAC地址表项中; 报文转发单元,用于根据出口标签对所述报文解封装单元解封装后的报文进行转发。
14.根据权利要求13所述的路由网桥,其特征在于, 当所述报文接收单元接收的TRILL报文中的出口标签为交换标签类型时,所述报文转发单元用于将解封装后的报文从出口标签所对应的端口进行转发; 当所述报文接收单元接收的TRILL报文中的出口标签为单播标签类型时,所述报文转发单元用于将解封装后的报文进行目的MAC地址查找,如果查找到对应的MAC地址,则从对应的端口转发;如果未查找到,则进行本地端口泛洪; 当所述报文接收单元接收的TRILL报文中的出口标签为组播标签类型时,所述报文转发单元用于将解封装后的报文进行组播组查找,根据查找结果对报文进行组播复制转发;当所述报文接收单元接收的TRILL报文中的出口标签为广播标签类型时,所述报文转发单元用于将解封装后的报文进行本地端口泛洪。
15.根据权利要求13或14所述的路由网桥,其特征在于,所述地址学习单元还用于 在判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的RB有变化时,使用报文中的入口 RB更新本地MAC地址表中该源MAC地址对应的MAC地址表项中的RB ;和/或, 在判定本地MAC地址表中该TRILL报文中的内层源MAC地址对应的MAC地址表项中的标签有变化时,使用报文中的入口标签更新本地MAC地址表中该源MAC地址对应的MAC地址表项中的标签。
16.根据权利要求13或14所述的路由网桥,其特征在于,该路由网桥还包括无效接收单元和标签更新单元,其中, 所述无效接收单元,用于当入口 RB的接收报文的端口不能正常工作时,接收由入口RB发送的标签无效消息,所述标签无效消息包含入口 RB的Nickname和为该端口分配的标签; 所述标签更新单元,用于当所述无效接收单元接收到标签无效消息后,查看本地MAC地址表,当判定本地MAC地址表项中RB的Nickname为标签无效消息中携带的入口 RB的Nickname、且该本地MAC地址表项中包含标签无效消息中携带的标签时,将本地MAC地址表项中的标签更新为单播标签。
全文摘要
本发明公开了一种TRILL网络中的报文转发方法和路由网桥入口RB和出口RB都为本地端口分配本地唯一的标签,将本地主机的MAC地址及为本地端口分配的标签学习到本地MAC地址表项中;入口RB在本地MAC地址表中查找由本地主机发送的待转发报文的目的MAC地址对应的MAC地址表项,根据查找结果对待转发报文进行包含入口RB、入口标签和出口RB、出口标签的TRILL封装,将封装后的TRILL报文发送给出口RB;出口RB将TRILL报文进行TRILL解封装,进行内层源MAC地址学习,将内层源MAC地址、入口RB及入口标签学习到本地MAC地址表项中,并根据出口标签对解封装后的报文进行转发。应用本发明所述的方法和路由网桥,能够实现依据标签对报文的转发,减少对MAC地址表的查找,降低报文转发的复杂度。
文档编号H04L12/761GK102868614SQ201210337378
公开日2013年1月9日 申请日期2012年9月13日 优先权日2012年9月13日
发明者周万 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1