基于中间件实现网关NAPT功能的方法及装置制造方法及图纸

技术编号:10367057 阅读:127 留言:0更新日期:2014-08-28 10:59
本发明专利技术实施例提供一种基于中间件实现网关NAPT功能的方法及装置。该方法包括:中间件获取数据包;若所述数据包是IP数据包,且所述IP数据包携带有TCP报文或UDP报文,则所述中间件查询NAPT表;若所述NAPT表中不存在源IP与源端口号的对应关系,则所述中间件分别修改所述IP数据包中的源IP与源端口号,将源IP、源端口号、修改后的源IP和修改后的源端口号存储到所述NAPT表中。本发明专利技术实施例通过中间件实现NAPT功能,相比于内核态下和底层驱动中实现NAPT功能而言,降低了耦合度;相比于用户态下实现NAPT功能,中间件具有良好的功能可扩展性,能够进行NAPT功能调整。

【技术实现步骤摘要】
基于中间件实现网关NAPT功能的方法及装置
本专利技术实施例涉及通信技术,尤其涉及一种基于中间件实现网关NAPT功能的方法及装置。
技术介绍
网络地址端口转换(Network Address Port Translation,简称 NAPT)是一种将多个私有内部IP地址映射为一个合法公网IP地址的转换技术,也就是〈内部地址+内部端口〉与〈外部地址+外部端口〉之间的转换。接入网关设备一般具备这种NAPT功能,以用于局域网与广域网之间的互联互通。现有的实现NAPT功能的方法主要分为三类:一是在内核态下对操作系统的协议栈进行相应修改来实现NAPT功能,具有处理速度快和可靠性高等优点;二是在用户态下用代理软件来实现NAPT功能;三是在底层驱动中实现NAPT功能。第一种和第三种方法的缺陷在于NAPT功能与操作系统和底层驱动的耦合度大,第二种方法的缺陷在于NAPT功能扩展性差。现有技术中缺乏一种能够同时克服内核态下、用户态下和底层驱动中实现NAPT功能不足之处的基于中间件实现网关NAPT功能的方法。
技术实现思路
本专利技术提供一种基于中间件实现网关NAPT功能的方法及装置,以克服内核态下、用户态下和底层驱动中实现NAPT功能不足之处。本专利技术的一个方面是提供一种基于中间件实现网关NAPT功能的方法,包括:中间件获取数据包,并判断所述数据包是否为IP数据包;若所述数据包是IP数据包,且所述IP数据包携带有TCP报文或UDP报文,则所述中间件查询NAPT表中是否存在所述IP数据包携带的源IP与源端口号的对应关系;若所述NAPT表中不存在所述IP数据包携带的源IP与源端口号的对应关系,则所述中间件分别修改所述IP数据包中的源IP与源端口号,以使修改后的源IP为所述中间件当前所处装置的IP,修改后的源端口号与所述NAPT表中存在的修改后的源端口号均不相同,以实现将所述修改后的数据包发送给外网设备;所述中间件将所述源IP、所述源端口号、所述修改后的源IP和所述修改后的源端口号的对应关系存储到所述NAPT表中。本专利技术的另一个方面是提供一种中间件,包括:数据获取模块,用于获取数据包,并判断所述数据包是否为IP数据包;查询模块,用于若所述数据包是IP数据包,且所述IP数据包携带有TCP报文或UDP报文,则所述中间件查询NAPT表中是否存在所述IP数据包携带的源IP与源端口号的对应关系;处理模块,用于若所述NAPT表中不存在所述IP数据包携带的源IP与源端口号的对应关系,则所述中间件分别修改所述IP数据包中的源IP与源端口号,以使修改后的源IP为所述中间件当前所处装置的IP,修改后的源端口号与所述NAPT表中存在的修改后的源端口号均不相同,以实现将所述修改后的数据包发送给外网设备;并将所述源IP、所述源端口号、所述修改后的源IP和所述修改后的源端口号的对应关系存储到所述NAPT表中。本专利技术的另一个方面是提供一种网关设备,包括所述的中间件、内核操作系统和底层驱动,所述中间件位于所述内核操作系统和所述底层驱动之间。本专利技术提供的基于中间件实现网关NAPT功能的方法及装置,通过中间件实现NAPT功能,相比于内核态下和底层驱动中实现NAPT功能而言,降低了耦合度;相比于用户态下实现NAPT功能,中间件具有良好的功能可扩展性,能够进行NAPT功能调整。【附图说明】图1为本专利技术实施例提供的基于中间件实现网关NAPT功能的方法流程图;图2为本专利技术另一实施例提供的基于中间件实现网关NAPT功能的方法适用的信令图;图3为本专利技术另一实施例提供的基于中间件实现网关NAPT功能的方法适用的数据结构图;图4为本专利技术另一实施例中间件的处理模块执行基于中间件实现网关NAPT功能的方法的流程图;图5为本专利技术另一实施例提供的中间件的结构图;图6为本专利技术另一实施例提供的中间件的结构图;图7为本专利技术另一实施例提供的网关设备的结构图。【具体实施方式】本专利技术实施例适用于在网关设备中实现NAPT功能的方法,具体为在网关设备的内核操作系统和底层驱动之间增加一个中间件,由中间件实现NAPT功能,图1为本专利技术实施例提供的基于中间件实现网关NAPT功能的方法流程图,具体步骤如下:步骤S101、中间件获取数据包,并判断所述数据包是否为IP数据包;中间件通过第三方软件函数包Libpcap和Libnet获取数据包,第三方软件函数包Libpcap和Libnet用于从底层驱动获取进入网关设备的数据包,中间件对获取到的数据包进行过滤,选择出目标MAC是网关MAC的数据包,并对目标MAC是网关MAC的数据包进行分析,判断是否为IP数据包。步骤S102、若所述数据包是IP数据包,且所述IP数据包携带有TCP报文或UDP报文,则所述中间件查询NAPT表中是否存在所述IP数据包携带的源IP与源端口号的对应关系;若所述NAPT表中不存在所述IP数据包携带的源IP与源端口号的对应关系,则所述中间件分别修改所述IP数据包中的源IP与源端口号,以使修改后的源IP为所述中间件当前所处装置的IP,修改后的源端口号与所述NAPT表中存在的修改后的源端口号均不相同,以实现将所述修改后的数据包发送给外网设备;若中间件判断出所述数据包是IP数据包,且所述IP数据包携带有TCP报文或UDP报文,则依据所述IP数据包携带的源IP与TCP报文或UDP报文携带的源端口号查询NAPT表是否存储有源IP与源端口号的对应关系,其中,NAPT表至少包括源IP、源端口号、修改后的源IP和修改后的源端口号,及对应关系,此外,NAPT表还包括目的端口号和目的IP。源IP标识IP数据包进入网关之前携带的用户主机的IP地址;源端口号标识IP数据包进入网关之前,IP数据包携带的用户主机的端口号;修改后的源IP标识网关设备的IP地址,即IP数据包出网关时的源IP;修改后的源端口号标识中间件修改源端口号后的端口号,即IP数据包出网关时的源端口号,且不是同一用户主机同一端口发出的IP数据包出网关时携带的源端口号不相同;目的IP标识网络侧服务器的IP地址;目的端口号标识网络侧服务器的端口号;IP数据包携带的目的IP与目的端口号在经过网关时不发生改变。若所述NAPT表中没有所述IP数据包携带的源IP与源端口号的对应关系,中间件将IP数据包携带的源IP修改成网关的IP地址,并修改IP数据包携带的源端口号,保证不是同一用户主机同一端口发出的IP数据包出网关时携带的源端口号不相同。步骤S103、所述中间件将所述源IP、所述源端口号、所述修改后的源IP和所述修改后的源端口号的对应关系存储到所述NAPT表中。所述中间件将与IP数据包对应的源IP、源端口号、修改后的源IP和修改后的源端口号存储到所述NAPT表中,具体为在NAPT表中创建一个表项,所述表项包括源IP、源端口号、修改后的源IP、修改后的源端口号、目的IP和目的端口号组成的六元组。本专利技术实施例通过中间件实现NAPT功能,相比于内核态下和底层驱动中实现NAPT功能而言,降低了耦合度;相比于用户态下实现NAPT功能,中间件具有良好的功能可扩展性,能够进行NAPT功能调整。在上述实施例的基础上,步骤S103还包括若所述NAPT表中存在所述IP数据包携带的源IP与源端口号的对应关系,则所述中间件从所述NA本文档来自技高网...

