一种报文转发方法、路由桥和转发芯片.pdf

上传人:111****112 文档编号:1687890 上传时间:2018-07-04 格式:PDF 页数:18 大小:1.02MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510200690.X

申请日:

2015.04.24

公开号:

CN104780105A

公开日:

2015.07.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||著录事项变更IPC(主分类):H04L 12/741变更事项:申请人变更前:杭州华三通信技术有限公司变更后:新华三技术有限公司变更事项:地址变更前:310052 浙江省杭州市滨江区长河路466号变更后:310052 浙江省杭州市滨江区长河路466号|||实质审查的生效IPC(主分类):H04L 12/741申请日:20150424|||公开

IPC分类号:

H04L12/741(2013.01)I

主分类号:

H04L12/741

申请人:

杭州华三通信技术有限公司

发明人:

李昊

地址:

310052浙江省杭州市滨江区长河路466号

优先权:

专利代理机构:

北京德琦知识产权代理有限公司11018

代理人:

谢安昆; 宋志强

PDF下载: PDF下载
内容摘要

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

权利要求书

权利要求书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 表项。

说明书

说明书一种报文转发方法、路由桥和转发芯片
技术领域
本发明涉及通信技术领域,特别涉及一种报文转发方法、路由桥和转发 芯片。
背景技术
多链路透明互联(Transparent Interconnection of Lots of Links,TRILL) 协议通过将三层路由技术中间系统到中间系统(Intermediate  System-to-Intermediate System,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域节点,同时支持 二层和三层转发。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在 本发明保护的范围之内。

一种报文转发方法、路由桥和转发芯片.pdf_第1页
第1页 / 共18页
一种报文转发方法、路由桥和转发芯片.pdf_第2页
第2页 / 共18页
一种报文转发方法、路由桥和转发芯片.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《一种报文转发方法、路由桥和转发芯片.pdf》由会员分享,可在线阅读,更多相关《一种报文转发方法、路由桥和转发芯片.pdf(18页珍藏版)》请在专利查询网上搜索。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 >


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1