一种实现出端口镜像的方法及系统的制作方法

文档序号:7821158阅读:321来源:国知局
一种实现出端口镜像的方法及系统的制作方法
【专利摘要】本发明公开了一种实现出端口镜像的方法及系统,涉及通信【技术领域】,所述方法包括:获取初始报文,并根据出接口虚拟局域网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标签去除,并将仅包含初始VLAN标签的转发报文发送至所述镜像口;
[0019]所述转发报文经过所述镜像口时,根据所述镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与所述镜像口 VLAN标签层数相同的VLAN标签,以获得包含初始VLAN标签和镜像口 VLAN标签的镜像报文。
[0020]本发明还公开了一种实现出端口镜像的系统,所述系统包括:
[0021]获取模块,用于获取初始报文,并根据出接口虚拟局域网VLAN标签层数、镜像口VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式;
[0022]处理模块,用于按照所述报文格式对所述初始报文进行封装得到镜像报文;
[0023]发送模块,用于通过镜像口将所述镜像报文发送给监测设备。
[0024]其中,所述系统还包括:
[0025]统计模块,用于统计所述初始报文进入出接口时所需经过交换芯片的层数,并将所述初始报文进入出接口时所经过的交换芯片的层数作为出接口 VLAN标签层数。
[0026]其中,所述系统还包括:
[0027]统计模块,用于获取所述初始报文进入出接口后实际携带VLAN标签层数,并根据所述实际携带VLAN标签层数和所述出接口 VLAN标签层数计算得到所述初始报文携带的初始VLAN标签层数,若所述初始VLAN标签层数为0,则所述初始报文中没有携带初始VLAN标签;若所述初始VLAN标签层数不为0,则所述初始报文中携带有初始VLAN标签。
[0028]其中,所述系统还包括:
[0029]统计模块,用于统计所述镜像报文通过所述镜像口时所需经过交换芯片的层数,并将所述镜像报文通过所述镜像口时所需经过交换芯片的层数作为所述镜像口 VLAN标签层数。
[0030]其中,所述处理模块具体包括:
[0031 ] 第一封装子模块,用于所述初始报文经过出接口时,根据所述出接口 VLAN标签层数对所述初始报文加封与所述出接口 VLAN标签层数相同的VLAN标签,得到包含所述初始VLAN标签和所述出接口 VLAN标签的转发报文;
[0032]去封装子模块,用于将所述转发报文中的出接口 VLAN标签去除,并将仅包含初始VLAN标签的转发报文发送至所述镜像口 ;
[0033]第二封装子模块,用于所述转发报文经过所述镜像口时,根据所述镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与所述镜像口 VLAN标签层数相同的VLAN标签,以获得包含初始VLAN标签和镜像口 VLAN标签的镜像报文。
[0034]本发明根据出接口 VLAN标签层数、镜像口 VLAN标签层数以及初始报文携带VLAN标签的情况综合确定最终的镜像报文格式,可以在同时具有多级交换芯片接口以及非交换芯片接口的网络设备上实现不同类型接口之间的端口镜像功能,确保兼容性和正确性。
[0035]另外,由于初始报文是否携带VLAN标签可以保证报文的完整性,还能避免初始VLAN标签与加封的VLAN标签相混淆。

【专利附图】

【附图说明】
[0036]图1是本发明一种实施方式的实现出端口镜像的方法的流程图;
[0037]图2是本发明实现出端口镜像功能的流程简图;
[0038]图3是本发明一种实施方式的实现出端口镜像的系统的结构框图。

【具体实施方式】
[0039]下面结合附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
[0040]图1是本发明一种实施方式的实现出端口镜像的方法的流程图;参照图1,所述方法包括以下步骤:
[0041]S1:获取初始报文,并根据出接口虚拟局域网VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式;
[0042]S2:按照所述报文格式对所述初始报文进行封装得到镜像报文;
[0043]S3:通过镜像口将所述镜像报文发送给监测设备。
[0044]基于上述方法,根据出接口 VLAN标签层数、镜像接口 VLAN标签层数以及初始报文携带初始VLAN标签的情况对初始报文进行封装,在同时具有多级交换芯片接口以及非交换芯片接口的网络设备上实现不同类型接口之间的端口镜像功能。
[0045]为便于确定出接口 VLAN标签层数,优选地,根据出接口虚拟局域网VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式之前,所述方法还包括:
[0046]统计所述初始报文进入出接口时所需经过交换芯片的层数,并将所述初始报文进入出接口时所经过的交换芯片的层数作为出接口 VLAN标签层数。
[0047]出接口 VLAN标签层数等于初始报文进入出接口时所需经过交换芯片的层数,初始报文在进入出接口时经过非交换芯片时出接口 VLAN标签层数加0,并将出接口 VLAN标签层数存储到设备信息中,以便后续操作中直接调用。由于在现有网络设备的每个接口在Linux内核中注册有相应的设备信息,首先将出接口 VLAN标签层数存储到该设备信息中,由于非交换芯片作为管理口使用,而交换芯片作为转发口使用,所以如果初始报文经过非交换芯片则出接口 VLAN标签层数加0,经过每一层交换芯片时入接口 VLAN标签层数加1,以此类推。
[0048]其中VLAN标签是用来指示VLAN的标记,封装在能够穿越局域网的帧里。VLAN标签在数据包进入VLAN的某一个交换机端口(例如入接口)时被加上,在从VLAN的另一个端口出去时被去除,并根据VLAN的端口类型决定是给加封VLAN标签还是去除VLAN标签。
[0049]为便于确定所述初始报文中是否携带有初始VLAN标签,优选地,根据出接口 VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式之前,所述方法还包括:
[0050]获取所述初始报文进入出接口后实际携带VLAN标签层数;
[0051]根据所述实际携带VLAN标签层数和所述出接口 VLAN标签层数计算得到所述初始报文携带的初始VLAN标签层数,若所述初始VLAN标签层数为0,则所述初始报文中没有携带初始VLAN标签;若所述初始VLAN标签层数不为0,则所述初始报文中携带有初始VLAN标签。
[0052]进一步地,所述实际携带VLAN标签层数减去所述出接口 VLAN标签层数得到的就是初始报文自身携带的初始VLAN标签层数,并将得到的初始VLAN标签层数存储到报文信息中,以便后续操作中直接调用。
[0053]为便于确定镜像口 VLAN标签层数,优选地,根据出接口 VLAN标签层数、镜像口VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式之前,所述方法还包括:
[0054]统计所述镜像报文通过所述镜像口时所需经过交换芯片的层数,并将所述镜像报文通过所述镜像口时所需经过交换芯片的层数作为所述镜像口 VLAN标签层数。
[0055]为便于对初始报文进行封装,优选地,按照所述报文格式对所述初始报文进行封装得到镜像报文具体包括:
[0056]所述初始报文经过出接口时,根据所述出接口 VLAN标签层数对所述初始报文加封与所述出接口 VLAN标签层数相同的VLAN标签,得到包含所述初始VLAN标签和所述出接口 VLAN标签的转发报文;
[0057]将所述转发报文中的出接口 VLAN标签去除,并将仅包含初始VLAN标签的转发报文发送至所述镜像口;
[0058]所述转发报文经过所述镜像口时,根据所述镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与所述镜像口 VLAN标签层数相同的VLAN标签,以获得包含初始VLAN标签和镜像口 VLAN标签的镜像报文。
[0059]参见图2,初始报文经过出接口 B时,在所述初始报文上加封出接口 VLAN标签,以得到包含所述初始VLAN标签和所述出接口 VLAN标签的转发报文,再将所述转发报文中的出接口 VLAN标签去除,将仅包含初始VLAN标签的转发报文发送至镜像口 C,所述转发报文经过所述镜像口时,在所述仅包含初始VLAN标签的转发报文上加封镜像口 VLAN标签,以获得包含初始VLAN标签和镜像口 VLAN标签的镜像报文,并由镜像口 C发送给监测设备,实现报文的端口镜像功能,使得监测设备能够通过镜像口 C对报文进行监听管理。
[0060]下面基于上述图2所示的设备接口作为具体实例对上述方法进行说明:
[0061]初始报文自身携带I层vlan,出接口 B需要经过一层交换芯片发出(pstdev->switchB = I),其中pstdev_>switchB表示在经过出接口 B时所需经过交换芯片的层数,下面用N表示,即N = I ;镜像口 C过两层交换芯片(pstdev_>switchC = 2),同理pstdev_>switchC表示在经过镜像口 C时所需经过交换芯片的层数,下面用L表示,即L =2 ;出端口镜像过程中,首先探测到经过出接口后报文携带2层vlan标签(一层初始标签,一层出接口 B加封标签),即报文中实际携带有2层VLAN标签,用M表示看,即M = 2,可计算出初始报文携带标签数(pstpkb->vlantag) SM-N= 2-1 = 1。最后在镜像出口 C处,报文实际应携带 pstdev->switchC+pstpkb_>vlantag = L+M-N = 2+2-1 = 3 层 vlan 标签。
[0062]综上所述,本发明提供的方法由出接口 VLAN标签层数、镜像口 VLAN标签层数以及初始报文是否携带VLAN标签确定最终镜像报文的报文格式,可以在同时具有多级交换芯片接口以及非交换芯片接口的网络设备上实现不同类型接口之间的端口镜像功能,确保兼容性和正确性。由于将入接口 VLAN标签层数、镜像口 VLAN标签层数存储在设备信息中,将报文中携带的初始VLAN标签存储在报文信息中,一旦获取VLAN标签层数信息,可以在后续过程中随时调用以便用于判断和计算,无需重复性统计,简化操作,避免繁琐。同时,由于对初始报文自身是否携带VLAN标签进行判断,可以保证镜像报文与初始报文的一致性。
[0063]本发明还公开了一种实现出端口镜像的系统,参照图3,所述系统包括:
[0064]获取模块,用于获取初始报文,并根据出接口虚拟局域网VLAN标签层数、镜像口VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式;
[0065]处理模块,用于按照所述报文格式对所述初始报文进行封装得到镜像报文;
[0066]发送模块,用于通过镜像口将所述镜像报文发送给监测设备。
[0067]优选地,所述系统还包括:
[0068]统计模块,用于统计所述初始报文进入出接口时所需经过交换芯片的层数,并将所述初始报文进入出接口时所经过的交换芯片的层数作为出接口 VLAN标签层数。
[0069]优选地,所述系统还包括:
[0070]统计模块,用于获取所述初始报文进入出接口后实际携带VLAN标签层数,并根据所述实际携带VLAN标签层数和所述出接口 VLAN标签层数计算得到所述初始报文携带的初始VLAN标签层数,若所述初始VLAN标签层数为0,则所述初始报文中没有携带初始VLAN标签;若所述初始VLAN标签层数不为0,则所述初始报文中携带有初始VLAN标签。
[0071]优选地,所述系统还包括:
[0072]统计模块,用于统计所述镜像报文通过所述镜像口时所需经过交换芯片的层数,并将所述镜像报文通过所述镜像口时所需经过交换芯片的层数作为所述镜像口 VLAN标签层数。
[0073]优选地,所述处理模块具体包括:
[0074]第一封装子模块,用于所述初始报文经过出接口时,根据所述出接口 VLAN标签层数对所述初始报文加封与所述出接口 VLAN标签层数相同的VLAN标签,得到包含所述初始VLAN标签和所述出接口 VLAN标签的转发报文;
[0075]去封装子模块,用于将所述转发报文中的出接口 VLAN标签去除,并将仅包含初始VLAN标签的转发报文发送至所述镜像口 ;
[0076]第二封装子模块,用于所述转发报文经过所述镜像口时,根据所述镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与所述镜像口 VLAN标签层数相同的VLAN标签,以获得包含初始VLAN标签和镜像口 VLAN标签的镜像报文。
[0077]所述系统与上述方法对应,还包括其他为实现上述方法的模块、子模块、单元、子单元等,为避免冗余,故而此处未具体说明。
[0078]以上实施方式仅用于说明本发明,而并非对本发明的限制,有关【技术领域】的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本发明的范畴,本发明的专利保护范围应由权利要求限定。
【权利要求】
1.一种实现出端口镜像的方法,其特征在于,所述方法包括: 获取初始报文,并根据出接口虚拟局域网VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式; 按照所述报文格式对所述初始报文进行封装得到镜像报文; 通过镜像口将所述镜像报文发送给监测设备。
2.如权利要求1所述的方法,其特征在于,根据出接口虚拟局域网VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式之前,所述方法还包括: 统计所述初始报文进入出接口时所需经过交换芯片的层数,并将所述初始报文进入出接口时所经过的交换芯片的层数作为出接口 VLAN标签层数。
3.如权利要求1所述的方法,其特征在于,根据出接口VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式之前,所述方法还包括: 获取所述初始报文进入出接口后实际携带VLAN标签层数; 根据所述实际携带VLAN标签层数和所述出接口 VLAN标签层数计算得到所述初始报文携带的初始VLAN标签层数,若所述初始VLAN标签层数为O,则所述初始报文中没有携带初始VLAN标签;若所述初始VLAN标签层数不为O,则所述初始报文中携带有初始VLAN标签。
4.如权利要求1所述的方法,其特征在于,根据出接口VLAN标签层数、镜像口 VLAN标签层数和所述初始报文是否携带有初始VLAN标签确定报文格式之前,所述方法还包括: 统计所述镜像报文通过所述镜像口时所需经过交换芯片的层数,并将所述镜像报文通过所述镜像口时所需经过交换芯片的层数作为所述镜像口 VLAN标签层数。
5.如权利要求1所述的方法,其特征在于,按照所述报文格式对所述初始报文进行封装得到镜像报文具体包括: 所述初始报文经过出接口时,根据所述出接口 VLAN标签层数对所述初始报文加封与所述出接口 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标签层数为O,则所述初始报文中没有携带初始VLAN标签;若所述初始VLAN标签层数不为O,则所述初始报文中携带有初始VLAN标签。
9.如权利要求6所述的系统,其特征在于,所述系统还包括: 统计模块,用于统计所述镜像报文通过所述镜像口时所需经过交换芯片的层数,并将所述镜像报文通过所述镜像口时所需经过交换芯片的层数作为所述镜像口 VLAN标签层数。
10.如权利要求6所述的系统,其特征在于,所述处理模块具体包括: 第一封装子模块,用于所述初始报文经过出接口时,根据所述出接口 VLAN标签层数对所述初始报文加封与所述出接口 VLAN标签层数相同的VLAN标签,得到包含所述初始VLAN标签和所述出接口 VLAN标签的转发报文; 去封装子模块,用于将所述转发报文中的出接口 VLAN标签去除,并将仅包含初始VLAN标签的转发报文发送至所述镜像口; 第二封装子模块,用于所述转发报文经过所述镜像口时,根据所述镜像口 VLAN标签层数对仅包含初始VLAN标签的转发报文加封与所述镜像口 VLAN标签层数相同的VLAN标签,以获得包含初始VLAN标签和镜像口 VLAN标签的镜像报文。
【文档编号】H04L12/947GK104468421SQ201410706580
【公开日】2015年3月25日 申请日期:2014年11月27日 优先权日:2014年11月27日
【发明者】韩阳 申请人:汉柏科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1