一种异常报文的镜像方法和装置\n技术领域\n[0001] 本发明涉及网络通信领域,尤其涉及一种异常报文的镜像方法和装置。\n背景技术\n[0002] 交换机端口镜像(Port Mirroring)是指把交换机一个或多个端口的数据镜像到一个或多个指定端口的方法(如图1所示)。其中,被复制的端口称为镜像源端口,接收复制数据的监控端口称为镜像目的端口。\n[0003] 通过镜像机制,监视到进出网络的所有数据包,供安装了监控软件的管理服务器抓取数据,如网吧需提供此功能把数据发往公安部门审查。而企业出于信息安全、保护公司机密的需要,也迫切需要网络中有一个端口能提供这种实时监控功能。在企业中用端口镜像功能,可以很好的对企业内部的网络数据进行监控管理,在网络出现故障的时候,可以做到很好地故障定位。\n[0004] 目前,交换机的镜像功能由交换芯片实现,即可硬件实现对源端口接收和发送的正常报文(正常报文指端口能正常转发处理的报文)报文镜像到指定的目的端口。然而,在交换机现网使用中,会产生一些异常报文(异常报文指不同通过端口正常储存转发的非法报文),如不在以太网定义范围内的报文(即字节小于64或者大于1500),CRC(Cyclical Redundancy Check,循环冗余码校验)计算错误的报文,冲突帧,二层头有错误的报文等,交换机针对这些异常报文处理方式一般为直接丢弃,不予存储转发。而实际上,上述异常报文的内容对网络故障的分析却有很大的指导和参考作用,比如其中的MAC(Media Access Control,介质访问控制)地址,协议类型字段等内容。\n[0005] 目前,针对上述不能通过芯片存储转发的异常报文,交换机尚无法通过镜像机制,镜像其至指定的镜像目的端口(如图2所示)。\n发明内容\n[0006] 本发明实施例提供了一种异常数据报文的镜像方法和装置,用以解决现有技术中无法通过镜像获取异常数据报文内容的问题。\n[0007] 本发明实施例提供的技术方案包括:\n[0008] 一种异常报文的镜像方法,包括以下步骤:\n[0009] (1)对交换机设置镜像机制,并指定镜像源端口和镜像源端口;\n[0010] (2)分析源端口的收发报文,筛选出其中的异常报文,复制缓存到存储空间;\n[0011] 其中,此步骤中所述异常报文是,相对于交换机能正常做储存转发的报文,交换机不能正常处理的,一般选择丢弃的非法报文。\n[0012] 此步骤中所述的复制缓存,执行前,需首先判断存储空间的剩余可用空间状态是否达到设定的阈值。\n[0013] (3)对缓存的异常报文进行分类处理,即依据不同错误类型,相应的,在其原始异常报文头部,封装不同的自定义二层MAC头,使其成为端口可正常存储转发的正常报文;\n[0014] 其中,此步骤所述自定义的二层MAC头,即根据不同的异常报文类型,定义不同的未知目的MAC,也以此标识区分不同的异常报文封装;\n[0015] (4)发送封装报文至镜像源端口;\n[0016] (5)源端口接收到封装报文,依设定的镜像机制,芯片执行镜像操作,所述封装报文镜像到指定的镜像目的端口;\n[0017] 进一步还包括:\n[0018] (6)解析镜像目的镜像端口接收到的镜像报文,筛选出封装报文,分析并进行解封装操作;\n[0019] 其中,此步骤中,筛选封装报文的依据即判断目的MAC,是否为步骤(3)中所定义的未知目的MAC;\n[0020] 显然,解封装后的报文即为原始异常报文内容。\n[0021] 上述步骤(3)和(6)所述的封装和解封装,可根据实际异常报文类型,进行多次重复执行。\n[0022] 本发明还提供一种异常报文的镜像装置,包括:\n[0023] 报文分析模块,用于区分正常和异常报文,并对不同类型的异常报文进行筛选分类;\n[0024] 报文复制模块,用于将异常报文复制缓存到报文存储模块,其中包括判断子单元和复制子单元,判断子单元用于判断存储模块的剩余可用空间状态;复制子单元用于,当剩余可用空间大于设定的阈值时,进行异常报文复制;\n[0025] 报文存储模块,用于缓存异常报文;\n[0026] 报文镜像模块,用于设置镜像机制,指定镜像源端口和镜像目的端口;\n[0027] 报文处理模块,包括封装子单元和解封装子单元,分别用于对异常报文的封装和解封装;进一步地,封装子单元针对实际异常报文错误类型,可多次封装;同理,解封装子单元,也可执行多次解封装。\n[0028] 报文监控模块,用于监控异常报文,分析和诊断故障。\n[0029] 本发明有益效果如下:\n[0030] 在本发明提供的技术方案中,通过对异常报文的封装,使其成为正常报文。再进一步的通过镜像机制,使其镜像到指定的目的端口。通过对目的端口镜像报文的解析,可以获取原异常报文的内容。\n[0031] 进一步地,对原异常报文字段(如目的MAC,源MAC,协议类型等报文字段)进行分析,可以有效帮助使用者分析、诊断设备故障和网络运行状况。\n附图说明\n[0032] 图1交换机端口的镜像原理;\n[0033] 图2交换机端口的异常报文;\n[0034] 图3镜像异常报文的示意图;\n[0035] 图4本发明实施例异常报文镜像的总体流程示意图;\n[0036] 图5封装异常报文的报文格式\n[0037] 图6本发明实施例一的流程示意图;\n[0038] 图7本发明实施例二的流程示意图;\n[0039] 图8异常报文镜像的装置结构图;\n具体实施方式\n[0040] 为了解决现有镜像无法复制异常报文的问题,本发明实施例提供了一种异常报文的镜像方法和装置,其原理示意图如图3所示。\n[0041] 下面对本发明实施例进行详细描述:\n[0042] 参见图4,为本发明实施例提供的异常报文镜像的总体流程示意图,通过该流程,镜像目的端口可以获取到镜像源端口的异常报文,该流程包括以下步骤:\n[0043] 步骤401、对交换机设置镜像机制,并指定镜像源端口和镜像目的端口;\n[0044] 此步骤中,可根据设备芯片的支持情况,设置多个端口为镜像源端口,或设置多个端口为镜像目的端口;\n[0045] 步骤402、分析镜像源端口的收发报文,筛选出其中的异常报文,复制缓存到存储空间;\n[0046] 其中,异常报文为交换机不能正常存储转发的非法报文,目前此类报文的一般处理为选择丢弃,但此步骤中筛选出后,不予丢弃。\n[0047] 进一步地,判断存储空间剩余可用空间,若可用空间达到设定的阈值,即不影响其余正常报文的存储转发,对异常报文进行复制缓存到存储空间;若剩余可用空间未到达设定的阈值,可选择丢弃,不进行镜像处理。当然,实际应用中,可根据实际情况,采用其他处理方式,在此不再赘述。\n[0048] 步骤403、对缓存的异常报文进行分类处理,并根据其不同的错误类型,相应的封装成不同的正常数据报文(报文格式如图5所示),具体为:在其原始的异常报文头部封装自定义的二层MAC头部,其中,MAC头部的未知目的MAC值区分不同错误类型的异常报文,如表1所示:\n[0049] 小于64字节的报文,封装成目的MAC值为MAC_SHORT的二层报文,使其长度大于64字节;\n[0050] CRC错误的报文,封装成目的MAC值为MAC_CRC的二层报文,重新计算CRC字段填入二层报文头部;\n[0051] MAC头有错误的报文,封装成目的MAC为MAC_ERR的二层报文;大于1519字节的报文且校验和正确的报文,进行分割后再封装目的MAC为MAC_JUMBO的二层报文;\n[0052] 显然,表中其余异常报文均可按照上述策略进行封装,使其成为交换机可存储转发的正常报文。\n[0053] 进一步地,其中所述自定义的目的MAC值均为未知MAC地址,即交换机MAC表中无记录的地址。\n[0054] 表1\n[0055]\n 异常报文 封装目的MAC地址\n1 长度小于64字节,校验和正确的报文 MAC_SHORT\n2 长度介于1519—9018之间,校验正确的报文 MAC_JUMBO\n3 帧超长且校验和正确的报文 MAC_GIANT\n4 长度小于64字节,校验和错误的报文 MAC_FRAGMENT\n5 帧超长且校验和错误的报文 MAC_JABBER\n6 MAC头有错误的报文 MAC_ERR\n7 校验和错误的报文 MAC_CRC\n… … …\n[0056] 步骤404、发送封装报文至镜像源端口;\n[0057] 步骤405、镜像源端口接收到封装报文,依照设定的镜像机制,芯片复制一份到指定的镜像目的端口;\n[0058] 步骤406、解析镜像目的镜像端口接收到的镜像报文,筛选出封装报文,分析并进行解封装处理,获取原异常报文内容;\n[0059] 其中,此步骤中,筛选是否为封装报文的依据,即为判断其目的MAC是否为步骤403中自定义的未知MAC值。\n[0060] 至此,镜像目的端口完成对镜像源端口的异常报文镜像,通过连接在镜像目的端口的报文解析终端,对原异常报文的内容进行分析,从而诊断设备的故障和网络运行情况。\n[0061] 下面结合具体实例进行解释说明本发明,图6详细说明镜像小于64字节的异常报文的方法,图7详细说明镜像CRC校验错误的异常报文的方法,图8详细说明一种异常报文的镜像装置结构示意图。\n[0062] 实施例一:镜像小于64字节的异常报文\n[0063] 参见图6,为本发明实施例一的流程示意图,该流程包括:\n[0064] 步骤601、设置镜像机制,并指定镜像源端口和镜像目的端口;\n[0065] 步骤602、分析镜像源端口发送或者接收到的报文,并筛选出其中的异常报文;\n[0066] 步骤603、从筛选的异常报文中,再次筛选出校验和正确但字节小于64字节的报文,即本实施例需要镜像的异常报文。\n[0067] 步骤604、判断存储空间的剩余可用空间状态,如果没有达到设定的阈值(此阈值是根据实际工作情况设定,目的是确保不影响交换机对其余正常数据报文的存储转发处理),则直接丢弃,不再进行镜像处理;若剩余可用空间大于设定的阈值,则执行步骤605。\n[0068] 步骤605、将需镜像的小于64字节的异常报文缓存至存储空间。\n[0069] 步骤606、处理缓存在存储空间的异常报文,对异常报文进行封装,即增加二层MAC头部,其中,目的MAC设置为MAC_SHORT(MAC_SHORT为自定义的未知报文),用以在步骤611中判断封装报文的原异常报文的错误类型。\n[0070] 步骤607、对封装报文长度进行检查,如果仍小于64字节,继续重复执行步骤606,直至满足字节大于64字节;如果大于64字节,即执行步骤608。\n[0071] 步骤608、将封装报文发送至镜像源端口,镜像源端口即按设置的镜像机制,由硬件芯片实现将封装报文镜像至指定的镜像目的端口。\n[0072] 步骤609、对镜像目的端口接收到的镜像报文进行分析。\n[0073] 步骤610、对目的MAC为MAC_SHORT的报文进行解封装,即解除二层MAC头部。\n[0074] 步骤611、判断解封装后的报文目的MAC是否为MAC_SHORT;若是,即说明本报文是属于多次封装,则重复执行步骤610。\n[0075] 以上步骤602~步骤611重复执行,即,完成对全部异常报文中的所有小于64字节的报文的镜像。\n[0076] 至此,报文解析终端监控到所有镜像源端口的小于64字节的异常报文。\n[0077] 步骤612、报文解析终端设备解析出原异常报文,获取相应的字段内容,进一步的,可以用于分析、诊断设备的故障和网络运行情况。\n[0078] 实施例二:镜像CRC错误的异常报文\n[0079] 参见图7,为本发明实施例二的流程示意图,该流程包括:\n[0080] 步骤701、设置镜像机制,并指定镜像源端口和镜像目的端口。\n[0081] 步骤702、分析镜像源端口发送或者接收到的报文,筛选出异常报文;\n[0082] 步骤703、对筛选出的异常报文进行分类处理,进一步筛选出CRC错误的异常报文,即本实施例需要镜像的异常报文。\n[0083] 步骤704、判断存储空间的剩余可用空间状态,如果没有达到设定的阈值(此阈值是根据实际工作情况设定,目的是确保不影响交换机对其余正常数据报文的存储转发处理),则直接丢弃,不再进行镜像处理;若剩余可用空间大于设定的阈值,则执行步骤705。\n[0084] 步骤705、将需镜像的CRC错误的异常报文缓存至存储空间。\n[0085] 步骤706、处理缓存在存储空间的异常报文,对异常报文进行封装,即增加二层MAC头部,其中,目的MAC设置为MAC_CRC(MAC_CRC为自定义的未知报文),用以步骤709判断封装原始报文的类型;MAC头部的校验字段为重新计算封装报文的正确校验值后填充的。\n[0086] 步骤707、将封装报文发送至镜像源端口,镜像源端口即按照设置的镜像机制,由硬件芯片实现将封装报文镜像至指定的镜像目的端口。\n[0087] 步骤708、对镜像目的端口接收到的镜像报文进行分析。\n[0088] 步骤709、进一步地,对目的MAC为MAC_CRC的报文进行解封装,解除其二层MAC头部。\n[0089] 以上步骤702~步骤709重复执行,即,完成对全部异常报文中的所有CRC错误的报文镜像。\n[0090] 至此,报文解析终端监控到镜像源端口所有的CRC错误的异常报文。\n[0091] 步骤710、报文解析终端设备解析出原异常报文,获取其相应的字段内容。\n[0092] 基于同一发明构思,本发明还提供了一种异常报文的镜像装置,由于该装置解决问题的原理与一种异常报文的镜像方法相似,因此该装置的实施可以参考方法的实施,重复之处不再赘述。\n[0093] 图8为异常报文的镜像装置结构图,该装置包括:报文分析模块801、报文复制模块\n802、报文存储模块805、报文镜像模块806,报文处理装模块807以及报文监控模块810,其中:\n[0094] 报文分析模块801,用于区分正常和异常报文,并对不同类型的异常报文进行筛选分类;\n[0095] 报文复制模块802,用于将异常报文复制缓存到数据设备的存储空间,其中包括判断子单元803和复制子单元804,判断子模块用于判断存储模块的剩余可用空间状态;复制子模块用于,当剩余可用空间大于设定的阈值时,进行异常报文复制\n[0096] 报文存储模块805,用于缓存异常报文;\n[0097] 报文镜像模块806,用于设置镜像机制,指定镜像源端口和镜像目的端口,其中可根据芯片支持情况,指定设备中多个端口为镜像源端口或者为镜像目的端口;\n[0098] 报文处理模块807,包括封装子单元808和解封装子单元809。\n[0099] 实施中,封装子单元808,用于在镜像源端口,对报文中的异常数据报文进行封装;\n[0100] 解封装子单元809,用于在镜像目的端口,对封装报文进行解封装;\n[0101] 实施中,装置还可以包括:\n[0102] 报文监控模块810,用于监控、解析异常报文的内容,进一步地,分析、诊断设备故障和网络运行情况。\n[0103] 以上装置中,报文处理模块807中,封装子单元808和解封装子单元808实施时,可根据原异常报文错误类型分别进行多层封装和解封装处理。\n[0104] 显然,为了描述方便,以上所述装置的各部分以功能分为各种模块分别描述。当然,在实施本发明时,可以把各种模块的功能在同一个或多个软件或硬件上实现。\n[0105] 尽管已描述了本发明的两种实施例,但本领域的技术人员一旦得知了基本创造性概念,则可对这些实施例进行变更和修改。因此,所述权利要求意欲解释为包括实施例以及落入本发明范围内的所有变更和修改。\n[0106] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不实际脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明的权利要求及其等同的技术范围之内,则本发明也意图包括这些改动和变型在内。
法律信息
- 2019-05-17
专利权的转移
登记生效日: 2019.04.28
专利权人由蚌埠市鼎荣科技信息咨询有限公司变更为中睿通信规划设计有限公司
地址由233010 安徽省蚌埠市禹会区胜利西路1750号汇能小微企业创业中心创业大厦316号变更为510000 广东省广州市天河区黄埔大道陶育路78号201房
- 2018-12-18
专利权的转移
登记生效日: 2018.11.29
专利权人由张小云变更为蚌埠市鼎荣科技信息咨询有限公司
地址由362600 福建省泉州市永春县横口乡云贵村47号变更为233010 安徽省蚌埠市禹会区胜利西路1750号汇能小微企业创业中心创业大厦316号
- 2017-01-04
- 2013-08-07
实质审查的生效
IPC(主分类): H04L 12/861
专利申请号: 201310118124.5
申请日: 2013.04.05
- 2013-07-10
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2011-11-23
|
2011-06-27
| | |
2
| |
2008-05-28
|
2007-12-27
| | |
3
| |
2005-02-16
|
2003-07-31
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |