网络处理器镜像实现方法及网络处理器的制作方法

文档序号:7749113阅读:188来源:国知局
专利名称:网络处理器镜像实现方法及网络处理器的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种网络处理器镜像实现方法及网络处理器。
背景技术
随着网络技术的飞速发展,网络流量的增长以及新业务的出现,对网络设备的线速、灵活的处理能力提出了更高的要求。网络处理器凭借其高速转发性能、可靠性以及灵活的可编程性,已成为目前网络数据处理的有效解决方案。数据镜像是网络设备的一个常用功能,其原理是将一个物理端口的数据流或者符合某种规则的特定流复制到另一个指定的监控端口上,其中,将物理端口的数据流复制到另一指定的监控端口上称为端口镜像;将符合某种规则的特定流复制到另一个指定的监控端口上称为流镜像。通过镜像可以在监控端口上获取被镜像端口的数据,以便进行网络流 量分析、错误诊断等。现有的镜像报文的转发过程需要通过较为复杂的硬件来实现,由此增加了系统资源和成本。

发明内容
本发明的主要目的在于提供一种网络处理器镜像实现方法及网络处理器,旨在降低系统资源和成本。为了达到上述目的,本发明提出一种网络处理器镜像实现方法,包括网络处理器获取从源端口进入缓存单元的原始报文的报文头,所述原始报文分配有一索引号;将所述索引号携带于所述报文头中送入微引擎单元;对所述报文头进行微码处理,并根据所述索引号从预设的镜像表中获取镜像的出口信息;将所述缓存单元中的原始报文与微码处理后的报文头重新链接形成镜像报文,从所述镜像的出口信息指示的镜像端口发送出去。优选地,所述网络处理器获取从源端口进入缓存单元的原始报文的报文头的步骤之前还包括网络处理器从源端口接收所述原始报文存入所述缓存单元,并为所述原始报文分配所述索引号;复制一份所述原始报文的报文头,并将所述索引号携带于所述复制的报文头中送入微引擎单元;通过查询端口表或访问控制列表获取所述镜像的出口信息;以所述索引号为存储索引号将所述镜像的出口信息保存于所述预设的镜像表中。优选地,所述将索引号携带于所述复制的报文头中送入微引擎单元的步骤之后还包括
对所述复制的报文头进行微码处理;将微码处理后的报文头送入所述缓存单元;将所述缓存单元中的原始报文与微码处理后的报文头重新链接形成目的报文,从目的端口发送出去。优选地,所述镜像的出口信息包括所述镜像报文对应的镜像端口号。优选地,所述端口表或访问控制列表包括所述源端口与镜像端口的对应关系。优选地,所述镜像表、端口表及访问控制列表存储于内部或外部存储器中。本发明还提出一种实现镜像的网络处理器,包括缓存单元,用于获取从源端口进入该缓存单元的原始报文的报文头,所述原始报文分配有一索引号;微引擎单元,用于接收来自所述缓存单元并携带有所述索引号的报文头,对所述报文头进行微码处理;并根据所述索引号从预设的镜像表中获取镜像的出口信息;发送单元,用于将所述缓存单元中的原始报文与微码处理后的报文头重新链接形成镜像报文,从所述镜像的出口信息指示的镜像端口发送出去。优选地,所述缓存单元,还用于从源端口接收所述原始报文并保存,为所述原始报文分配所述索引号;复制一份所述原始报文的报文头,并将所述索引号携带于所述复制的报文头中送入微引擎单元;所述微引擎单元,还用于通过查询端口表或访问控制列表获取所述镜像的出口信息;以所述索引号为存储索引号将所述镜像的出口信息保存于所述预设的镜像表中。优选地,所述微引擎单元,还用于对所述复制的报文头进行微码处理;将微码处理后的报文头送入所述缓存单元;所述发送单元,还用于将所述缓存单元中的原始报文与微码处理后的报文头重新链接形成目的报文,从目的端口发送出去。优选地,所述镜像的出口信息包括所述镜像报文对应的镜像端口号;所述端口表或访问控制列表包括所述源端口与镜像端口的对应关系。本发明提出的一种网络处理器镜像实现方法及网络处理器,利用现有的报文转发流程实现镜像报文的转发,在原始报文从源端口至目的端口的转发过程中,通过微引擎单元对报文头进行微码处理,查询端口表或访问控制列表获取镜像的出口信息,并对应报文头携带的缓存单元为其分配的索引号,将获取的镜像的出口信息保存于预设的镜像表中,当需要对原始报文进行镜像转发时,重新复制一份原始报文的报文头送入微引擎单元进行微码处理,但不改变报文头的内容,然后根据索引号从预设的镜像表中获取相应的镜像的出口信息,将原始报文和携带有出口信息的报文头重新链接后,从相应的镜像端口发送出去,从而实现镜像报文的转发,本发明镜像报文的转发过程灵活、通用,具有较强的应用性,并可节省系统资源及成本。


图I是现有的网络处理器的结构及报文转发示意图;图2是本发明网络处理器镜像实现方法一实施例流程示意图;图3是本发明网络处理器镜像实现方法另一实施例流程示意图4是本发明实现镜像的网络处理器一实施例结构示意图。为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。
具体实施例方式本发明实施例解决方案主要是利用现有的报文转发流程实现镜像报文的转发,在原始报文从源端口至目的端口的转发过程中,通过微引擎单元对报文头进行微码处理,查询端口表或访问控制列表获取镜像的出口信息,并对应报文头携带的缓存单元为其分配的索引号,将获取的镜像的出口信息保存于预设的镜像表中,当需要对原始报文进行镜像转发时,重新复制一份原始报文的报文头送入微引擎单元进行微码处理,但不改变报文头的内容,然后根据索引号从预设的镜像表中获取相应的镜像的出口信息,将原始报文和携带有出口信息的报文头重新链接后,从相应的镜像端口发送出去,以节省系统资源及成本。具体地,为了实现镜像报文的转发,本发明在现有的网络处理器进行原始报文的 转发流程的基础上,引入缓存单元为原始报文分配的索引号及用于存储镜像的出口信息的镜像表。如图I所示,图I为现有的网络处理器的结构及报文转发示意图。现有的原始报文在网络处理器中的转发过程为步骤①,原始报文从源物理端口进入网络处理器,首先进入报文缓存单元,在报文缓存单元中分配一块缓存区域;步骤②,从原始报文中复制报文头部进入网络处理器的微引擎;步骤③,报文头经过微引擎的微码处理,修改后的报文头从微引擎出来,重新进入报文缓存单元;步骤④,从缓存单元中取出原始报文,与新的报文头重组后形成新的报文,发送到目的端口。如图2所示,本发明一实施例提出一种网络处理器镜像实现方法,包括步骤S101,网络处理器获取从源端口进入缓存单元的原始报文的报文头,原始报文分配有一索引号;将索引号携带于报文头中送入微引擎单元;其中,原始报文从源端口进入网络处理器后,首先进入网络处理器中的缓存单元,缓存单元为其分配有一索引号。为了实现原始报文的镜像转发,需要获取该原始报文需要转发的镜像的出口信息,比如镜像端口号,上述镜像的出口信息预先存储于一张预设的镜像表中,该镜像表中存储有原始报文在缓存单元中的索引号与该原始报文的镜像端口号的对应关系。镜像表可以存储于网络处理器的内部存储器中,也可存储于网络处理器之外的外部存储器中。通过微引擎单元对原始报文的微码处理过程可以查询到该预设的镜像表中的镜像的出口信息。本实施例将索引号携带于报文头中,送入微引擎单元;以便后续通过微引擎单元及索引号查询镜像表,获取相应的镜像的出口信息。步骤S102,对报文头进行微码处理,并根据索引号从预设的镜像表中获取镜像的出口信息;微引擎单元对来自缓存单元的报文头进行微码处理,根据报文头携带的索引号从预设的镜像表中获取镜像的出口信息。之后,将携带有镜像的出口信息的报文头返回至缓存单元,由于是对原始报文的镜像转发,报文头在微引擎单元中进行微码处理时没有改变内容,仅仅是为了获取镜像的出口信息。步骤S103,将缓存单元中的原始报文与微码处理后的报文头重新链接形成镜像报文,从镜像的出口信息指示的镜像端口发送出去。携带有镜像的出口信息的报文头进入缓存单元后,网络处理器将缓存单元中的原始报文与微码处理后的报文头重新链接形成镜像报文,从镜像的出口信息指示的镜像端口发送出去,从而实现了原始报文的镜像转发。如图3所示,本发明另一实施例提出一种网络处理器镜像实现方法,与上述实施例的区别在于,本实施例在实现原始报文的镜像转发的同时,还可实现原始报文从源端口至目的端口的正常转发。该方法具体包括步骤S201,网络处理器从源端口接收原始报文存入缓存单元,并为原始报文分配
一索引号;原始报文从源端口进入网络处理器后,首先进入缓存单元进行缓存,缓存单元为其分配一索引号,作为后续从镜像表中查询原始报文对应的镜像端口号的唯一标识。步骤S202,复制一份原始报文的报文头,并将索引号携带于复制的报文头中送入微引擎单元;原始报文的正常转发即从源端口至目的端口的转发流程,详见下述步骤S208、步骤S209和步骤S310。镜像报文的转发流程则进入下述步骤S203。步骤S203,通过查询端口表或访问控制列表获取镜像的出口信息;其中,镜像的出口信息包括原始报文镜像转发的镜像端口号。端口表对应端口镜像的场景,访问控制列表对应流镜像的场景。端口表或访问控制列表包括源端口与镜像端口的对应关系。如果需要进行端口镜像,微引擎在对复制的报文头进行微码处理时,通过查询端口表获取镜像的出口信息;如果需要进行流镜像,微引擎在对复制的报文头进行微码处理时,通过查询访问控制列表获取镜像的出口信息。查询端口表及访问控制列表可以存储于网络处理器的内部存储器中,也可存储于网络处理器之外的外部存储器中。步骤S204,以索引号为存储索引号将镜像的出口信息保存于预设的镜像表中;将获取的镜像的出口信息保存于预设的镜像表中,其存放索引号为原始报文在缓存单元中存放的索引号。上述镜像表反映出原始报文在缓存单元中的索引号与该原始报文的镜像端口号的对应关系。镜像表可以存储于网络处理器的内部存储器中,也可存储于网络处理器之外的外部存储器中。步骤S205,网络处理器重新复制一份从源端口进入缓存单元的原始报文的报文头,将原始报文的索引号携带于报文头中送入微引擎单元;当需要端口镜像或流镜像时,网络处理器从缓存单元中选择需要镜像的原始报文,重新复制一份该原始报文的报文头,并将缓存单元为原始报文分配的索引号携带于报文头中送入微引擎单元。
步骤S206,对报文头进行微码处理,并根据索引号从预设的镜像表中获取镜像的出口信息;微引擎单元对来自缓存单元的报文头进行微码处理,由于是镜像报文转发流程中的微码处理,此微码处理过程不改变报文头的内容,而是通过报文头携带的索引号从预设的镜像表中获取镜像的出口信息。步骤S207,将缓存单元中的原始报文与微码处理后的报文头重新链接形成镜像报文,从镜像的出口信息指示的镜像端口发送出去。获得原始报文的镜像的出口信息之后,网络处理器将缓存单元中待镜像的原始报文与微码处理后的报文头重新链接形成镜像报文,从镜像的出口信息指示的镜像端口发送出去。此外,作为原始报文从源端口至目的端口的正常转发流程,本实施例在步骤S202 之后还包括步骤S208,对复制的报文头进行微码处理;步骤S209,将微码处理后的报文头送入缓存单元;步骤S310,将缓存单元中的原始报文与微码处理后的报文头重新链接形成目的报文,从目的端口发送出去。上述步骤S208、步骤S209及步骤S310与现有的原始报文的正常转发流程相同,在此不作详述。本实施例实现了原始报文的镜像转发,同时还实现了原始报文从源端口至目的端口的正常转发,充分利用现有的报文转发流程实现镜像报文的转发,且镜像报文的转发过程灵活、通用,具有较强的应用性,大大节省系统资源及成本。如图4所示,本发明一实施例提出一种实现镜像的网络处理器,包括缓存单元301、微引擎单元302及发送单元303,其中缓存单元301,用于获取从源端口进入该缓存单元301的原始报文的报文头,原始报文分配有一索引号;微引擎单元302,用于接收来自缓存单元301并携带有索引号的报文头,对报文头进行微码处理;并根据索引号从预设的镜像表中获取镜像的出口信息;发送单元303,用于将缓存单元301中的原始报文与微码处理后的报文头重新链接形成镜像报文,从镜像的出口信息指示的镜像端口发送出去。进一步,在原始报文从源端口至目的端口的正常转发过程中,缓存单元301还用于从源端口接收原始报文并保存,为原始报文分配索引号;复制一份原始报文的报文头,并将索引号携带于复制的报文头中送入微引擎单元302 ;微引擎单元302,还用于通过查询端口表或访问控制列表获取镜像的出口信息;以索引号为存储索引号将镜像的出口信息保存于预设的镜像表中。同时,微引擎单元302还用于对复制的报文头进行微码处理;将微码处理后的报文头送入缓存单兀301 ;发送单元303还用于将缓存单元301中的原始报文与微码处理后的报文头重新链接形成目的报文,从目的端口发送出去。以下详细说明本实施例中网络处理器进行镜像报文转发的功能原理
原始报文从网络处理器的源端口进入网络处理器的后,首先进入网络处理器内的缓存单元301,缓存单元301为原始报文分配一索引号,作为后续查找镜像的出口信息的唯—标识。之后,原始报文通过其正常的转发流程为镜像报文的转发获取镜像的出口信息。具体地,缓存单元301复制一份原始报文的报文头,并将原始报文在缓存单元301的索引号携带在上述报文头中送入微引擎单元302,微引擎单元302对进入的报文头进行微码处理,作为原始报文的正常转发流程,微引擎单元302将改变报文头的内容,并将微码处理后的报文头送回缓存单元301,发送单元303将缓存单元301中的原始报文与经过微码处理后的报文头重新链接后形成最终报文,从目的端口发送出去。其中,对目的端口信息的获取,是在微引擎单元302对报文头进行微码处理过程中,通过查询MAC表(对应原始报文的二层转发)或者路由表(对应原始报文的三层转发)来实现的。此过程属于现有技术,在此不作详述。
本实施例在微引擎单元302对报文头进行微码处理的过程中,通过查询端口表或访问控制列表,获取原始报文的镜像的出口信息,镜像的出口信息包括镜像报文对应的镜像端口号。上述端口表或访问控制列表包括源端口与镜像端口的对应关系。其中,端口表对应端口镜像的场景,访问控制列表对应流镜像的场景。微引擎单元302将查询的镜像的出口信息保存于预设的镜像表中,并以原始报文在缓存单元301中存储的索引号作为镜像的出口信息在上述镜像表中存储的索引号。当需要镜像时,在缓存单元301重新复制一份原始报文的报文头,并将原始报文在缓存单元301中的索引号携带于报文头中送入微引擎单元302,通过微引擎单元302对报文头的微码处理,获取镜像表中的对应的镜像的出口信息。由于是镜像报文的转发过程,此时微引擎单元302对报文头的微码处理并不会改变报文头的内容,而是通过微码处理,以索引号为查询标识,从镜像表中获取镜像的出口信息,并将镜像的出口信息携带于报文头中返回缓存单元301。最后,通过发送单元303将缓存单元301中的原始报文与微码处理后的报文头重新链接形成镜像报文,从镜像的出口信息指示的镜像端口发送出去。本发明实施例网络处理器镜像实现方法及网络处理器,利用现有的报文转发流程实现镜像报文的转发,在原始报文从源端口至目的端口的转发过程中,通过微引擎单元对报文头进行微码处理,查询端口表或访问控制列表获取镜像的出口信息,并对应报文头携带的缓存单元为其分配的索引号,将获取的镜像的出口信息保存于预设的镜像表中,当需要对原始报文进行镜像转发时,重新复制一份原始报文的报文头送入微引擎单元进行微码处理,但不改变报文头的内容,然后根据索引号从预设的镜像表中获取相应的镜像的出口信息,将原始报文和携带有出口信息的报文头重新链接后,从相应的镜像端口发送出去,从而实现镜像报文的转发,本发明镜像报文的转发过程灵活、通用,具有较强的应用性,并可节省系统资源及成本。以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
权利要求
1.一种网络处理器镜像实现方法,其特征在于,包括 网络处理器获取从源端口进入缓存单元的原始报文的报文头,所述原始报文分配有一索引号;将所述索引号携带于所述报文头中送入微引擎单元; 对所述报文头进行微码处理,并根据所述索引号从预设的镜像表中获取镜像的出口信息; 将所述缓存单元中的原始报文与微码处理后的报文头重新链接形成镜像报文,从所述镜像的出口信息指示的镜像端口发送出去。
2.根据权利要求I所述的方法,其特征在于,所述网络处理器获取从源端口进入缓存单元的原始报文的报文头的步骤之前还包括 网络处理器从源端口接收所述原始报文存入所述缓存单元,并为所述原始报文分配所述索引号; 复制一份所述原始报文的报文头,并将所述索引号携带于所述复制的报文头中送入微引擎单元; 通过查询端口表或访问控制列表获取所述镜像的出口信息; 以所述索引号为存储索引号将所述镜像的出口信息保存于所述预设的镜像表中。
3.根据权利要求2所述的方法,其特征在于,所述将索引号携带于所述复制的报文头中送入微引擎单元的步骤之后还包括 对所述复制的报文头进行微码处理; 将微码处理后的报文头送入所述缓存单元; 将所述缓存单元中的原始报文与微码处理后的报文头重新链接形成目的报文,从目的端口发送出去。
4.根据权利要求1、2或3所述的方法,其特征在于,所述镜像的出口信息包括所述镜像报文对应的镜像端口号。
5.根据权利要求2或3所述的方法,其特征在于,所述端口表或访问控制列表包括所述源端口与镜像端口的对应关系。
6.根据权利要求5所述的方法,其特征在于,所述镜像表、端口表及访问控制列表存储于内部或外部存储器中。
7.一种实现镜像的网络处理器,其特征在于,包括 缓存单元,用于获取从源端口进入该缓存单元的原始报文的报文头,所述原始报文分配有一索引号; 微引擎单元,用于接收来自所述缓存单元并携带有所述索引号的报文头,对所述报文头进行微码处理;并根据所述索引号从预设的镜像表中获取镜像的出口信息; 发送单元,用于将所述缓存单元中的原始报文与微码处理后的报文头重新链接形成镜像报文,从所述镜像的出口信息指示的镜像端口发送出去。
8.根据权利要求7所述的网络处理器,其特征在于, 所述缓存单元,还用于从源端口接收所述原始报文并保存,为所述原始报文分配所述索引号;复制一份所述原始报文的报文头,并将所述索引号携带于所述复制的报文头中送入微引擎单元; 所述微引擎单元,还用于通过查询端口表或访问控制列表获取所述镜像的出口信息;以所述索引号为存储索引号将所述镜像的出口信息保存于所述预设的镜像表中。
9.根据权利要求8所述的网络处理器,其特征在于, 所述微引擎单元,还用于对所述复制的报文头进行微码处理;将微码处理后的报文头送入所述缓存单元; 所述发送单元,还用于将所述缓存单元中的原始报文与微码处理后的报文头重新链接形成目的报文,从目的端口发送出去。
10.根据权利要求8或9所述的网络处理器,其特征在于,所述镜像的出口信息包括所述镜像报文对应的镜像端口号;所述端口表或访问控制列表包括所述源端口与镜像端口的对应关系。
全文摘要
本发明涉及一种网络处理器镜像实现方法及网络处理器,其方法包括网络处理器获取从源端口进入缓存单元的原始报文的报文头,原始报文分配有一索引号;将索引号携带于报文头中送入微引擎单元;对报文头进行微码处理,并根据索引号从预设的镜像表中获取镜像的出口信息;将缓存单元中的原始报文与微码处理后的报文头重新链接形成镜像报文,从镜像的出口信息指示的镜像端口发送出去。本发明利用现有的报文转发流程实现镜像报文的转发,其镜像报文的转发过程灵活、通用,具有较强的应用性,并可节省系统资源及成本。
文档编号H04L12/801GK102932262SQ20111022967
公开日2013年2月13日 申请日期2011年8月11日 优先权日2011年8月11日
发明者姜海明, 孔玲丽 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1