著录项信息
专利名称 | 一种海量日志转发方法 |
申请号 | CN201410567607.8 | 申请日期 | 2014-10-22 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-01-14 | 公开/公告号 | CN104283715A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L12/24 | IPC分类号 | H;0;4;L;1;2;/;2;4;;;H;0;4;L;1;2;/;2;6查看分类表>
|
申请人 | 西安未来国际信息股份有限公司;西安邮电大学 | 申请人地址 | 陕西省西安市高新区高新一路25号创新大厦北四层
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 西安未来国际信息股份有限公司,西安邮电大学 | 当前权利人 | 西安未来国际信息股份有限公司,西安邮电大学 |
发明人 | 朱志祥;王茜;史晨昱;赵伟;刘盛辉;王佩 |
代理机构 | 西安弘理专利事务所 | 代理人 | 罗笛 |
摘要
本发明公开的一种海量日志转发方法,将流经网卡的数据包流量进行拦截,对关心的数据包进行复制后,修改数据包的目的IP,最后修改好的数据包重新放入网络协议栈中,根据目的IP进行相应的路由设置,将数据包发送至转发目的地址,从而实现日志转发功能;本发明的有益效果是,确保多个平台都能够通过日志的来源IP对设备进行定位,提升了网络数据包拷贝和修改效率。
1.一种海量日志转发方法,其特征在于,具体按照以下步骤实施:
步骤1,将日志信息网络数据包进行拦截处理,获取网络数据的IP包,并将获取的网络数据的IP包放入存储网络数据包的双向链表中;步骤1中拦截技术具体指,网络接口中定义回调函数,当网络数据包进入网络协议栈后就会调用回调函数,该回调函数位于网络的数据链路层,在网络的数据链路层,根据网络接口定义对网络数据包进行拦截处理,获取网络数据的IP包,并将获取的网络IP包放入存储网络数据包的双向链表中;
步骤2,对步骤1获取的网络数据IP包基于网络接口和网络协议进行网络数据包过滤技术处理,得到保留IP数据包;步骤2中过滤技术具体指,在存储网络数据包的双向链表中,通过链路层头指针找到链路层头信息,根据链路层头信息可找到网络接口卡所有信息,对网络接口进行网络数据包的过滤;
步骤3,将步骤2所得到的保留IP数据包做数据包重构,将网络协议栈中的保留IP数据包进行拷贝和修改,拷贝重新生成的网络数据包,依然使用双向链表对其进行控制和修改;
步骤4,对步骤3中的重新生成的网络数据包多次路由转发技术处理;
步骤5,对步骤4通过路由转发技术实现日志数据包在不改变源地址的情况下,将日志转发至多个目的地址。
2.根据权利要求1所述的一种海量日志转发方法,其特征在于,所述网络数据包过滤是指,在存储网络数据包的双向链表中,根据数据偏移量信息获取传输层头信息、传输层头信息的内容找TCP/UDP协议信息以及UDP协议的目的端口三个条件对网络数据包进行过滤。
3.根据权利要求1所述的一种海量日志转发方法,其特征在于,所述步骤3中拷贝和修改具体指,在网络接口中定义回调函数,对网络数据包完成过滤后进行调用回调函数,在该回调函数进行网络数据包的内存空间的分配,将过滤后的网络数据包拷贝至新分配的内存空间中,拷贝重新生成的网络数据包,依然使用双向链表对其进行控制和修改,在网络数据包的双向链表中获取网络层头信息,根据网络层头信息的内容对网络数据包的目的IP地址进行修改,是将网络数据包的目的IP修改为转发目的地址的IP。
4.根据权利要求1所述的一种海量日志转发方法,其特征在于,所述步骤4中网络数据包多次路由转发技术具体指,在日志转发系统中采用数组的形式存储指定转发目的地址IP和网络接口参数,以循环的形式对数组进行遍历,遍历过程中将符合转发条件的网络数据包进行拷贝和相应的目的地址修改,将改造后的网络数据包放入数据包转发模块中,数据包转发模块根据网络数据包的目的地址IP进行路由选择,根据相应的路由信息将网络数据包发送至修改后的目的地。
一种海量日志转发方法\n技术领域\n[0001] 本发明属于软件应用技术领域,具体涉及一种海量日志转发方法。\n背景技术\n[0002] 随着云计算技术的发展,云计算数据中心的运维和管理显得十分重要,云计算数据中心运维和管理过程中大部分需要各种设备和应用的日志信息,多个管理平台同时收集设备日志,但是当设备不支持往多个目的地址发送,这样就无法满足过个平台同时收集日志的需求,如果针对syslog日志,采用syslog日志自身转发功能,可以实现syslog日志的转发,但是转发后的日志源地址发生了改变,如果接收syslog日志的平台不支持主机链查询的话,那么该平台接收syslog日志的来源IP将表示为转发主机的IP,这样该平台就无法通过来源IP识别发送syslog日志的具体设备。\n发明内容\n[0003] 本发明的目的是提供一种海量日志转发方法,解决了现有技术中存在的转发平台无法通过来源IP识别发送日志的具体设备的问题。\n[0004] 本发明所采用的技术方案是,一种海量日志转发方法,具体按照以下步骤实施:\n[0005] 步骤1,将日志信息网络数据包进行拦截技术处理,获取网络数据的IP包,并将获取的网络IP包放入存储网络数据包的双向链表中;\n[0006] 步骤2,对步骤2获取的网络数据IP包基于网络接口和网络协议进行网络数据包过滤技术处理,得到保留IP数据包;\n[0007] 步骤3,将步骤2所得到的保留IP数据包做数据包重构,将网络协议栈中的保留IP数据包进行拷贝和修改,拷贝重新生成的网络数据包,依然使用双向链表对其进行控制和修改;\n[0008] 步骤4,对步骤3中的网络数据包多次路由转发技术处理。\n[0009] 本发明的特点还在于,\n[0010] 步骤1中的拦截技术具体指,网络接口中定义回调函数,当网络数据包进入网络协议栈后就会调用回调函数,该回调函数位于网络的数据链路层,在网络的数据链路层,根据网络接口定义对网络数据包进行拦截处理,获取网络数据的IP包,并将获取的网络IP包放入存储网络数据包的双向链表中。\n[0011] 步骤2中的过滤技术具体指,在存储网络数据包的双向链表中,通过链路层头指针找到链路层头信息,根据链路层头信息可找到网络接口卡所有信息,对所关心的网络接口进行网络数据包的过滤。\n[0012] 网络数据包过滤是指,在存储网络数据包的双向链表中,根据数据偏移量信息获取传输层头信息、传输层头信息的内容找TCP/UDP协议信息以及UDP协议的目的端口等三个条件对网络数据包进行过滤。\n[0013] 步骤3中的拷贝和修改具体指,在网络接口中定义回调函数,对网络数据包完成过滤后进行调用回调函数,在该回调函数进行网络数据包的内存空间的分配,将过滤后的网络数据包拷贝至新分配的内存空间中,拷贝重新生成的网络数据包,依然使用双向链表对其进行控制和修改。在网络数据包的双向链表中获取网络层头信息,根据网络层头信息的内容对网络数据包的目的IP地址进行修改,主要是将网络数据包的目的IP修改为转发目的地址的IP。\n[0014] 步骤4中的网络数据包多次路由转发技术具体指,在日志转发系统中采用数组的形式存储指定转发目的地址IP和网络接口等参数,以循环的形式对数组进行遍历,遍历过程中将符合转发条件的网络数据包进行拷贝和相应的目的地址修改,将改造后的网络数据包放入数据包转发模块中,数据包转发模块根据网络数据包的目的地址IP进行路由选择,根据相应的路由信息将网络数据包发送至修改后的目的地。\n[0015] 本发明的有益效果是,一种海量日志转发方法,在海量日志转发处理过程中,解决了网络设备日志不支持多目的IP发送的问题,同时保证转发后的日志信息的源IP不被修改,确保多个平台都能够通过日志的来源IP对设备进行定位,通过使用网络数据包的过滤技术对网络数据包拷贝和修改技术进行优化,提升了网络数据包拷贝和修改效率。\n附图说明\n[0016] 图1是一种海量日志转发方法转发示意图;\n[0017] 图2是一种海量日志转发方法转发流程图。\n具体实施方式\n[0018] 下面结合附图和具体实施方式对本发明进行详细说明。\n[0019] 本发明一种海量日志转发方法,转发示意图如图1所示,发送端待转发日志通过日志转发模块被发送至日志接收端的各个应用平台,具体转发流程图如图2所示,按照以下步骤实施:\n[0020] 步骤1,将日志信息网络数据包进行拦截技术处理,获取网络数据的IP包,并将获取的网络IP包放入存储网络数据包的双向链表中;\n[0021] 步骤2,对步骤1获取的网络数据IP包基于网络接口和网络协议进行网络数据包过滤技术处理,得到保留IP数据包;\n[0022] 步骤3,将步骤2所得到的保留IP数据包做数据包重构,将网络协议栈中的保留IP数据包进行拷贝和修改,拷贝重新生成的网络数据包,依然使用双向链表对其进行控制和修改;\n[0023] 步骤4,对步骤3中的网络数据包多次路由转发技术处理。\n[0024] 步骤1中的拦截技术具体指,网络接口中定义回调函数,当网络数据包进入网络协议栈后就会调用回调函数,该回调函数位于网络的数据链路层,在网络的数据链路层,根据网络接口定义对网络数据包进行拦截处理,获取网络数据的IP包,并将获取的网络IP包放入存储网络数据包的双向链表中。\n[0025] 步骤2中的过滤技术具体指,在存储网络数据包的双向链表中,通过链路层头指针找到链路层头信息,根据链路层头信息可找到网络接口卡所有信息,对所关心的网络接口进行网络数据包的过滤。\n[0026] 网络数据包过滤是指,在存储网络数据包的双向链表中,根据数据偏移量信息获取传输层头信息、传输层头信息的内容找TCP/UDP协议信息以及UDP协议的目的端口等三个条件对网络数据包进行过滤。\n[0027] 步骤3中的拷贝和修改具体指,在网络接口中定义回调函数,对网络数据包完成过滤后进行调用回调函数,在该回调函数进行网络数据包的内存空间的分配,将过滤后的网络数据包拷贝至新分配的内存空间中,拷贝重新生成的网络数据包,依然使用双向链表对其进行控制和修改。在网络数据包的双向链表中获取网络层头信息,根据网络层头信息的内容对网络数据包的目的IP地址进行修改,主要是将网络数据包的目的IP修改为转发目的地址的IP。\n[0028] 步骤4中的网络数据包多次路由转发技术具体指,在日志转发系统中采用数组的形式存储指定转发目的地址IP和网络接口等参数,以循环的形式对数组进行遍历,遍历过程中将符合转发条件的网络数据包进行拷贝和相应的目的地址修改,将改造后的网络数据包放入数据包转发模块中,数据包转发模块根据网络数据包的目的地址IP进行路由选择,根据相应的路由信息将网络数据包发送至修改后的目的地。\n[0029] 经过以上四个步骤,日志信息的网络数据包只是修改了数据包中的目的地址IP,并在修改数据包目的地址IP后对网络数据包进行重新路由,所以在这个过程不修改日志信息网络数据包的来源地址IP,当日志应用接收平台接收的日志后,相对于日志应用接收平台日志转发器就像是不存在一样,其效果就是日志源直接将日志发送到多个应用平台一样。\n[0030] 本发明一种海量日志转发方法,对关心的数据包进行复制后,修改数据包的目的IP,最后修改好的数据包重新放入网络协议栈中,根据目的IP进行相应的路由设置,将数据包发送至转发目的地址,从而实现日志转发功能。\n[0031] 实施例\n[0032] 步骤1,将日志信息网络数据包进行拦截技术处理,获取网络数据的IP包,并将获取的网络IP包放入存储网络数据包的双向链表中;\n[0033] 步骤2,对步骤1获取的网络数据IP包基于网络接口和网络协议进行网络数据包过滤技术处理,得到保留IP数据包;\n[0034] 步骤3,将步骤2所得到的保留IP数据包做数据包重构,将网络协议栈中的保留IP数据包进行拷贝和修改,拷贝重新生成的网络数据包,依然使用双向链表对其进行控制和修改;\n[0035] 步骤4,对步骤3中的网络数据包多次路由转发技术处理。\n[0036] 具体命令行如下:\n[0037] insmod LogForward.ko src=eth0dst=eth1,eth2dstip=1.1.1.1,2.2.2.2[0038] 上述命令的含义是:通过eth0网络接口进行数据报的接收,通过eth1将数据报转发到目的IP为1.1.1.1,通过eth2将数据报转发到目的IP为2.2.2.2。\n[0039] 以上实施例仅用于说明本发明的优选实施方式,但本发明并不限于上述实施方式,在所述领域普通技术人员所具备的知识范围内,本发明的精神和原则之内所作的任何修改、等同替代和改进等,其均应涵盖在本发明请求保护的技术方案范围之内。
法律信息
- 2018-01-12
- 2015-02-11
实质审查的生效
IPC(主分类): H04L 12/24
专利申请号: 201410567607.8
申请日: 2014.10.22
- 2015-01-14
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-06-19
|
2011-12-12
| | |
2
| |
2014-08-27
|
2014-06-13
| | |
3
| |
2007-11-28
|
2006-05-26
| | |
4
| |
2012-08-15
|
2012-03-13
| | |
5
| |
2010-12-29
|
2009-06-22
| | |
6
| |
2007-12-12
|
2007-05-22
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |