一种IP网段高效匹配的实现方法与流程

专利2022-06-30  53


本发明涉及internet管理技术领域,尤其是一种ip网段高效匹配的实现方法。



背景技术:

定制网络设备串接在路由器之间,或者旁路并接到承载网路由器线路上,完成对网络流量的初步分析。为了完成流量中报文的ip地址和该ip所属网段、运营商类型、对应省份的一一对应,传统的解决方案是根据各运营商在各省份的ip地址范围,为每个ip地址独立创建ip地址表项,每个表项存储其所属网段、运营商、省份等信息,当报文到达一级设备时,将根据其完整的32位源/目的ip地址进行hash查表,找到其对应的ip地址表项,从而获得该报文源端/目的端ip所属网段、运营商及省份信息。可见,传统解决方案虽然可以快速实现ip地址和所属网段、运营商及省份信息的快速对应,但是考虑到现网海量的ipv4地址数量,每个ip地址独立创建表项存储所属网段、运营商、省份信息时,此方案对内存的消耗也是巨大的。



技术实现要素:

本发明所要解决的技术问题在于,提供一种ip网段高效匹配的实现方法,能够实现高效查找,同时大幅节省内存空间。

为解决上述技术问题,本发明提供一种ip网段高效匹配的实现装置,包括:大网段自动拆分模块、高效表项管理模块和流量源/目的ip匹配模块;

大网段自动拆分模块,自动导入记录大量网段信息的csv文件,按行提取运营商所在省份的大网段范围,并按照24位掩码将大网段划分为一个个含有256个ip的小网段,每个小网段对应一个表项;

二级表散列管理模块,根据拆分出来的表项,取前24位网段id作为key值,进行hash计算后,挂入冲突链进行管理,在hash算法合适时,冲突率1.3以下,实现高效查找;hash算法合适是指,通过试用不同的hash算法,在现网环境进行调试,找到对应于现网流量ip特征的、hash冲突率低的算法;

流量源/目的ip匹配模块,现网流量进入本模块后,分别取源/目的ip前24位网段进行hash查找后遍历冲突链,直接获取到源/目的ip对应的表项,从而获取到其对应的网段、运营商及省份信息。

相应的,一种ip网段高效匹配的实现方法,包括如下步骤:

(1)大网段自动拆分模块导入csv文件,按行提取信息,每行所有信息形成一个一级表的表项;逐条提取一级表的表项,将每个表项中网段内ip数目,除以256,获取该一级表表项分割后对应的二级表数目n;然后取该一级表网段的起始ip地址,取前24位,得到分割后的第一个二级表网段地址a,此后循环n-1次,每次产生一个二级表表项,第i次循环产生的网段地址为a i*256,同时为每个二级表表项添加对应运营商及省份信息;

(2)二级表散列管理模块逐条提取二级表表项,用二级表的网段地址作为key值,进行hash计算后,挂到对应冲突链进行管理;

(3)流量接入设备流量源/目的ip匹配模块,分别提取源/目的ip前24位,作为网段地址进行二级表的hash查找,表项查找成功,输出流入包的源/目的ip对应的大网段范围、运营商及省份信息;表项查找失败,终止匹配流程。

优选的,步骤(1)中,按行提取信息包括网段范围、网段内ip数目、运营商信息和省份信息。

本发明的有益效果为:本发明实现了现网大流量场景下,ip地址的快速映射和匹配,可以实时实现任意ip地址和其所属运营商、国家、地区位置信息之间的快速匹配,而不依赖于任何硬件性能,且存储全球ip地址信息时,所消耗的存储空间为40亿ipv4地址空间的1/256。

附图说明

图1为本发明的流程示意图。

具体实施方式

一种ip网段高效匹配的实现装置,包括大网段自动拆分模块、高效表项管理模块和流量源/目的ip匹配模块。

大网段自动拆分模块,可以自动导入记录大量网段信息的csv文件,按行提取运营商所在省份的大网段范围,并按照24位掩码将大网段划分为一个个含有256个ip的小网段,每个小网段对应一个表项。

二级表散列管理模块,根据拆分出来的表项,取前24位网段id作为key值,进行hash计算后,挂入冲突链进行管理。在hash算法合适时,冲突率1.3以下,可以实现高效查找。

流量源/目的ip匹配模块,现网流量进入本模块后,分别取源/目的ip前24位网段进行hash查找后遍历冲突链,可以直接获取到源/目的ip对应的表项,从而获取到其对应的网段、运营商及省份信息。

