发明内容
有鉴于此,本发明目的在于提供一种报文镜像方法,以实现远程的报文镜像,同时解决现有报文镜像技术对硬件芯片的依赖问题。
此外,本发明另一目的在于提供一种支持远程报文镜像的网络设备,其能够应用上述方法进行广域网内的远程报文镜像。
为了达到上述目的,本发明提供了一种报文镜像方法,其包括下列步骤:
步骤S1,网络设备对满足预定镜像条件的业务报文进行镜像复制得到相应的复制报文之后,对所述复制报文加载相应的镜像信息;
步骤S2,所述网络设备利用网络协议封装所述加载有镜像信息的复制报文,得到所述业务报文的镜像报文;
步骤S3,根据所述镜像报文中的目的地址,所述网络设备将其发送至相应的远程主机。
对于上述报文镜像方法,优选地,所述镜像信息包括有:被镜像口的编号,用于记录所述镜像报文对应的被镜像口的逻辑编号;报文类型,用于指示所述镜像报文为物理层镜像报文,或者为IP层镜像报文;报文方向,用于指示所述镜像报文对应的业务报文从所述被镜像口输出,或者由所述被镜像口输入。
对于上述报文镜像方法,优选地,所述网络协议包括有互联网协议(Internet Protocol,IP);并且,通过所述互联网协议封装生成的IP报文中IP头内的目的IP地址字段,用来表示所述镜像报文的指定镜像目的IP地址。
对于上述报文镜像方法,进一步优选地,所述网络协议还包括有用户数据报协议(User Datagram Protocol,UDP);并且,通过所述用户数据报协议封装生成的UDP报文中UDP头内的源端口和/或目的端口字段,用来标识所述UDP报文是否为镜像报文。
对于上述报文镜像方法,优选地,在所述步骤S3之后还包括有步骤S4,所述远程主机接收到所述镜像报文,对其进行解析识别,以还原所述业务报文的原始信息供分析人员进行分析处理。
为了达到上述另一目的,本发明还提供了一种支持远程报文镜像的网络设备,其包括用于根据满足预定镜像条件的业务报文生成镜像报文的镜像单元,且所述镜像单元具体包括有:
镜像复制模块,用于接收满足预定镜像条件的业务报文,并对所述业务报文进行镜像复制,得到相应的复制报文;
封装模块,用于接收镜像复制模块输出的所述复制报文,并根据相应的镜像信息和/或网络协议对其进行封装,得到相应的镜像报文;
转发模块,用于接收所述封装模块输出的所述镜像报文,并通过网络将其发送至指定的镜像目的地址。
对于上述支持远程报文镜像的网络设备,其中,所述镜像信息包括有:被镜像口的编号,用于记录所述镜像报文对应的被镜像口的逻辑编号;报文类型,用于指示所述镜像报文为物理层镜像报文,或者为IP层镜像报文;报文方向,用于指示所述镜像报文对应的业务报文从所述被镜像口输出,或者由所述被镜像口输入。
对于上述支持远程报文镜像的网络设备,其中,所述网络协议包括有互联网协议;并且,通过所述互联网协议封装生成的IP报文中IP头内的目的IP地址字段,用来表示所述镜像报文的指定镜像目的IP地址。
对于上述支持远程报文镜像的网络设备,其中,所述网络协议还包括有用户数据报协议;并且,通过所述用户数据报协议封装生成的UDP报文中UDP头内的源端口和/或目的端口字段,用来标识所述UDP报文是否为镜像报文。
对于上述支持远程报文镜像的网络设备,优选地,所述封装模块进一步包括有:
镜像报文头封装部分,与所述镜像复制模块连接,用于往所述复制报文加载相应的镜像信息;
网络协议头封装部分,与所述镜像报文头封装部分和所述转发模块连接,用于利用网络协议封装所述加载有镜像信息的复制报文,以得到相应的所述镜像报文。
通过上述介绍可知,在镜像复制满足预定镜像条件的业务报文之后,对其进行相应的镜像信息加载和网络协议封装,使得最终得到的镜像报文能够根据其中目的IP地址而被发送到相应的远程主机。
换句话说,通过对镜像报文进行镜像信息加载和网络协议封装等处理,本发明实现了一种可扩展的报文镜像机制,其适用于各种类型接口的远程报文镜像,有效解决了现有报文镜像技术使用时在硬件条件上受限的问题。
具体实施方式
请参阅图4,本发明的核心思想是:将网络设备420中满足预定镜像条件的业务报文600进行一定的镜像封装处理,得到与其对应的镜像报文700;随后,根据所述镜像报文700中的目的IP地址,通过网络410将其发送到远程的分析主机430。
需要说明的是,虽然图4中将所述网络设备420例示为路由器,但本领域技术人员应能理解,与所述路由器具有类似报文中继转发功能的其他网络设备(比如,以太网交换机)均可用来实施本发明。
如图4所示,所述网络设备420作为客户端,负责生成并发送所述镜像报文700;所述分析主机430作为服务器端,负责解析识别所述镜像报文700,用来还原所述镜像报文700对应的业务报文600的原始信息以供分析人员进行相应的分析处理。
下面将首先参照图5详细介绍本发明所提供技术方案分别在在所述客户端(网络设备420)和所述服务器端(分析主机430)执行的操作,也即详细介绍本发明所提供报文镜像方法的具体实施。
如图5所示,以虚线为界,虚线往上部分为在所述客户端执行的操作,主要包括有下列步骤:
步骤S_B,图4中所示网络设备420接收业务报文600,并对其中满足预定镜像条件的所述业务报文600进行镜像复制,得到所述业务报文600的复制报文。
步骤S1,随后,所述网络设备420往所述复制报文中加载相应的镜像信息;
步骤S2,接着,所述网络设备420根据具体的网络应用环境,利用适当的网络协议对所述加载有镜像信息的复制报文进行封装;
步骤S3,最后,所述网络设备420根据所述镜像报文中的目的IP地址,将所述镜像报文发送至远程的分析主机430。
其中,上述步骤S_B作为应用本发明进行镜像报文700封装处理的准备步骤,主要目的在于生成所述业务报文的镜像复制。并且,所述镜像复制可以是原样不变复制所述业务报文的简单复制,也可以是有选择性复制所述业务报文中有用信息的特征提取性复制。
也就是说,无需对所述镜像复制的具体操作细节进行限定,本发明的技术焦点在于如何封装处理经由所述镜像复制产生的复制报文,使得最终得到的镜像报文700能够被远程传输。因此,下面将重点介绍用于封装处理所述复制报文的上述步骤S1和上述步骤S2。
首先,对于上述步骤S1,所述镜像信息一般而言至少包括有:被镜像口的编号,用于记录所述镜像报文700对应的被镜像口的逻辑编号;报文类型,用于指示所述镜像报文700为物理层镜像报文,或者为IP层镜像报文;报文方向,用于指示所述镜像报文700对应的业务报文600从所述被镜像口输出,或者由所述被镜像口输入。
同时,上述各种镜像信息还可以镜像报文头的形式来加载,且图6给出了本发明一个实施例中所述镜像报文头720的具体数据结构。如图6所示,所述镜像报文头720中封装有:
被镜像口的编号(Int-Number)721,占1字节,用于记录所述镜像报文700对应的被镜像口的逻辑编号。此处本领域技术人员应能理解,所述逻辑编号由用户根据实际应用环境设定,且本发明技术方案对所述设定无任何特殊要求。
报文类型(Mir-Type)722,占1字节,用于指示所述镜像报文700为物理层镜像报文,或者为IP层镜像报文。具体解释之,比如所述报文类型722等于1指示所述镜像报文700为物理层镜像报文,也即产生所述镜像报文700的镜像复制操作发生在物理层;而所述报文类型722等于2表示所述镜像报文为IP层镜像报文,也即产生所述镜像报文700的镜像复制操作发生在IP层。
报文方向(Mir-Direction)723,占1字节,用于指示所述镜像报文700对应的业务报文600对所述被镜像口的输入/输出方向。具体解释之,比如所述报文方向723等于1表示所述业务报文600从所述被镜像口输出,而等于2表示其从所述被镜像口输入。
私有协议号(Protocol)724,占1字节,用于指示所述镜像报文700中所述镜像报文头720后面的报文(也即所述复制报文)所属的协议类型,且所述协议类型724具体可能为atm(aa15格式封装)报文、ppp报文、hdlc报文、fr报文、x.25报文、以太网报文、ip报文、纯数据报文、lapb报文、sdlc报文等。
报文总长度(Total-Len)725,占2字节,用于表示所述复制报文的长度。
报文序列号(Sequence)726,占2字节,用于表示所述复制报文的序列号。
分片偏移(Offset)727,占1字节,以分片个数为单位,用于表示所述复制报文(也即所述镜像报文700)的分片偏移量。
需要说明的是,图6所示仅用作解释所述镜像报文头720的数据结构定义之用,并无任何用来限定本发明保护范围的意图。本领域技术人员当可在理解上述解释的基础之上,根据实际业务处理需要灵活定义所述镜像报文头720。
继续,对于上述步骤S2,其中所述网络协议通常包括有互联网协议(Internet Protocol,IP)。并且,通过所述互联网协议封装生成的IP报文中IP头内的目的IP地址字段,可被用来表示所述镜像报文700的指定镜像目的IP地址。
在本发明的一个实施例中,对于利用互联网协议封装所述加载有镜像信息的复制报文后生成的所述IP报文,其中的IP头封装有:
源IP地址,用于指示所述IP报文的源地址,在本发明实施例中被赋值为全0,以表示所述镜像报文700发出的接口可以是任何接口;
目的IP地址,用于指示所述IP报文的目的地址,在本发明实施例中被赋值为所述镜像报文700的指定镜像目的IP地址,以保证所述镜像报文700能够被正确送达相应的分析主机430;
协议号,用于指示后面的报文所属的报文类型,比如,在本发明实施例中被赋值为17,以表示所述IP报文中所述IP头后面的报文为UDP(User Datagram Protocol,用户数据报协议)报文。
生成时间(Time to Live,TTL),用于定义所述IP报文在网络传输中的存活时间,每经过一个路由器后其数值将减1;在本发明实施例中其可被赋值为255,使得所述IP报文(也即所述镜像报文700)具有最大的存活时间;
服务类型(Tape of Service,TOS),用于定义网络传输所述IP报文的优先级、延迟、吞吐量和可靠性等特;在本发明实施例中其可被赋值为0,使得所述IP报文(也即所述镜像报文700)具有普通优先权。
同时,所述网络协议通常还包括有用户数据报协议(User DatagramProtocol,UDP)。并且,通过所述用户数据报协议封装生成的UDP报文中UDP头内的源端口(Source Port)和/或目的端口(Destination Port)字段,可被用来标识所述UDP报文是否为镜像报文。比如,
比如,在本发明的一个实施例中,将所述UDP报文中UDP头内的所述源端口和所述目的端口字段同时赋值为6000,以标识所述UDP报文为一个镜像报文700。
这样,执行完上述步骤S1和步骤S2之后,最终得到的所述镜像报文700的封装格式可参阅图7。如图7所示,所述镜像报文700除了包括有镜像复制所述业务报文600的复制报文710之外,还包括有承载有相应镜像信息的镜像报文头720、可标识出其为镜像报文的UDP头730、以及方便网络传输的IP头740。
然后,所述网络设备420接着执行上述步骤S3,也就是根据所述镜像报文700中IP头内的目的IP地址字段,通过网络410将所述镜像报文发送至相应的远程分析主机430。
至此,本发明技术方案在客户端(网络设备420)的具体实施已介绍完毕。下面请再次参阅图5,如图5所示,虚线往下部分为在本发明在服务器端(分析主机430)执行的操作,主要包括有下列步骤:
步骤S4,所述分析主机430接收到一个报文之后,根据其中UDP头内字段赋值(比如,源端口和目的端口字段均为60000)判定其为镜像报文700后,对其进行剥离IP头、UDP头、镜像报文头等解析处理,还原出与该镜像报文700对应的业务报文600的原始信息;
步骤S_E,基于所述原始信息,分析人员进行相应的分析处理,比如网络流量统计、设备故障排除等。
至此,本发明所提供报文镜像方法详细解释完毕如上。且综上所述可知,本发明通过对镜像报文进行镜像信息加载和网络协议封装等处理,实现了适用于各种类型接口的远程报文镜像,有效摆脱了现有报文镜像技术在硬件条件上的使用受限。
同时,本发明还提供了一种支持远程报文镜像的网络设备,其能够应用上述报文镜像方法进行广域网内的远程报文镜像。所述网络设备包括用于根据满足预定镜像条件的业务报文生成镜像报文的镜像单元,且图8给出了所述镜像单元实施例之一的结构示意图。
结合图5所示本发明所提供报文镜像方法流程图,详细介绍图8所示所述镜像单元500的结构组成如下。如图8所示,所述镜像单元500包括有:
镜像复制模块510,主要用于执行图5所示步骤S_B,也即在接收满足预定镜像条件的业务报文之后,对所述业务报文进行镜像复制,得到相应的复制报文;
封装模块520,与所述镜像复制模块510相连,主要用于执行图5所示步骤S1和步骤S2,也即在接收镜像复制模块510输出的所述复制报文之后,对其进行相应的镜像信息加载和网络协议封装等处理,得到相应的镜像报文;
转发模块530,与所述封装模块520相连,主要用于执行图5所示步骤S3,也即在接收所述封装模块520输出的所述镜像报文之后,通过网络将其发送至指定的镜像目的地址。
其中,如图8所示,所述封装模块520又进一步包括有
镜像报文头封装部分521,与所述镜像复制模块510相连,主要用于执行图5所示步骤S1,也即往所述复制报文中加载相应的镜像信息,且具体加载所述镜像信息时可通过封装镜像报文头的形式进行;
网络协议头封装部分522,与所述镜像报文头封装部分521和所述转发模块530相连,主要执行图5所示步骤S2,也即利用适当的网络协议封装所述加载有镜像信息的复制报文,得到相应的所述镜像报文。
对于图8所示支持远程报文镜像的网络设备,其中,所述封装模块520(包括所述镜像报文头封装部分521和/或所述网络协议头封装部分522)具体执行图5所示步骤S1和/或S2时涉及的所述镜像信息、镜像报文头、网络协议等,均与前述相关介绍类似,故在此不再赘述。
需要声明的是,上述发明内容及具体实施方式意在证明本发明所提供技术方案的实际应用,不应解释为对本发明保护范围的限定。本领域技术人员在本发明的精神和原理内,当可作各种修改、等同替换、或改进。本发明的保护范围以所附权利要求书为准。