【技术保护点】
一种基于中间件实现网关NAPT功能的方法,其特征在于,包括:中间件获取数据包,并判断所述数据包是否为IP数据包;若所述数据包是IP数据包,且所述IP数据包携带有TCP报文或UDP报文,则所述中间件查询NAPT表中是否存在所述IP数据包携带的源IP与源端口号的对应关系;若所述NAPT表中不存在所述IP数据包携带的源IP与源端口号的对应关系,则所述中间件分别修改所述IP数据包中的源IP与源端口号,以使修改后的源IP为所述中间件当前所处装置的IP,修改后的源端口号与所述NAPT表中存在的修改后的源端口号均不相同,以实现将所述修改后的数据包发送给外网设备;所述中间件将所述源IP、所述源端口号、所述修改后的源IP和所述修改后的源端口号的对应关系存储到所述NAPT表中。

【技术特征摘要】
1.一种基于中间件实现网关NAPT功能的方法,其特征在于,包括: 中间件获取数据包,并判断所述数据包是否为IP数据包; 若所述数据包是IP数据包,且所述IP数据包携带有TCP报文或UDP报文,则所述中间件查询NAPT表中是否存在所述IP数据包携带的源IP与源端口号的对应关系;若所述NAPT表中不存在所述IP数据包携带的源IP与源端口号的对应关系,则所述中间件分别修改所述IP数据包中的源IP与源端口号,以使修改后的源IP为所述中间件当前所处装置的IP,修改后的源端口号与所述NAPT表中存在的修改后的源端口号均不相同,以实现将所述修改后的数据包发送给外网设备; 所述中间件将所述源IP、所述源端口号、所述修改后的源IP和所述修改后的源端口号的对应关系存储到所述NAPT表中。2.根据权利要求1所述的方法,其特征在于,还包括: 若所述NAPT表中存在所述IP数据包携带的源IP与源端口号的对应关系,则所述中间件从所述NAPT表中,获取与所述源IP与源端口号对应的修改后的源IP和修改后的源端口号,并将所述IP数据包携带的所述源IP与源端口号分别修改为所述修改后的源IP和修改后的源端口号。3.根据权利要求1所述的方法,其特征在于,还包括: 若所述数据包是IP数据包,且所述IP数据包携带有ICMP报文,则所述中间件查询ICMP表中是否有所述IP数据包携带的源IP ; 若所述ICMP表中没有所述IP数据包携带的源IP,则所述中间件修改所述ICMP报文携带的主题查询ID号,并将所述IP数据包携带的源IP存储到所述ICMP表中; 若所述ICMP表中有所述IP数据包携带的源IP,则所述中间件修改所述ICMP报文携带的主题查询ID号。4.根据权利要求3所述的方法,其特征在于,所述中间件修改所述ICMP报文携带的主题查询ID号包括: 所述中间件将所述ICMP报文携带的主题查询ID号修改为所述IP数据包携带的源IP的最后一个字节。5.根据权利要求1所述的方法,其特征在于,所述中间件获取数据包,并判断所述数据包是否为IP数据包之后,还包括: 若所述数据包是IP数据包,所述中间件将所述IP数据包对应的源MAC地址修改为包含所述中间件的设备的MAC,将所述IP数据包对应的目的MAC修改为下一跳接收设备的MAC ; 若所述数据 包是ARP数据包,则所述中间件将所述ARP数据包携带的源IP和源MAC,及对应关系存储到ARP表中。6.根据权利要求1-5任一项所述的方法,其特征在于,还包括: 所述中间件对修改后的所述IP数据包进行校验更正,并转发所述修改后的所述IP数据包。7.—种中间件,其特征在于,包括...

【专利技术属性】
技术研发人员:刘锋陈旭陈凌鹏徐桢刘凯
申请(专利权)人:北京航空航天大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1