如图1所示,一种ip网段高效匹配的实现方法,包括如下步骤:

(1)大网段自动拆分模块导入csv文件,按行提取信息,每行所有信息形成一个一级表的表项;逐条提取一级表的表项,将每个表项中网段内ip数目,除以256,获取该一级表表项分割后对应的二级表数目n;然后取该一级表网段的起始ip地址,取前24位,得到分割后的第一个二级表网段地址a,此后循环n-1次,每次产生一个二级表表项,第i次循环产生的网段地址为a i*256,同时为每个二级表表项添加对应运营商及省份信息;

(2)二级表散列管理模块逐条提取二级表表项,用二级表的网段地址作为key值,进行hash计算后,挂到对应冲突链进行管理;

(3)流量接入设备流量源/目的ip匹配模块,分别提取源/目的ip前24位,作为网段地址进行二级表的hash查找,表项查找成功,输出流入包的源/目的ip对应的大网段范围、运营商及省份信息;表项查找失败,终止匹配流程。

本发明中,针对ip地址和所属网段、运营商、省份信息之间的对应关系,设计一种按段存储结构来实现高效查找的同时大幅节省内存空间。首先将各运营商在各省份的大网段进行一次划分,划分完之后的基本单元为256个ip地址的小网段,同一大网段的所有小网段拥有相同的大网段id、运营商信息、省份信息。如此可以将表项的内存消耗减小到传统方案的1/256。当报文到达设备时,取源/目的ip地址的前24位,进行hash查表,将直接找到其对应的子网段表项,从而获取源/目的ip对应的大网段id、运营商及省份信息等,同时实现了内存节约和高效匹配。


技术特征:

1.一种ip网段高效匹配的实现装置,其特征在于,包括:大网段自动拆分模块、高效表项管理模块和流量源/目的ip匹配模块;

大网段自动拆分模块,自动导入记录大量网段信息的csv文件,按行提取运营商所在省份的大网段范围,并按照24位掩码将大网段划分为一个个含有256个ip的小网段,每个小网段对应一个表项;

二级表散列管理模块,根据拆分出来的表项,取前24位网段id作为key值,进行hash计算后,挂入冲突链进行管理,在hash算法合适时,冲突率1.3以下,实现高效查找;

流量源/目的ip匹配模块,现网流量进入本模块后,分别取源/目的ip前24位网段进行hash查找后遍历冲突链,直接获取到源/目的ip对应的表项,从而获取到其对应的网段、运营商及省份信息。

2.一种ip网段高效匹配的实现方法,其特征在于,包括如下步骤:

(1)大网段自动拆分模块导入csv文件,按行提取信息,每行所有信息形成一个一级表的表项;逐条提取一级表的表项,将每个表项中网段内ip数目,除以256,获取该一级表表项分割后对应的二级表数目n;然后取该一级表网段的起始ip地址,取前24位,得到分割后的第一个二级表网段地址a,此后循环n-1次,每次产生一个二级表表项,第i次循环产生的网段地址为a i*256,同时为每个二级表表项添加对应运营商及省份信息;

(2)二级表散列管理模块逐条提取二级表表项,用二级表的网段地址作为key值,进行hash计算后,挂到对应冲突链进行管理;

(3)流量接入设备流量源/目的ip匹配模块,分别提取源/目的ip前24位,作为网段地址进行二级表的hash查找,表项查找成功,输出流入包的源/目的ip对应的大网段范围、运营商及省份信息;表项查找失败,终止匹配流程。

3.如权利要求2所述的ip网段高效匹配的实现方法,其特征在于,步骤(1)中,按行提取信息包括网段范围、网段内ip数目、运营商信息和省份信息。

技术总结
本发明公开了一种IP网段高效匹配的实现装置及方法,将各运营商在各省份的大网段进行一次划分,划分完之后的基本单元为256个IP地址的小网段,同一大网段的所有小网段拥有相同的大网段ID、运营商信息、省份信息,如此可以将表项的内存消耗减小到传统方案的1/256;当报文到达设备时,取源/目的IP地址的前24位,进行Hash查表,将直接找到其对应的子网段表项,从而获取源/目的IP对应的大网段ID、运营商及省份信息等,同时实现了内存节约和高效匹配。

技术研发人员:李高超;孙加敏;王维晟;陈国贺;邹昕;胡立洵;李政;孙传明;张伟;韩伟;陈训逊;严伟
受保护的技术使用者:国家计算机网络与信息安全管理中心;南京中新赛克科技有限责任公司
技术研发日:2019.12.27
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56275.html

最新回复(0)