一种实现入端口镜像的方法和设备的制作方法

文档序号:7821214阅读:254来源:国知局
一种实现入端口镜像的方法和设备的制作方法
【专利摘要】本发明公开了一种实现入端口镜像的方法和设备,其中方法包括:获取初始报文,并根据入接口VLAN标签层数、镜像口VLAN标签层数和初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式;按照报文格式对初始报文进行封装得到镜像报文;通过镜像口将镜像报文发送给监测设备。通过采用上述方法,能够根据入接口、镜像口以及初始报文携带VLAN标签的情况综合确定最终的镜像报文格式,可以在同时具有多级交换芯片接口以及非交换芯片接口的网络设备上实现不同类型接口之间的端口镜像功能,确保兼容性和正确性,由于考虑初始报文是否携带VLAN标签可以保证报文的完整性,还能避免初始VLAN标签与加封的VLAN标签相混淆。
【专利说明】一种实现入端口镜像的方法和设备

【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种实现入端口镜像的方法和设备。

【背景技术】
[0002]端口镜像功能是网络设备上的一项基本功能,该功能提供了将一个或多个端口的数据镜像到一个或多个端口的方法。利用此技术可以实现网络监听、监控等一系列功能,例如在企业网络中端口镜像功能可以很好地对企业内部的网络数据进行监控管理,在网络出现故障的时候,还可以很方便的进行故障定位。
[0003]目前,网络设备厂商常利用交换芯片的VLAN(Virtual Local Area Network,虚拟局域网)隔离特性对网络转发芯片的CPU(Central Processing Unit,中央处理器)进行复用,并以此进行接口扩展。报文进入交换芯片的入接口时需要对报文加封与该入接口相应的VLAN标签作为区分标志;同样,报文从交换芯片发出时也需要具有与该出接口相应的VLAN标签,才能被发送到对应的出接口。由于交换芯片扩展的广泛使用,往往一个CPU接口不仅会被一层交换芯片扩展,还会被第二层交换芯片进行二次扩展,从而导致报文需要携带很多的标签。对于端口镜像功能,需要将监听的入接口报文镜像到指定的出接口上,因此,如果报文经过多层交换芯片时需要正确地对报文进行VLAN标签加封和剥离的操作。
[0004]随着交换芯片扩展功能的发展,在较多情况下非交换芯片接口、一级交换芯片接口和二级交换芯片接口甚至更多级交换芯片同时存在于一台设备之上。网络设备中利用非交换芯片口作为管理口,利用交换芯片扩展口作为转发口,端口镜像功能一般存在于相同类型的接口之间,但是不同类型的接口之间不支持端口镜像功能。


【发明内容】

[0005]为了实现不同类型接口之间的端口镜像功能,本发明提供了一种实现入端口镜像的方法,包括:
[0006]获取初始报文,并根据入接口 VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式;
[0007]按照所述报文格式对所述初始报文进行封装得到镜像报文;
[0008]通过镜像口将所述镜像报文发送给监测设备。
[0009]可选的,所述根据入接口 VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式之前,所述方法还包括:
[0010]统计所述初始报文进入入接口时所经过的交换芯片的层数,并将所述初始报文进入入接口时所经过的交换芯片的层数作为入接口 VLAN标签层数。
[0011]可选的,所述根据入接口 VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式之前,所述方法还包括:
[0012]获取所述初始报文进入入接口后实际携带VLAN标签层数;
[0013]根据所述实际携带VLAN标签层数和所述入接口 VLAN标签层数计算得到所述初始报文携带的初始VLAN标签层数,如果所述初始VLAN标签层数为O,则所述初始报文中没有携带初始VLAN标签;如果所述初始VLAN标签层数不为O,则所述初始报文中携带有初始VLAN标签。
[0014]可选的,所述根据入接口 VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式之前,所述方法还包括:
[0015]统计所述镜像报文进入所述镜像口时经过交换芯片的层数,并将所述镜像报文进入镜像口时所经过的交换芯片的层数作为镜像口 VLAN标签层数。
[0016]可选的,所述按照所述报文格式对所述初始报文进行封装得到镜像报文,所述方法还包括:
[0017]所述初始报文进入所述入接口时,根据所述入接口 VLAN标签层数对所述初始报文加封与所述入接口 VLAN标签层数相同的VLAN标签,得到包含所述初始VLAN标签和所述入接口 VLAN标签的转发报文,并将所述转发报文发送给所述镜像口 ;
[0018]所述转发报文到达所述镜像口之前,将所述转发报文中的入接口 VLAN标签去除;
[0019]进入所述镜像口时,根据所述镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与所述镜像口 VLAN标签层数相同的VLAN标签,得到包含初始VLAN标签和镜像口 VLAN标签的镜像报文。
[0020]同时,本发明还提供了一种实现入端口镜像的设备,包括:
[0021]获取模块,用于获取初始报文,并根据入接口 VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式;
[0022]处理模块,按照所述报文格式对所述初始报文进行封装得到镜像报文;
[0023]发送模块,用于通过镜像将口所述镜像报文发送给监测设备。
[0024]可选的,还包括:统计模块,用于统计所述初始报文进入入接口时所经过的交换芯片的层数,并将所述初始报文进入入接口时所经过的交换芯片的层数作为入接口 VLAN标签层数。
[0025]可选的,所述统计模块还用于:获取所述初始报文进入入接口后实际携带VLAN标签层数;根据所述实际携带VLAN标签层数和所述入接口 VLAN标签层数计算得到所述初始报文携带的初始VLAN标签层数,如果所述初始VLAN标签层数为0,则所述初始报文中没有携带初始VLAN标签,如果所述初始VLAN标签层数不为0,则所述初始报文中携带有初始VLAN标签。
[0026]可选的,所述统计模块还用于:统计所述镜像报文进入所述镜像口时经过交换芯片的层数,并将所述镜像报文进入镜像口时所经过的交换芯片的层数作为镜像口 VLAN标签层数。
[0027]可选的,所述处理模块包括第一封装子模块、去封装子模块和第二封装子模块,所述第一封装子模块用于所述初始报文进入所述入接口时,根据所述入接口 VLAN标签层数对所述初始报文加封与所述入接口 VLAN标签层数相同的VLAN标签,得到包含所述初始VLAN标签和所述入接口 VLAN标签的转发报文,并将所述转发报文发送给所述镜像口 ;
[0028]所述去封装子模块用于所述转发报文到达所述镜像口之前,将所述转发报文中的入接口 VLAN标签去除;
[0029]所述第二封装子模块用于进入所述镜像口时,根据所述镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与所述镜像口 VLAN标签层数相同的VLAN标签,得到包含初始VLAN标签和镜像口 VLAN标签的镜像报文。
[0030]本发明提供的实现入端口镜像的方法,能够根据入接口 VLAN标签层数、镜像口VLAN标签层数以及初始报文携带VLAN标签的情况综合确定最终的镜像报文格式,可以在同时具有多级交换芯片接口以及非交换芯片接口的网络设备上实现不同类型接口之间的端口镜像功能,确保兼容性和正确性,由于考虑初始报文是否携带VLAN标签可以保证报文的完整性,还能避免初始VLAN标签与加封的VLAN标签相混淆。

【专利附图】

【附图说明】
[0031]图1为本发明提供的一种实现入端口镜像的方法的步骤流程图;
[0032]图2为本发明实现入端口镜像功能的流程简图;
[0033]图3为本发明提供的一种实现入端口镜像的设备的组成示意图。

【具体实施方式】
[0034]下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0035]利用交换芯片的VLAN隔离特性对CPU接口进行复用实现接口扩展的性价比较高,能有效的增加接口数目,提高产品的竞争力。在使用交换芯片扩展的网络设备上,端口镜像功能也使用的非常广泛,但是对于同时具有多级交换芯片接口和非交换芯片接口的网络设备而言,实现不同类型接口之间的端口镜像功能仍是需要解决的问题。
[0036]本发明提供了一种实现入端口镜像的方法,步骤流程如图1所示,具体包括以下步骤:
[0037]步骤S1、获取初始报文,并根据入接口 VLAN标签层数、镜像口 VLAN标签层数和初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式。
[0038]步骤S2、按照报文格式对初始报文进行封装得到镜像报文。
[0039]步骤S3、通过镜像口将镜像报文发送给监测设备。
[0040]基于上述方法,根据入接口 VLAN标签层数、镜像接口 VLAN标签层数以及初始报文携带初始VLAN标签的情况对初始报文进行封装,在同时具有多级交换芯片接口以及非交换芯片接口的网络设备上实现不同类型接口之间的端口镜像功能。
[0041]可选的,根据入接口 VLAN标签层数、镜像口 VLAN标签层数和初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式之前,还包括入接口 VLAN标签层数的步骤,具体包括:
[0042]统计初始报文进入入接口时所经过的交换芯片的层数,并将初始报文进入入接口时所经过的交换芯片的层数作为入接口 VLAN标签层数。入接口 VLAN标签层数等于初始报文进入入接口时经过交换芯片的层数,初始报文在进入入接口时经过非交换芯片时入接口VLAN标签层数加0,经过交换芯片时入接口 VLAN标签层数加I,并将入接口 VLAN标签层数存储到设备信息中,以便后续操作中直接调用。由于在现有网络设备的每个接口在Linux内核中注册有相应的设备信息,首先将入接口 VLAN标签的层数信息存储到该设备信息中,由于非交换芯片作为管理口使用,而交换芯片作为转发口使用,所以如果初始报文经过非交换芯片则入接口 VLAN标签层数置O,经过每一层交换芯片时入接口 VLAN标签层数加1,以此类推。
[0043]其中VLAN标签是用来指示VLAN的标记,封装在能够穿越局域网的帧里。VLAN标签在数据包进入VLAN的某一个交换机端口(例如入接口)时被加上,从端口出去时VLAN标签被去除,并根据VLAN的端口类型决定是加封VLAN标签还是去除VLAN标签。
[0044]可选的,根据入接口 VLAN标签层数、镜像口 VLAN标签层数和初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式,该方法还包括:
[0045]获取初始报文进入入接口后实际携带VLAN标签层数;
[0046]根据实际携带VLAN标签层数和入接口 VLAN标签层数计算得到初始报文携带的初始VLAN标签层数,如果初始VLAN标签层数为0,则初始报文中没有携带初始VLAN标签,如果初始VLAN标签层数不为0,则初始报文中携带有初始VLAN标签。具体的,上传报文实际携带的VLAN标签层数减去入接口 VLAN标签层数得到的就是初始报文自身携带的初始VLAN标签层数,并将得到的初始VLAN标签层数存储到报文信息中,以便后续操作中直接调用。
[0047]可选的,根据入接口 VLAN标签层数、镜像口 VLAN标签层数和初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式之前,还包括统计镜像口 VLAN标签层数的步骤,具体包括:
[0048]统计镜像报文进入镜像口时经过交换芯片的层数,并将镜像报文进入镜像口时所经过的交换芯片的层数作为镜像口 VLAN标签层数。统计镜像口 VLAN标签层数的方法和在入接口时统计入接口 VLAN标签的方法相同。镜像口 VLAN标签层数等于镜像报文从镜像口发出时经过交换芯片的层数,并将得到的镜像口 VLAN标签层数存储到设备信息中,以便后续操作中直接调用。由于初始报文在入接口不经过处理,直接复制该报文并发送到镜像口,同样,报文到达镜像口之前也要加封上与镜像口类型相符的VLAN标签,其中镜像口 VLAN标签层数与报文进入镜像口时经过交换芯片的层数相同。
[0049]可选的,按照报文格式对初始报文进行封装得到镜像报文,具体包括:
[0050]初始报文在进入入接口时,根据入接口 VLAN标签层数对初始报文加封与入接口VLAN标签层数相同的VLAN标签,得到包含初始VLAN标签和入接口 VLAN标签的转发报文,并将转发报文发送给镜像口。同时,该转发报文直接从出接口发出,参见如图2所示的报文流程简图,初始报文从入接口 A进入,在原始报文基础上加封上与入接口 A相符的入接口VLAN标签,得到转发报文,该转发报文直接从出接口 B发出,发出时将加封的入接口 VLAN标签去除,使得在出接口 B发出的是与初始报文相同的报文,即由入接口 A进入,从出接口 B发出,只起到转发的作用。
[0051]该转发报文复制后向镜像口发送,到达镜像口之前需要将转发报文中的入接口VLAN标签去除,得到仅包含初始VLAN标签的转发报文。进入镜像口时,根据镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与镜像口 VLAN标签层数相同的VLAN标签,得到包含初始VLAN标签和镜像口 VLAN标签的镜像报文。同样,参见图2,初始报文从入接口 A进入,转发报文在镜像口加封上与镜像口 C相符的镜像口 VLAN标签,报文由入接口A进入,进入后直接被复制并从镜像口 C发出,发送给监测设备,实现报文的端口镜像功能,使得监测设备能够通过镜像口 C对报文进行监听管理。
[0052]基于上述图2所示的设备接口作为具体实例对上述方法进行说明:
[0053]初始报文自身携带I层VLAN标签,入接口 A过一层交换芯片(pstdev_>switchA =I),其中pstdev_>switchA表示在入接口 A时经过交换芯片的层数,用N表示。镜像口 C过两层交换芯片(pstdev_>switchC = 2),同理,其中pstdev_>switchC表示在镜像口 C时经过交换芯片的层数,用L表示,即L = 2。实现入端口镜像的过程中,首先探测到入端口 A上传报文携带2层VLAN标签,即报文中实际携带有2层VLAN标签,用M表示,则可计算出初始报文中携带的初始 VLAN 标签数为(pstpkb_>vlantag = I),即 pstpkb_>vlantag = M-N =
2-1 = 1最后在镜像出口 C处,镜像报文实际应携带pstdev->switchC+pstpkb_>vlantag=2+1 = 3 层 VLAN 标签。
[0054]综上所述,本发明提供的方法由入接口 VLAN标签层数、镜像口 VLAN标签层数以及初始报文是否携带VLAN标签确定最终镜像报文的报文格式,可以在同时具有多级交换芯片接口以及非交换芯片接口的网络设备上实现不同类型接口之间的端口镜像功能,确保兼容性和正确性。由于将入接口 VLAN标签层数、镜像口 VLAN标签层数存储在设备信息中,将报文中携带的初始VLAN标签存储在报文信息中,一旦获取VLAN标签层数信息,可以在后续过程中随时调用以便用于判断和计算,无需重复性统计,简化操作,避免繁琐。同时,由于对初始报文自身是否携带VLAN标签进行判断,可以保证镜像报文与初始报文的一致性。
[0055]为解决上述技术问题,本发明提供了一种实现入端口镜像的设备,组成示意图如图3所示,包括:
[0056]获取模块10,用于获取初始报文,并根据入接口 VLAN标签层数、镜像口 VLAN标签层数和初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式。
[0057]处理模块20,按照报文格式对初始报文进行封装得到镜像报文。
[0058]发送模块30,用于通过镜像口将镜像报文发送给监测设备。
[0059]在实际应用中,上述设备中还包括统计模块40,统计模块,用于统计初始报文进入入接口时所经过的交换芯片的层数,并将初始报文进入入接口时所经过的交换芯片的层数作为入接口 VLAN标签层数。还需要说明的是,经过非交换芯片时入接口 VLAN标签层数不操作或者是加O,经过交换芯片时入接口 VLAN标签层数才加I。
[0060]此外,统计模块40还用于:按照报文格式对初始报文进行封装得到镜像报文之前获取初始报文进入入接口后实际携带VLAN标签层数;根据实际携带VLAN标签层数和入接口 VLAN标签层数计算得到初始报文携带的初始VLAN标签层数,如果初始VLAN标签层数为0,则初始报文中没有携带初始VLAN标签,如果初始VLAN标签层数不为0,则初始报文中携带有初始VLAN标签。因此,可以根据计算得到的初始VLAN标签层数确定初始报文中是否携带VLAN标签的情况。
[0061]另外,统计模块40还用于:统计镜像报文进入镜像口时经过交换芯片的层数,并将镜像报文进入镜像口时所经过的交换芯片的层数作为镜像口 VLAN标签层数。统计镜像口 VLAN标签的方法与统计入接口 VLAN标签的方法也相同。
[0062]基于上述,统计模块40分别对入接口 VLAN标签、镜像口 VLAN标签以及初始报文是否携带VLAN标签的情况进行统计,并存储到相应的设备信息以及报文信息中,以便在后续过程中可以直接充统计模块中进行调用,方便使用。需要说明的是,本发明中统计模块40对入接口 VLAN标签、镜像口 VLAN标签以及初始报文是否携带VLAN标签的情况进行统计的先后顺序不作具体限定,即可以先统计入接口 VLAN标签,也可以先统计镜像口 VLAN标签,还可以先判断初始报文是否携带VLAN标签。
[0063]可选的,处理模块20包括第一封装子模块21、去封装子模块22和第二封装子模块23,其中第一封装子模块21用于初始报文进入入接口时,根据入接口 VLAN标签层数对初始报文加封与入接口 VLAN标签层数相同的VLAN标签,得到包含初始VLAN标签和入接口 VLAN标签的转发报文,并将转发报文发送给镜像口。
[0064]去封装子模块22用于转发报文到达镜像口之前,将转发报文中的入接口 VLAN标签去除。
[0065]第二封装子模块23用于进入镜像口时,根据镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与镜像口 VLAN标签层数相同的VLAN标签,得到包含初始VLAN标签和镜像口 VLAN标签的镜像报文。
[0066]综上所述,本发明中的实现入端口镜像的设备能够实现与上述实现入端口镜像的方法相同的技术效果,此处不再赘述。
[0067]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关【技术领域】的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【权利要求】
1.一种实现入端口镜像的方法,其特征在于,包括: 获取初始报文,并根据入接口 VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式; 按照所述报文格式对所述初始报文进行封装得到镜像报文; 通过镜像口将所述镜像报文发送给监测设备。
2.根据权利要求1所述的方法,其特征在于,所述根据入接口VLAN标签层数、镜像口VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式之前,所述方法还包括: 统计所述初始报文进入入接口时所经过的交换芯片的层数,并将所述初始报文进入入接口时所经过的交换芯片的层数作为入接口 VLAN标签层数。
3.根据权利要求1所述的方法,其特征在于,所述根据入接口VLAN标签层数、镜像口VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式之前,所述方法还包括: 获取所述初始报文进入入接口后实际携带VLAN标签层数; 根据所述实际携带VLAN标签层数和所述入接口 VLAN标签层数计算得到所述初始报文携带的初始VLAN标签层数,如果所述初始VLAN标签层数为0,则所述初始报文中没有携带初始VLAN标签;如果所述初始VLAN标签层数不为0,则所述初始报文中携带有初始VLAN标签。
4.根据权利要求1所述的方法,其特征在于,所述根据入接口VLAN标签层数、镜像口VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式之前,所述方法还包括: 统计所述镜像报文进入所述镜像口时经过交换芯片的层数,并将所述镜像报文进入镜像口时所经过的交换芯片的层数作为镜像口 VLAN标签层数。
5.根据权利要求1所述的方法,其特征在于,所述按照所述报文格式对所述初始报文进行封装得到镜像报文,所述方法还包括: 所述初始报文进入所述入接口时,根据所述入接口 VLAN标签层数对所述初始报文加封与所述入接口 VLAN标签层数相同的VLAN标签,得到包含所述初始VLAN标签和所述入接口 VLAN标签的转发报文,并将所述转发报文发送给所述镜像口 ; 所述转发报文到达所述镜像口之前,将所述转发报文中的入接口 VLAN标签去除; 进入所述镜像口时,根据所述镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与所述镜像口 VLAN标签层数相同的VLAN标签,得到包含初始VLAN标签和镜像口VLAN标签的镜像报文。
6.一种实现入端口镜像的设备,其特征在于,包括: 获取模块,用于获取初始报文,并根据入接口 VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始虚拟局域网VLAN标签确定报文格式; 处理模块,按照所述报文格式对所述初始报文进行封装得到镜像报文; 发送模块,用于通过镜像将口所述镜像报文发送给监测设备。
7.根据权利要求6所述的设备,其特征在于,还包括: 统计模块,用于统计所述初始报文进入入接口时所经过的交换芯片的层数,并将所述初始报文进入入接口时所经过的交换芯片的层数作为入接口 VLAN标签层数。
8.根据权利要求6所述的设备,其特征在于,所述统计模块还用于: 获取所述初始报文进入入接口后实际携带VLAN标签层数; 根据所述实际携带VLAN标签层数和所述入接口 VLAN标签层数计算得到所述初始报文携带的初始VLAN标签层数,如果所述初始VLAN标签层数为0,则所述初始报文中没有携带初始VLAN标签,如果所述初始VLAN标签层数不为0,则所述初始报文中携带有初始VLAN标签。
9.根据权利要求6所述的设备,其特征在于,所述统计模块还用于: 统计所述镜像报文进入所述镜像口时经过交换芯片的层数,并将所述镜像报文进入镜像口时所经过的交换芯片的层数作为镜像口 VLAN标签层数。
10.根据权利要求6所述的设备,其特征在于,所述处理模块包括第一封装子模块、去封装子模块和第二封装子模块,所述第一封装子模块用于所述初始报文进入所述入接口时,根据所述入接口 VLAN标签层数对所述初始报文加封与所述入接口 VLAN标签层数相同的VLAN标签,得到包含所述初始VLAN标签和所述入接口 VLAN标签的转发报文,并将所述转发报文发送给所述镜像口; 所述去封装子模块用于所述转发报文到达所述镜像口之前,将所述转发报文中的入接口 VLAN标签去除; 所述第二封装子模块用于进入所述镜像口时,根据所述镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与所述镜像口 VLAN标签层数相同的VLAN标签,得到包含初始VLAN标签和镜像口 VLAN标签的镜像报文。
【文档编号】H04L12/46GK104506343SQ201410708283
【公开日】2015年4月8日 申请日期:2014年11月27日 优先权日:2014年11月27日
【发明者】韩阳 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1