CN104780105B - 一种报文转发方法、路由桥和转发芯片 - Google Patents

一种报文转发方法、路由桥和转发芯片 Download PDF

Info

Publication number
CN104780105B
CN104780105B CN201510200690.XA CN201510200690A CN104780105B CN 104780105 B CN104780105 B CN 104780105B CN 201510200690 A CN201510200690 A CN 201510200690A CN 104780105 B CN104780105 B CN 104780105B
Authority
CN
China
Prior art keywords
arp
trill
nickname
forwarding chip
forwarding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510200690.XA
Other languages
English (en)
Other versions
CN104780105A (zh
Inventor
李�昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
New H3C Technologies Co Ltd
Original Assignee
New H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by New H3C Technologies Co Ltd filed Critical New H3C Technologies Co Ltd
Priority to CN201510200690.XA priority Critical patent/CN104780105B/zh
Publication of CN104780105A publication Critical patent/CN104780105A/zh
Application granted granted Critical
Publication of CN104780105B publication Critical patent/CN104780105B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

本发明提供了一种报文转发方法,该方法包括:该RB接收到数据报文时,根据所述数据报文的目的IP地址在转发芯片上的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,则根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。基于同样的发明构思,本申请还提出一种报文转发路由桥和转发芯片,能够不进行特殊配置,将网关作为TRILL域节点,同时支持二层和三层转发。

Description

一种报文转发方法、路由桥和转发芯片
技术领域
本发明涉及通信技术领域,特别涉及一种报文转发方法、路由桥和转发芯片。
背景技术
多链路透明互联(Transparent Interconnection of Lots of Links,TRILL)协议通过将三层路由技术中间系统到中间系统(Intermediate System-to-IntermediateSystem,IS-IS)的设计思路引入二层网络,从而将二层的简单、灵活性与三层的稳定、可扩展和高性能有机融合起来,非常适合数据中心构建大型二层网络的需要。
在实际的组网应用中,当TRILL网络和因特网协议(Internet Protocol,IP)网络之间通信时,组网上往往需要选择路由桥(Routing Bridge,RB)作为TRILL网络侧的主机的网关,即TRILL网络端主机和IP网络端主机之间的通信,需要由网关通过三层转发来实现。
由于目前RB上的转发芯片目前存在限制,对于裸报文,无法在查找路由表项完成三层处理后,继续根据TRILL转发表项进行报文处理。
发明内容
有鉴于此,本申请提供一种报文转发方法、路由桥和转发芯片,以解决作为网关的RB上的转发芯片不能同时支持二层和三层转发的问题。
为解决上述技术问题,本申请的技术方案是这样实现的:
一种报文转发方法,应用TRILL网络中作为网关的RB上,该方法包括:
该RB接收到TRILL封装的ARP请求报文,在TRILL解封装后进行ARP表项学习时,将解封装的TRILL头中的源nickname学习到ARP表项中;获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中并下发到转发芯片上;
该RB接收到数据报文时,根据所述数据报文的目的IP地址在转发芯片上的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,则根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
一种报文转发路由桥RB,所述RB在多链路透明互联TRILL网络中作为网关,所述RB包括:接收单元、处理单元、学习单元、下发单元和转发芯片;
所述接收单元,用于接收ARP请求报文;接收数据报文;
所述处理单元,用于当所述接收单元接收到TRILL封装的ARP请求报文时,进行TRILL解封装;
所述学习单元,用于所述处理单元在TRILL解封装后的ARP请求报文进行ARP表项学习时,将解封装的TRILL头中的源nickname学习到ARP表项中;并获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中;
所述下发单元,用于所述学习单元将学习到的ARP表项下发到转发芯片上;
所述转发芯片,用于存储所述下发单元下发的ARP表项,当接收到数据报文时,根据所述数据报文的目的IP地址在转发芯片上的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,则根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
一种报文转发芯片,应用多链路透明互联TRILL网络中作为网关的路由桥RB上,该转发芯片包括:控制层接口单元、存储单元和硬件处理逻辑单元;
所述控制层接口单元,接收所在RB的软件层下发的ARP表项;所述ARP表项包括昵称nickname和驱动索引;
所述存储单元,用于当所述控制层接口单元接收到ARP表项时,将该ARP表项存储到对应的三层转发表项中;
所述硬件处理逻辑单元,用于当接收到数据报文时,根据所述数据报文的目的因特网协议IP地址在所述存储单元存储的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,且确定所述nickname对应的驱动索引为有效驱动索引,则根据所述驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
由上面的技术方案可知,本申请中作为网关的RB在进行ARP表项学习时,在ARP表项中增加nickname以指示转发芯片接收到与该ARP表项匹配的报文是否需要进行TRILL封装转发;若增加的nickname为有效nickname,还需增加驱动索引,用于指示转发芯片如何处理接收到的数据报文;当增加的驱动索引为有效驱动索引时,可以不需二次查表直接获取TRILL封装信息和出口信息进行报文的转发,因此,本申请能够不进行特殊配置,将网关作为TRILL域节点,同时支持二层和三层转发。
附图说明
图1为本申请实施一中报文转发方法流程示意图;
图2为本申请实施例中学习并向转发芯片下发ARP表项的过程流程示意图;
图3为本申请实施例中的组网示意图;
图4为本申请实施例中转发芯片上存储表项的示意图;
图5为本申请实施例二中报文转发方法流程示意图;
图6为本申请实施例中应用于上述技术的RB的结构示意图;
图7为本申请实施例中应用于上述技术的转发芯片结构示意图;
图8为本发明提供的设备硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
本申请实施例中提供一种报文转发方法,应用TRILL网络中作为网关的RB上,即本申请具体实施例中选择RB运行网关功能。
本申请实施例中为了使作为网关的RB上的转发芯片对于裸报文,即未进行TRILL封装的报文可以在查找三层转发表项后,能够继续根据TRILL转发表项进行报文处理。具体实现方式如下:
实施例一
参见图1,图1为本申请实施一中报文转发方法流程示意图。具体步骤为:
步骤101,RB接收到TRILL封装的ARP请求报文,在TRILL解封装后进行地址解析协议(Address Resolution Protocol,ARP)表项学习时,将解封装的TRILL头中的源nickname学习到ARP表项中;获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中并下发到转发芯片上。
在现有实现时,主机的ARP请求报文,经过接入RB加TRILL封装后达到网关,网关进行TRILL解封装后,直接进行ARP表项学习,用于进行ARP表项学习的ARP模块不能获知TRILL头的封装信息,也不关心学习到的IP地址是否为TRILL网络端的主机的IP地址。
本申请具体实现时,为了学习到TRILL封装头中的源nickname,将ARP请求报文和TRILL头中的源nickname一同发送给ARP模块,ARP模块在进行ARP表项学习时,将源nickname,即主机的接入RB的nickname学习到ARP表项中,用于指示转发芯片接收到与该ARP表项匹配的数据报文需进行TRILL封装转发。
该RB若接收到未进行TRILL封装的ARP请求报文,进行ARP表项学习时,在ARP表项中增加预设的无效nickname;用于指示转发芯片接收到与该ARP表项匹配的数据报文需进行三层转发处理。
本申请具体实施例中,ARP表项中增加的nickname为所述TRILL网络中的RB的nickname时,称为有效nickname;当增加的nickname为预设的无效nickname时,称为无效nickname。
当在一个ARP表项中新增的nickname为有效nickname时,还需获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中再下发到转发芯片上。
RB在向转发芯片下发nickname对应的TRILL下一跳表项时,转发芯片将TRILL下一跳表项存储后,会向下发表项的模块响应所述TRILL下一跳表项的驱动索引。驱动索引即存储相关表项的地址信息。
参见图2,图2为本申请实施例中学习并向转发芯片下发ARP表项的过程流程示意图。具体步骤为:
步骤201,RB将nickname学习到ARP表项中。
步骤202,该RB确定学习到所述ARP表项中的nickname是否为有效nickname,如果是,执行步骤203;否则,执行步骤206。
步骤203,该RB确定是否已向转发芯片下发所述nickname对应的TRILL下一跳表项,如果是,执行步骤204;否则,执行步骤205。
步骤204,该RB将获取所述nickname对应的TRILL下一跳表项的驱动索引并增加到所述ARP表项中,使用该nickname将对应的ARP表项与TRILL下一跳表项关联;执行步骤206。
本申请具体实施例中,在针对一个ARP表项中的nickname获取到转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引时,还将ARP表项与TRILL下一跳表项建立关联,以实现向转发芯片下发的三层转发表项和TRILL转发表项之间的联动。
当软件删除TRILL下一跳表项时,若RB确定该TRILL下一跳表项存在关联的ARP表项,则不向转发芯片下发删除所述TRILL下一跳表项,并设置所述TRILL下一跳表项的状态为待删除状态;否则,向所述转发芯片下发删除所述TRILL下一跳表项的指令,使转发芯片将所述TRILL下一跳表项删除。
当ARP表项删除时,RB删除该ARP表项与对应的TRILL下一跳表项的关联,若确定与该ARP表项关联的TRILL下一跳表项设置为待删除状态,则向所述转发芯片下发删除所述TRILL下一跳表项的指令,使转发芯片将所述TRILL下一跳表项删除。
任一TRILL下一跳表项的驱动索引变化时,将与其关联的ARP表项中的对应驱动索引更新为变化后的驱动索引后,将更新后的ARP表项下发到转发芯片上。
步骤205,该RB在该ARP表项中增加预设的无效驱动索引。
步骤206,该RB将处理后的ARP表项下发到转发芯片上。
参见图3,图3为本申请实施例中的组网示意图。图3中,以RB1为运行网关功能为例。在适应应用中,也可以选择两个RB实现VRRP网关备份方式实现,本申请具体实施例不作限制,这里以RB1作为网关为例说明ARP表项的生成。以RB1接收到主机1和主机2,以及IP网络端设备发送的ARP请求报文学习ARP表项为例。主机1的IP地址为IP1,MAC地址为MAC1,主机2的IP地址为IP2,MAC地址为MAC2,IP网络端设备的IP地址为IP5,MAC地址为MAC5。
主机1发送的ARP请求报文到达RB3时,RB3将该ARP请求报文进行TRILL封装,封装的源nickname为RB3的nickname,RB1在接收到TRILL封装的ARP请求报文时,进行TRILL解封装之后,进行ARP表项学习,并将源nickname(RB3的nickname)学习到ARP表项中。
并根据RB3的nickname获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引,如果已向转发芯片下发对应TRILL下一跳表项,则能够获取到对应的驱动索引;否则,不能获取到对应的驱动索引。
假设已下发对应TRILL下一跳表项,获取到有效的驱动索引,则增加到MAC1对应的ARP表项,并下发到转发芯片上。
针对主机2发送的ARP请求报文学习的ARP表项,假设未获取到RB4的nickname对应的TRILL下一跳表项的驱动索引,则增加预设的无效驱动索引到MAC2对应的ARP表项中。
针对IP网络端设备发送的ARP请求报文学习的ARP表项,由于该ARP请求报文未封装TRILL头,则将预设的无效nickname增加到MAC5对应的ARP表项中,由于nickname无效,则不需增加驱动索引。
参见图4,图4为本申请实施例中转发芯片上存储表项的示意图。
图4中的MAC1的ARP表项与现有实现相比,增加了nickname和驱动索引。由于MAC1对应的ARP表项中的nickname(RB3的nickname)有效,且获取了有效的驱动索引(假设为0x7721),通过该驱动索引能够直接读取到TRILL转发表项中的TRILL封装信息和出口信息。
对于MAC2对应的ARP表项,由于其中的nickname有效,且转发芯片上未下发对应TRILL下一跳表项,因此,MAC2的ARP表项与现有实现相比,增加了RB4的nickname和预设的无效驱动索引。
而对于MAC5的ARP表项,与现有实现相比,增加了预设的无效nickname。
由图4中可见,本申请提供的实施例中实现数据报文的转发时,不需要再查找MAC表项来确定该数据报文进行三层转发,还是进行TRILL转发。这样,MAC表项的老化不会影响数据报文的转发,从而避免了因MAC表的老化删除导致单播报文被作为未知单播进行发送的情况的发生。
并且,在转发芯片上存储三层转发表项时,路由表项、ARP表项以及各表项中的信息之间使用驱动索引指示,即指示对应信息的存储位置,直接获取即可,不需要像软件实现,根据一个参数信息查找一个表项,根据查找结果再查找另外一个表项;对于TRILL转发表项的实现类似。本申请提供的实施例,使用TRILL转发表项中的TRILL下一跳表项的驱动索引连接三层转发表项与TRILL下一跳表项,这样实现后,当一个数据报文查找三层转发表项的结果是需要进行TRILL封装后转发时,不需要根据查找结果再到TRILL转发表项中查找,直接根据驱动索引获取相关封装信息和出口信息即可。
对于TRILL封装的报文查找TRILL转发表项的实现同现有实现。
步骤102,该RB接收到数据报文时,根据所述数据报文的目的IP地址在转发芯片上的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,则根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
实施例二
参见图5,图5为本申请实施例二中报文转发方法流程示意图。具体步骤为:
步骤501,RB的转发芯片接收到数据报文时,根据该数据报文的IP地址在三层转发表项中查找。
步骤502,该RB若查找到的三层转发表项,则确定查找到的三层转发表项中的ARP表项中的nickname是否为有效nickname,如果是,执行步骤504;否则,执行步骤503。
步骤503,该RB将接收到的数据报文进行三层转发处理,结束本流程。
步骤504,该RB确定所述ARP表项中的nickname对应的驱动索引是否为预设的无效驱动索引,如果是,执行步骤505;否则,执行步骤506。
步骤505,该RB将接收到的数据报文丢弃,结束本流程。
步骤506,该RB根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息,并根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
当nickname对应的TRILL下一跳表项中存在多个等价下一跳时,即根据驱动索引获取多个下一跳时,也可以使用负载分担的方式选择一个下一跳进行报文转发。
本申请实施例中针对TRILL转发的实现需求,提出软硬件配合的方案,通过软件层面上的处理,在ARP表项中增加nickname的学习下发到转发芯片上,即可使转发芯片不需要查找MAC表,即可确定数据报文进行三层转发还是二层转发。
如果学习到的nickname为有效nickname,则还需确定是否已向转发芯片下发对应TRILL下一跳表项,如果是,获取对应TRILL下一跳表项的驱动索引,并增加到ARP表项中;否则,增加预设的无效驱动索引到ARP表项中,并下发到转发芯片上,使转发芯片获知是否转发接收到的数据报文。
本申请实施例中的将当前所在TRILL网络中的所有RB的nickname作为有效nickname,之外配置的nickname均作为无效nickname;在具体实现时,也可以将有效nickname规划到一个范围,将无效nickname规划到另外一个范围,或者均配置为一个RB通常均不使用的nickname作为预设的无效nickname来区分有效nickname和无效nickname。
本申请具体实施例中无效nickname,以及无效驱动索引可以在转发芯片上预先配置,转发芯片在确定nickname和驱动索引时,若是预先配置的,则认为无效;否则,均认为是有效的,预先配置的无效nickname和无效驱动索引同在软件层面增加到ARP表项中的无效nickname和无效驱动索引保持一致。
在具体实现时,还可以在转发芯片出厂时,约定无效nickname和无效驱动索引,则转发芯片在查找到nickname和驱动索引时,可以根据预先约定,确定查找到的nickname为有效nickname,还是无效nickname,确定查找到的驱动索引为有效驱动索引还是无效驱动索引,则在软件层面预设无效nickname和无效驱动索引与转发芯片约定的无效nickname和无效驱动索引保持一致。
基于同样的发明构思,本申请还提出一种报文转发路由桥RB,所述RB在多链路透明互联TRILL网络中作为网关设备。参见图6,图6为本申请实施例中应用于上述技术的RB的结构示意图。该RB包括:接收单元601、处理单元602、学习单元603、下发单元604和转发芯片605;
接收单元601,用于接收ARP请求报文;接收数据报文;
处理单元602,用于当接收单元601接收到TRILL封装的ARP请求报文时,进行TRILL解封装;
学习单元603,用于处理单元602在TRILL解封装后的ARP请求报文进行ARP表项学习时,将解封装的TRILL头中的源nickname学习到ARP表项中;并获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中;
本申请实施例中的学习单元的功能包含ARP模块学习ARP表项的功能。
下发单元604,用于学习单元603将学习到的ARP表项下发到转发芯片605上;
转发芯片605,用于存储下发单元604下发的ARP表项,当接收到数据报文时,根据所述数据报文的目的IP地址在转发芯片上的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,则根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
较佳地,
学习单元603,进一步用于当接收单元601接收到未进行TRILL封装的ARP请求报文进行ARP表项学习时,在ARP表项中增加预设的无效nickname;
转发芯片605,用于若查找到的三层转发表项中的ARP表项中的nickname为预设的无效nickname,则将接收到的数据报文进行三层转发处理。
较佳地,
学习单元603,进一步用于将处理单元602解封装的TRILL头中的源nickname学习到ARP表项中之后,确定下发单元604是否已向转发芯片下发所述nickname对应的TRILL下一跳表项,如果是,获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引及后续操作;否则,在该ARP表项中增加预设的无效驱动索引并触发下发单元604下发到转发芯片上;
转发芯片605,进一步用于若查找到的三层转发表项中的ARP表项中的nickname为有效nickname之后,确定查找到的三层转发表项中的ARP表项中的nickname对应的驱动索引是否为预设的无效驱动索引,如果是,将接收到的数据报文丢弃;否则,执行所述根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息及后续操作。
较佳地,
学习单元603,进一步用于获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中时,使用该nickname将对应的ARP表项与TRILL下一跳表项关联;当软件删除TRILL下一跳表项时,若该TRILL下一跳表项存在关联的ARP表项,则不触发所述下发单元向转发芯片下发删除所述TRILL下一跳表项,并设置所述TRILL下一跳表项的状态为待删除状态;否则,触发所述下发单元向所述转发芯片下发删除所述TRILL下一跳表项的指令,使转发芯片将所述TRILL下一跳表项删除。
较佳地
学习单元603,进一步当ARP表项删除时,删除该ARP表项与对应的TRILL下一跳表项的关联,若确定与该ARP表项关联的TRILL下一跳表项设置为待删除状态,则触发所述下发单元向所述转发芯片下发删除所述TRILL下一跳表项的指令,使转发芯片将所述TRILL下一跳表项删除。
较佳地,
学习单元603,进一步用于任一TRILL下一跳表项的驱动索引变化时,将与其关联的ARP表项中的对应驱动索引更新为变化后的驱动索引后,触发下发单元604将更新后的ARP表项下发到转发芯片605上。
基于同样的发明构思,本申请还提出一种报文转发芯片,应用多链路透明互联TRILL网络中作为网关的路由桥RB上。参见图7,图7为本申请实施例中应用于上述技术的转发芯片结构示意图。该转发芯片包括:控制层接口单元701、存储单元702和硬件处理逻辑单元703;
控制层接口单元701,接收所在RB的软件层下发的ARP表项;所述ARP表项包括昵称nickname和TRILL下一跳表项的驱动索引;
存储单元702,用于当控制层接口单元701接收到ARP表项时,将该ARP表项存储到对应的三层转发表项中;
硬件处理逻辑单元703,用于当接收到数据报文时,根据所述数据报文的目的因特网协议IP地址在存储单元702存储的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,且确定所述nickname对应的驱动索引为有效驱动索引,则根据所述驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
较佳地,
硬件处理逻辑单元703,进一步用于若在存储单元702中查找到的三层转发表项中的ARP表项中的nickname为有效nickname,且所述ARP表项中的nickname对应的驱动索引为无效驱动索引,则将接收到的数据报文丢弃。
较佳地,
控制层接口单元701,进一步用于接收所在RB的软件层下发的ARP表项;所述ARP表项包括nickname;
硬件处理逻辑单元703,进一步用于若查找到的三层转发表项中的ARP表项中的nickname为无效nickname,则将接收到的数据报文进行三层转发处理。
较佳地,
控制层接口单元701,进一步用于接收所在RB的软件层下发的删除ARP表项的指令;
存储单元702,进一步用于删除控制层接口单元701接收到的删除所述ARP表项的指令所指示的ARP表项;当所述控制层接口单元701接收到因ARP表项中对应的驱动索引变化而再次接收到ARP表项时,更新本地存储的对应ARP表项。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
本发明还提供了对应图6所示设备的硬件结构。参见图8,图8为本发明提供的设备硬件结构图。如图8所示,该设备可包括:
存储器,CPU和转发芯片;
其中,存储器,用于存放所述接收单元、处理单元、学习单元、下发单元的运行程序;
CPU,用于控制存储器中所述接收单元、处理单元、学习单元、下发单元的运行程序;
其中,所述接收单元运行程序包括上述接收单元执行的各个操作;所述处理单元的运行程序包括上述处理单元执行的各个操作;所述学习单元的运行程序包括上述学习单元执行的各个操作;所述下发单元的运行程序包括上述下发单元执行的各个操作。
转发芯片,按照图6中的转发芯片接收并存储CPU控制所述下发单元下发的ARP表项;并在接收到数据报文时进行相关处理。
综上所述,本申请通过作为网关的RB在进行ARP表项学习时,在ARP表项中增加nickname以指示转发芯片接收到与该ARP表项匹配的报文是否需要进行TRILL封装转发;若增加的nickname为有效nickname,还需增加驱动索引,用于指示转发芯片是否处理接收到的数据报文;当增加的驱动索引为有效驱动索引时,可以不需二次查表直接获取TRILL封装信息和出口信息进行报文的转发,因此,本申请能够不进行特殊配置,将网关作为TRILL域节点,同时支持二层和三层转发。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (16)

1.一种报文转发方法,其特征在于,应用在多链路透明互联TRILL网络中作为网关的路由桥RB上,该方法包括:
该RB接收到TRILL封装的地址解析协议ARP请求报文,在TRILL解封装后进行ARP表项学习时,将解封装的TRILL头中的源昵称nickname学习到ARP表项中;获取转发芯片响应的所述源nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中并下发到转发芯片上;
该RB接收到数据报文时,根据所述数据报文的目的因特网协议IP地址在转发芯片上的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,则根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
2.根据权利要求1所述的方法,其特征在于,所述方法进一步包括:
该RB接收到未进行TRILL封装的ARP请求报文,进行ARP表项学习时,在ARP表项中增加预设的无效nickname;
该RB接收到数据报文时,若查找到的三层转发表项中的ARP表项中的nickname为预设的无效nickname,则将接收到的数据报文进行三层转发处理。
3.根据权利要求1所述的方法,其特征在于,所述将解封装的TRILL头中的源nickname学习到ARP表项中之后,所述获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引之前,所述方法进一步包括:
确定是否已向转发芯片下发所述nickname对应的TRILL下一跳表项,如果是,执行所述获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引及后续步骤;否则,在该ARP表项中增加预设的无效驱动索引并下发到转发芯片上;
所述若查找到的三层转发表项中的ARP表项中的nickname为有效nickname之后,所述根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息之前,所述方法进一步包括:
确定查找到的三层转发表项中的ARP表项中的nickname对应的驱动索引是否为预设的无效驱动索引,如果是,将接收到的数据报文丢弃;否则,执行所述根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息及后续步骤。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中时,所述方法进一步包括:
使用该nickname将对应的ARP表项与TRILL下一跳表项关联;
当软件删除TRILL下一跳表项时,若该TRILL下一跳表项存在关联的ARP表项,则不向转发芯片下发删除所述TRILL下一跳表项的指令,并设置所述TRILL下一跳表项的状态为待删除状态;否则,向所述转发芯片下发删除所述TRILL下一跳表项的指令,使转发芯片将所述TRILL下一跳表项删除。
5.根据权利要求4所述的方法,其特征在于,所述方法进一步包括:
当ARP表项删除时,删除该ARP表项与对应的TRILL下一跳表项的关联,若确定与该ARP表项关联的TRILL下一跳表项设置为待删除状态,则向所述转发芯片下发删除所述TRILL下一跳表项的指令,使转发芯片将所述TRILL下一跳表项删除。
6.根据权利要求4所述的方法,其特征在于,所述方法进一步包括:
任一TRILL下一跳表项的驱动索引变化时,将与其关联的ARP表项中的对应驱动索引更新为变化后的驱动索引后,将更新后的ARP表项下发到转发芯片上。
7.一种报文转发路由桥RB,其特征在于,所述RB在多链路透明互联TRILL网络中作为网关,所述RB包括:接收单元、处理单元、学习单元、下发单元和转发芯片;
所述接收单元,用于接收地址解析协议ARP请求报文;接收数据报文;
所述处理单元,用于当所述接收单元接收到TRILL封装的ARP请求报文时,进行TRILL解封装;
所述学习单元,用于所述处理单元在TRILL解封装后的ARP请求报文进行ARP表项学习时,将解封装的TRILL头中的源昵称nickname学习到ARP表项中;并获取转发芯片响应的所述源nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中;
所述下发单元,用于所述学习单元将学习到的ARP表项下发到转发芯片上;
所述转发芯片,用于存储所述下发单元下发的ARP表项,当接收到数据报文时,根据所述数据报文的目的因特网协议IP地址在转发芯片上的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,则根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
8.根据权利要求7所述的RB,其特征在于,
所述学习单元,进一步用于当所述接收单元接收到未进行TRILL封装的ARP请求报文进行ARP表项学习时,在ARP表项中增加预设的无效nickname;
所述转发芯片,用于若查找到的三层转发表项中的ARP表项中的nickname为预设的无效nickname,则将接收到的数据报文进行三层转发处理。
9.根据权利要求7所述的RB,其特征在于,
所述学习单元,进一步用于将所述处理单元解封装的TRILL头中的源nickname学习到ARP表项中之后,确定所述下发单元是否已向转发芯片下发所述nickname对应的TRILL下一跳表项,如果是,获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引及后续操作;否则,在该ARP表项中增加预设的无效驱动索引并触发所述下发单元下发到转发芯片上;
所述转发芯片,进一步用于若查找到的三层转发表项中的ARP表项中的nickname为有效nickname之后,确定查找到的三层转发表项中的ARP表项中的nickname对应的驱动索引是否为预设的无效驱动索引,如果是,将接收到的数据报文丢弃;否则,执行所述根据所述nickname对应的驱动索引获取TRILL封装信息和出口信息及后续操作。
10.根据权利要求7-9任意一项所述的RB,其特征在于,
所述学习单元,进一步用于获取转发芯片响应的所述nickname对应的TRILL下一跳表项的驱动索引,增加到所述ARP表项中时,使用该nickname将对应的ARP表项与TRILL下一跳表项关联;当软件删除TRILL下一跳表项时,若该TRILL下一跳表项存在关联的ARP表项,则不触发所述下发单元向转发芯片下发删除所述TRILL下一跳表项的指令,并设置所述TRILL下一跳表项的状态为待删除状态;否则,触发所述下发单元向所述转发芯片下发删除所述TRILL下一跳表项的指令,使转发芯片将所述TRILL下一跳表项删除。
11.根据权利要求10所述的RB,其特征在于,
所述学习单元,进一步当ARP表项删除时,删除该ARP表项与对应的TRILL下一跳表项的关联,若确定与该ARP表项关联的TRILL下一跳表项设置为待删除状态,则触发所述下发单元向所述转发芯片下发删除所述TRILL下一跳表项的指令,使转发芯片将所述TRILL下一跳表项删除。
12.根据权利要求10所述的RB,其特征在于,
所述学习单元,进一步用于任一TRILL下一跳表项的驱动索引变化时,将与其关联的ARP表项中的对应驱动索引更新为变化后的驱动索引后,触发所述下发单元将更新后的ARP表项下发到所述转发芯片上。
13.一种报文转发芯片,其特征在于,应用在多链路透明互联TRILL网络中作为网关的路由桥RB上,该转发芯片包括:控制层接口单元、存储单元和硬件处理逻辑单元;
所述控制层接口单元,接收所在RB的软件层下发的ARP表项;所述ARP表项包括昵称nickname和驱动索引;
所述存储单元,用于当所述控制层接口单元接收到ARP表项时,将该ARP表项存储到对应的三层转发表项中;
所述硬件处理逻辑单元,用于当接收到数据报文时,根据所述数据报文的目的因特网协议IP地址在所述存储单元存储的三层转发表项中查找,若查找到的三层转发表项中的ARP表项中的nickname为有效nickname,且确定所述nickname对应的驱动索引为有效驱动索引,则根据所述驱动索引获取TRILL封装信息和出口信息,根据所述封装信息封装接收到的数据报文并根据所述出口信息转发。
14.根据权利要求13所述的转发芯片,其特征在于,
所述硬件处理逻辑单元,进一步用于若在所述存储单元中查找到的三层转发表项中的ARP表项中的nickname为有效nickname,且所述ARP表项中的nickname对应的驱动索引为无效驱动索引,则将接收到的数据报文丢弃。
15.根据权利要求13所述的转发芯片,其特征在于,
所述控制层接口单元,进一步用于接收所在RB的软件层下发的ARP表项;所述ARP表项包括nickname;
所述硬件处理逻辑单元,进一步用于若查找到的三层转发表项中的ARP表项中的nickname为无效nickname,则将接收到的数据报文进行三层转发处理。
16.根据权利要求13-15任意一项所述的转发芯片,其特征在于,
所述控制层接口单元,进一步用于接收所在RB的软件层下发的删除ARP表项的指令;
所述存储单元,进一步用于删除所述控制层接口单元接收到的删除所述ARP表项的指令所指示的ARP表项;当所述接收单元接收到因ARP表项中对应的驱动索引变化而再次接收到ARP表项时,更新本地存储的对应ARP表项。
CN201510200690.XA 2015-04-24 2015-04-24 一种报文转发方法、路由桥和转发芯片 Active CN104780105B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510200690.XA CN104780105B (zh) 2015-04-24 2015-04-24 一种报文转发方法、路由桥和转发芯片

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510200690.XA CN104780105B (zh) 2015-04-24 2015-04-24 一种报文转发方法、路由桥和转发芯片

Publications (2)

Publication Number Publication Date
CN104780105A CN104780105A (zh) 2015-07-15
CN104780105B true CN104780105B (zh) 2018-02-09

Family

ID=53621356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510200690.XA Active CN104780105B (zh) 2015-04-24 2015-04-24 一种报文转发方法、路由桥和转发芯片

Country Status (1)

Country Link
CN (1) CN104780105B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105227466B (zh) 2015-08-20 2019-01-11 北京百度网讯科技有限公司 通信处理方法和装置
CN106789670B (zh) * 2016-12-28 2019-09-20 迈普通信技术股份有限公司 一种arp表项更新的方法及装置
CN109905495A (zh) * 2019-02-22 2019-06-18 盛科网络(苏州)有限公司 一种降低cpu负载的方法及装置
CN115190100A (zh) * 2022-07-04 2022-10-14 中国联合网络通信集团有限公司 数据转发方法、vtep网关、电子设备及可读存储介质
CN116366544A (zh) * 2023-02-15 2023-06-30 杭州迪普科技股份有限公司 地址解析协议的删除方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102368727A (zh) * 2011-09-14 2012-03-07 杭州华三通信技术有限公司 跨ip网络的trill网络通信方法、系统和设备
CN103248569A (zh) * 2012-02-08 2013-08-14 杭州华三通信技术有限公司 实现trill网络等价路径的方法及装置
CN103780468A (zh) * 2012-10-22 2014-05-07 中兴通讯股份有限公司 智能终端接入trill网络的方法、智能终端及路由网桥

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9391799B2 (en) * 2012-10-18 2016-07-12 Cisco Technology, Inc. Multicast handling in a transparent interconnect of lots of links based data center interconnect

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102368727A (zh) * 2011-09-14 2012-03-07 杭州华三通信技术有限公司 跨ip网络的trill网络通信方法、系统和设备
CN103248569A (zh) * 2012-02-08 2013-08-14 杭州华三通信技术有限公司 实现trill网络等价路径的方法及装置
CN103780468A (zh) * 2012-10-22 2014-05-07 中兴通讯股份有限公司 智能终端接入trill网络的方法、智能终端及路由网桥

Also Published As

Publication number Publication date
CN104780105A (zh) 2015-07-15

Similar Documents

Publication Publication Date Title
CN104780105B (zh) 一种报文转发方法、路由桥和转发芯片
CN104869042B (zh) 报文转发方法和装置
CN105577417B (zh) 基于vxlan网络的报文转发方法及装置
CN103685006B (zh) 一种在边缘设备上的报文转发方法和边缘设备
CN104660508B (zh) 一种报文转发方法及装置
US20170237655A1 (en) Forwarding Data Packets In Software Defined Networks
CN104601427B (zh) 数据中心网络中的报文转发方法及装置
CN106612224B (zh) 应用于vxlan的报文转发方法和装置
CN101155130B (zh) 学习mac地址的方法及传送vpls客户数据的系统及设备
CN105591868B (zh) 一种虚拟专用网络vpn的接入方法和装置
CN106254256B (zh) 基于三层vxlan网关的数据报文转发方法和设备
CN102801820B (zh) 一种evi网络中mac地址发布方法和装置
CN104488235B (zh) 报文转发方法和网络设备
CN107135133A (zh) 多家庭pbb‑evpn网络中的水平分割数据包转发
CN105379228B (zh) 实现arp的方法、交换设备及控制设备
CN106936939A (zh) 一种报文处理方法、相关装置及nvo3网络系统
CN101052022B (zh) 一种虚拟专用网用户访问公网的系统和方法
CN106209638B (zh) 从虚拟局域网至虚拟可扩展局域网的报文转发方法和设备
CN106209648B (zh) 跨虚拟可扩展局域网的组播数据报文转发方法和设备
CN106209637B (zh) 从虚拟可扩展局域网至虚拟局域网的报文转发方法和设备
CN104079466B (zh) 一种报文处理方法和设备
CN106209689A (zh) 从vxlan至vlan的组播数据报文转发方法和设备
CN105453513A (zh) 报文转发方法、转发表项下发方法及网络设备
CN107547399A (zh) 一种组播转发表项的处理方法和pe设备
CN101083598A (zh) 一种虚拟私有网的路由引入方法、系统和运营商边缘设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant after: Xinhua three Technology Co., Ltd.

Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Applicant before: Huasan Communication Technology Co., Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant