三层下一跳独立于二层转发表的报文处理方法及芯片的制作方法

文档序号:7898968阅读:172来源:国知局
专利名称:三层下一跳独立于二层转发表的报文处理方法及芯片的制作方法
技术领域
本发明涉及信息传输技术领域,尤其涉及一种三层下一跳独立于二层转发表的报文处理方法及芯片。
背景技术
以太网的三层转发信息表通常是IP路由表,IP路由表的下一跳是三层的邻居,三层的邻居表项是通过ARP (IPv4)和NDP (IPv6)这两种邻居发现协议学习的。邻居表项是IP到MAC的映射。以太网的二层转发信息表通常是FDB表,FDB表是数据报文在通过交换机时学习的,FDB表项是VLAN+MAC到端口的映射。现有的芯片在实现三层转发时,只是做到了路由与下一跳的分离,而下一跳和FDB仍然组合在一起。当FDB发生变化时,下一跳表项就需要修改并重新往芯片存储(SRAM)中下发一遍,在这个变化到下发完成的时间间隔内,用户的业务会被暂时中断。假设从链路失败到设备检测到链路失败并删除FDB这段时间用Tl表示,设备从删除FDB到重新学习到FDB这段时间用T2表示,则业务中断时间为TI+T2,中断时间较长。在以太环网中,这种问题尤为突出。

发明内容
本发明的目的在于提供一种经过改进的报文处理方法及芯片。本发明的一种三层下一跳独立于二层转发表的报文处理方法,所述报文处理方法包括以下步骤 51、接收报文;
52、对所述报文进行三层编辑并转发;
53、通过目的MAC和VLAN判断是否能查找到FDB;
54、若能查找到FDB,则对所述报文进行二层转发;若不能查找到FDB,则将所述报文在VLAN中进行二层广播。作为本发明的进一步改进,在所述“将所述报文在VLAN中进行广播”步骤后,还包括
重新学习FDB。作为本发明的进一步改进,所述S2步骤包括
521、使用目的IP地址查找路由表,得到下一跳信息;
522、进行三层编辑,将报文发送到环回端口。作为本发明的进一步改进,所述三层编辑包括IP首部的TTL减一、IP校验值的修改、源MAC的修改和目的MAC的修改。作为本发明的进一步改进,所述步骤S3前还包括
检测环回端口链路是否发生切换,若发生切换,则删除FDB;若不发生切换,则不删除
FDB。
作为本发明的进一步改进,所述S2步骤转发信息包括IP转发表和MPLS转发表;所述S3步骤转发信息包括VLAN的FDB和VPLS的FDB。相应地,本发明的一种三层下一跳独立于二层转发表的报文处理芯片,该芯片包括
用于接收报文的单元;
用于对所述报文进行三层编辑并转发的单元;
用于通过目的MAC和VLAN判断是否能查找到FDB的单元;
用于若能查找到FDB,则对所述报文进行二层转发;若不能查找到FDB,则将所述报文在VLAN中进行二层广播转发的单元。
作为本发明的进一步改进,所述芯片还用于
使用目的IP地址查找路由表,得到下一跳的信息;
进行三层编辑,将报文发送到环回端口。作为本发明的进一步改进,所述三层编辑包括IP首部的TTL减一、IP校验值的修改、源MAC的修改和目的MAC的修改。作为本发明的进一步改进,该芯片还用于
检测环回端口链路是否发生切换,若发生切换,则删除FDB;若不发生切换,则不删除
FDB。相对于现有技术,本发明的有益效果是通过芯片环回功能令三层转发信息独立于二层转发信息,让二层转发信息的变化不影响到三层转发信息的下发,提高三层业务的转发质量。


图I为本发明一实施方式中报文处理方法的流程图。图2为本发明一实施方式中报文处理方法的环回功能示意图。图3为本发明一实施方式中报文处理方法的示例示意图。
具体实施例方式以下将结合附图所示的各实施方式对本发明进行详细描述。但这些实施方式并不限制本发明,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本发明的保护范围内。参图I、图2所示,本发明利用芯片的环回功能,让报文入两次芯片,将三层的查找
编辑动作和二层的查找编辑动作分两次进行,第一遍①处理三层动作,第二遍②处理二层动作。所述三层下一跳独立于二层转发表的报文处理方法为
51、接收报文;
52、对所述报文进行三层编辑并转发;
53、通过目的MAC和VLAN判断是否能查找到FDB;
54、若能查找到FDB,则对所述报文进行二层转发;若不能查找到FDB,则将所述报文在VLAN中进行二层广播,其中查找到FDB后进行二层单播转发,未查找到FDB则进行二层广播转发。在所述“将所述报文在VLAN中进行广播”步骤后,还包括重新学习FDB。所述S2步骤具体为
521、使用目的IP地址查找路由表,得到下一跳信息;
522、进行三层编辑,将报文发送到环回端口,其中“三层编辑”包括IP首部的TTL减一、IP校验值的修改、源MAC的修改和目的MAC的修改,所述“三层编辑”动作还包括IP首部的Option处理和二层的VLAN编辑等。所述步骤S31前还包括检测环回端口链路是否发生切换,若发生切换,则删除 FDB ;若不发生切换,则不删除FDB。优选地,所述S2步骤转发信息包括IP转发表和MPLS转发表;所述S3步骤转发信息包括VLAN的FDB和VPLS的FDB。其中,第一遍①处理三层动作,报文发送至IPE,使用目的IP地址查找路由表,得到下一跳信息,再经过FWD转发至EPE,进行三层编辑,完成后将报文发送到环回端口,再次将报文发送至IPE,进行FDB查找,再经过FWD转发至EPE,进行二层动作处理。如图2所不,本发明一实施方式中三层下一跳独立于二层转发表的报文处理芯片,所述芯片包括
IPE单元,用于接收报文;
EPE单元,用于对所述报文进行三层编辑并转发,所述三层编辑并转发信息包括IP转发表和MPLS转发表;
所述IPE单元还用于在IPE中通过目的MAC和VLAN判断是否能查找到FDB,第二次进入芯片的报文因为目的MAC已经替换成邻居的MAC,会被解析成一个二层报文,通过目的MAC+VLAN,判断是否能查找到FDB ;
所述EPE单元还用于若能查找到FDB,则对所述报文在EPE中进行二层动作处理并转发;若不能查找到FDB,则将所述报文在VLAN中进行广播,所述报文进行二层动作处理并转发的信息包括VLAN的FDB和VPLS的FDB。所述IPE单元还用于重新学习FDB。所述芯片还用于
使用目的IP地址在IPE中查找路由表,得到下一跳信息;
在EPE中进行三层编辑,将报文发送到环回端口,其中“三层编辑”包括IP首部的TTL减一、IP校验值的修改、源MAC的修改和目的MAC的修改,所述“三层编辑”动作还包括IP首部的Option处理和二层的VLAN编辑等。其中,报文信息由IPE转发至FWD,再从FWD转发至EPE中。所述芯片还用于检测环回端口链路是否发生切换,若发生切换,则删除FDB;若不发生切换,则不删除FDB。优选地,所述三层转发信息包括IP转发表和MPLS转发表;所述二层转发信息包括VLAN 的 FDB 和 VPLS 的 FDB。参图3所示,为本发明一实施方式中报文处理方法的示例示意图。A、B、C和D表示一个环网中的四个交换机,ab、ac、bd和cd表示连接这四台交换机的四条链路,a和d分别是A和D连接外部网络的链路。Pab和Pac分别是设备A连接设备B和C的端口。
在这个环网中,链路ac因为二层环网协议被阻塞,设备A学习到的设备D的FDB的出端口是连接链路ab上的端口 Pab。从链路a发来的目的是链路d上的三层业务的三层下一跳是设备D。从链路a发来的目的是链路d上的三层业务首先在设备A上作三层转发,进行三层编辑之后环回再次在设备A上做二层转发,从链路ab发给设备B,由设备B再进行二层转发发给设备D,设备D做三层转发从链路d发送出去。当链路ab断掉时,二层环网协议会把链路ac打开,设备会在这个时候把FDB删除,这时,从链路a发来的目的是链路d上的三层业务首先在设备A上作三层转发,进行三层编辑之后环回再次在设备A上做二层转发,二层转发查找不到FDB,会在VLAN中做泛洪,从链路ab和ac分别发给设备B和C,发给设备B的报文会因为链路ab断掉而发不出来。发给设备C的报文再进行二层转发发给设备D,设备D做三层转发从链路d发送出去。
当设备A上的设备D的FDB重新学习到链路ac上的端口 Pac之后,从链路a发来的目的是链路d上的三层业务首先在设备A上作三层转发,进行三层编辑之后环回再次在设备A上做二层转发,从链路ac发给设备C,由设备C再进行二层转发发给设备D,设备D做三层转发从链路d发送出去。在本实施例中,当出口端因为链路问题发生切换时,FDB会重新学习,在开始切换到重新学习的这段时间里,三层报文在二层VLAN中作广播,因此三层业务中断时间就仅为从链路失败到设备检测到链路失败并删除FDB的这段时间,与现有技术相比,业务中断时间缩短了设备从删除FDB到重新学习到FDB的这段时间。本实施例中,通过芯片环回功能令三层转发信息独立于二层转发信息,让二层转发信息的变化不影响到三层转发信息的下发,提高三层业务的转发质量,同时还可以降低上层软件的耦合度。在其他实施方式中,也可以通过修改芯片处理流程,把三层下一跳表项和FDB分离,不用环回也能达到发明目的。为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施方式或者实施方式的某些部分所述的方法。以上所描述的装置实施方式仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。本申请可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施方式中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内 。
权利要求
1.一种三层下一跳独立于二层转发表的报文处理方法,其特征在于,所述报文处理方法包括以下步骤 51、接收报文; 52、对所述报文进行三层编辑并转发; 53、通过目的MAC和VLAN判断是否能查找到FDB; 54、若能查找到FDB,则对所述报文进行二层转发;若不能查找到FDB,则将所述报文在VLAN中进行二层广播。
2.根据权利要求I所述的方法,其特征在于,在所述“将所述报文在VLAN中进行广播”步骤后,还包括重新学习FDB。
3.根据权利要求I所述的方法,其特征在于,所述S2步骤包括 521、使用目的IP地址查找路由表,得到下一跳信息; 522、进行三层编辑,将报文发送到环回端口。
4.根据权利要求3所述的方法,其特征在于,所述三层编辑包括IP首部的TTL减一、IP校验值的修改、源MAC的修改和目的MAC的修改。
5.根据权利要求I所述的方法,其特征在于,所述步骤S3前还包括 检测环回端口链路是否发生切换,若发生切换,则删除FDB;若不发生切换,则不删除FDB。
6.根据权利要求I所述的方法,其特征在于,所述S2步骤转发信息包括IP转发表和MPLS转发表;所述S3步骤转发信息包括VLAN的FDB和VPLS的FDB。
7.—种三层下一跳独立于二层转发表的报文处理芯片,其特征在于,该芯片包括 用于接收报文的单元; 用于对所述报文进行三层编辑并转发的单元; 用于通过目的MAC和VLAN判断是否能查找到FDB的单元; 用于若能查找到FDB,则对所述报文进行二层转发;若不能查找到FDB,则将所述报文在VLAN中进行二层广播转发的单元。
8.根据权利要求7所述的芯片,其特征在于,所述芯片还用于 使用目的IP地址查找路由表,得到下一跳的信息; 进行三层编辑,将报文发送到环回端口。
9.根据权利要求8所述的芯片,其特征在于,所述三层编辑包括IP首部的TTL减一、IP校验值的修改、源MAC的修改和目的MAC的修改。
10.根据权利要求7所述的芯片,其特征在于,该芯片还用于 检测环回端口链路是否发生切换,若发生切换,则删除FDB;若不发生切换,则不删除FDB。
全文摘要
本发明提供一种三层下一跳独立于二层转发表的报文处理方法及芯片,其中,所述方法包括S1、接收报文;S2、对所述报文进行三层编辑并转发;S3、通过目的MAC和VLAN判断是否能查找到FDB;S4、若能查找到FDB,则对所述报文进行二层转发;若不能查找到FDB,则将所述报文在VLAN中进行二层广播。通过芯片环回功能令三层转发信息独立于二层转发信息,让二层转发信息的变化不影响到三层转发信息的下发,提高三层业务的转发质量。
文档编号H04L12/741GK102984067SQ20111025841
公开日2013年3月20日 申请日期2011年9月2日 优先权日2011年9月2日
发明者李占斌, 何志川 申请人:盛科网络(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1