CN106789666B - 一种确定转换后端口的方法和装置 - Google Patents

一种确定转换后端口的方法和装置 Download PDF

Info

Publication number
CN106789666B
CN106789666B CN201611033880.8A CN201611033880A CN106789666B CN 106789666 B CN106789666 B CN 106789666B CN 201611033880 A CN201611033880 A CN 201611033880A CN 106789666 B CN106789666 B CN 106789666B
Authority
CN
China
Prior art keywords
port
session
session table
target
converted
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611033880.8A
Other languages
English (en)
Other versions
CN106789666A (zh
Inventor
刘健男
党丽娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Neusoft Corp
Original Assignee
Neusoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Neusoft Corp filed Critical Neusoft Corp
Priority to CN201611033880.8A priority Critical patent/CN106789666B/zh
Publication of CN106789666A publication Critical patent/CN106789666A/zh
Application granted granted Critical
Publication of CN106789666B publication Critical patent/CN106789666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种确定转换后端口的方法,该方法包括:网络转发设备在获取源端口号和源IP后,基于参数源端口号和源IP进行函数运算得到转换后端口;在所述网络转发设备本地不存在具有目标五元组的第一会话表时,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议。由于多核下可并发,同时运算转换后端口,同时运算并不互相干扰,所以不存在端口资源竞争,此时无需存储端口是否被分配的信息,也无需复杂地查找端口以及查找失败后再次查找,实现在多核下快速地确定转换后端口,通过转换后端口进行报文传输。此外,本发明还公开了一种确定转换后端口的装置。

Description

一种确定转换后端口的方法和装置
技术领域
本发明涉及网络通信技术领域,特别是涉及一种确定转换后端口的方法和装置。
背景技术
随着科学技术的迅速发展,目前网络转发设备进入多核时代,在多核处理情况下,当内部专用网访问外部因特网时,一般会进行网络地址转换(英文:Network AddressTranslation,简称NAT),即将内部专用网的私有网络协议(英文:Internet Protocol,简称IP)地址转换为公有IP地址,通过使用少量的公有IP地址代表较多的私有IP地址不仅可以有助于解决Ipv4面临网络地址枯竭问题,而且保护了专用网私有网络地址的安全。
目前,多核处理的网络转发设备普遍都使用网络地址端口转换(英文:NetworkAddress Port Translation,简称NAPT)方法,即在将内部专用网的私有IP地址转换为公有IP地址基础上,将报文的源端口进行相应的转换。现有技术中,网络转发设备实现NAPT是在私有IP地址转换成合法的公有IP地址后,使用加锁的方式,从转换后的IP地址对应的端口1024到65535之间查找此时未被使用的端口,通过查找到的端口作为转换后端口进行报文传输。
发明人经过研究发现,同一个IP地址的一个端口在同时情况下只能被使用一次,即已被使用的端口只有释放后才可以被再次使用,由于在实际网络转发时,端口的使用与释放是不固定的,一个IP地址的已被使用的端口号和未被使用的端口的分布情况如图1所示,已被使用的端口号和未被使用的端口无规律地混乱排列,查找未被使用的端口的过程十分复杂;在多核下可能还会涉及端口查找的竞争,即多核下网络转发设备不能同时去查找未被使用的端口,这是由于同时查找情况混乱不利于区分已被使用的端口号和未被使用的端口。因此,通过现有技术的方案并不能保证在多核下快速地查找到可用的端口,从而无法保证快速地通过查找到的可用的端口进行报文传输。
发明内容
本发明所要解决的技术问题是,提供一种确定转换后端口的方法和装置,以使得网络转发设备在多核下能够快速查找到可用的端口进行报文传输。
为解决上述技术问题,本发明提供了一种确定转换后端口的方法,该方法包括:
获取会话对应的源网络协议地址和源端口,所述会话用于客户端与服务器之间进行通信;
以所述源网络协议地址和所述源端口为参数,通过运算规则的运算,确定所述会话对应的转换后端口;
如果所述网络转发设备本地不存在具有目标五元组的第一会话表,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议。
优选的,还包括:
如果所述网络转发设备本地存在具有目标五元组的第一会话表,基于所述第一会话表生成第二会话表,所述第二会话表中包括源硬件地址和所述会话地址,所述源硬件地址为客户端本地的硬件地址。
优选的,所述如果所述网络转发设备本地存在具有目标五元组的第一会话表,基于所述第一会话表生成第二会话表,包括:
如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数不超过预设的阈值,基于所述第一会话表生成第二会话表。
优选的,所述复用次数通过所述第二会话表中记录的地址个数来确定,所述地址个数表示所述第二会话表中具有的会话组地址的个数。
优选的,还包括:
如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数超过预设的阈值,向客户端发送重置报文。
本发明还提供了一种确定转换后端口的装置,该装置包括:
获取单元,用于获取会话对应的源网络协议地址和源端口,所述会话用于客户端与服务器之间进行通信;
确定单元,用于以所述源网络协议地址和所述源端口为参数,通过运算规则的运算,确定所述会话对应的转换后端口;
第一生成单元,用于如果所述网络转发设备本地不存在具有目标五元组的第一会话表,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议。
优选的,还包括:
第二生成单元,用于如果所述网络转发设备本地存在具有目标五元组的第一会话表,基于所述第一会话表生成第二会话表,所述第二会话表中包括源硬件地址和所述会话地址,所述源硬件地址为客户端本地的硬件地址。
优选的,所述第二生成单元还用于如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数不超过预设的阈值,基于所述第一会话表生成第二会话表。
优选的,所述复用次数通过所述第二会话表中记录的地址个数来确定,所述地址个数表示所述第二会话表中具有的会话组地址的个数。
优选的,还包括:
发送单元,用于如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数超过预设的阈值,向客户端发送重置报文。
与现有技术相比,本发明具有以下优点:
在本发明实施例中,网络转发设备在获取源端口号和源IP后,基于参数源端口号和源IP进行函数运算得到转换后端口,在所述网络转发设备本地不存在具有目标五元组的第一会话表时,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议。由此可见,转换后端口是根据源端口号和源IP进行函数运算得到的,多核下可并发,同时运算转换后端口,同时运算并不互相干扰,所以不存在端口资源竞争,此时无需存储端口是否被分配的信息,也无需复杂地查找端口以及查找失败后再次查找,实现在多核下快速地确定转换后端口,通过转换后端口进行报文传输。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为一个IP地址的端口已被使用和未被使用的实际场景示意图;
图2为本发明实施例中一个示例性应用场景的框架示意图;
图3为本发明实施例中一种确定转换后端口的方法的流程示意图;
图4-1为本发明实施例中第一会话表的示意图;
图4-2为本发明实施例中第二会话表的示意图;
图5为本发明实施例中另一种确定转换后端口的方法的流程示意图;
图6为本发明实施例中一种确定转换后端口的装置的结构示意图;
图7为本发明实施例中另一种确定转换后端口的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人经过研究发现,在现有技术中,同一个IP地址的一个端口在同时情况下只能被使用一次,即已被使用的端口只有释放后才可以被再次使用,由于在实际网络转发时,端口的使用与释放是不固定的,一个IP地址的已被使用的端口号和未被使用的端口无规律地混乱排列,查找未被使用的端口的过程十分复杂;在多核下可能还会涉及端口查找的竞争,即多核下网络转发设备不能同时去查找未被使用的端口,这是由于同时查找情况混乱不利于区分已被使用的端口号和未被使用的端口,无法在多核下快速地查找到可用的端口,从而无法保证快速地通过查找到的可用的端口进行报文传输。
基于此,在本发明实施例中,在获取源端口号和源IP后,基于参数源端口号和源IP进行函数运算得到转换后端口,同时当网络转发设备本地存在具有目标五元组的第一会话表,在所述第一会话表增加源硬件地址以及当存在次数过多时向源端发送重置报文。由此可见,转换后端口是根据源端口号和源IP进行函数运算得到的,在所述运算规则下,若所述源IP地址不同和/或所述源端口不同,则运算出的所述转换后端口不同,多核下会话所对应的源端口一般不同,同时运算出的所述转换后端口不同,因此,多核并发运算并不互相干扰,不存在端口资源竞争,此时无需存储端口是否被分配的信息,也无需复杂地查找端口以及查找失败后再次查找,通过在会话表中增加源硬件地址的方式保证了目标五元组冲突时会话表的唯一性,运算出的转换后端口仍可成功使用,冲突次数过多时通过发送重置报文的方式可重新运算转换后端口,实现在多核下快速地确定转换后端口,通过转换后端口进行报文传输。
举例来说,本发明实施例的场景之一,可以是应用到如图2所示的场景。在该场景中有客户端101、防火墙102以及服务器103,其中,客户端101和防火墙102可以交互,防火墙102和服务器103可以交互。客户端101向防火墙102发送客户端101与服务器103的会话请求,防火墙102接收会话请求,获取所述会话对应的源IP地址、源端口、目地IP地址、目地端口和网络传输协议,在防火墙102确定所述会话对应的转换后IP地址之后,防火墙102以所述源IP地址和所述源端口为参数,通过运算规则的运算,确定所述会话对应的转换后端口,如果防火墙102本地不存在具有目标五元组的第一会话表,基于所述目标五元组生成所述第一会话表,以便客户端101与服务器103通过所述会话进行报文交互,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议。
可以理解的是,在上述应用场景中,虽然将本发明实施方式的动作描述由防火墙102执行,但是本发明在执行主体方面不受限制,只要执行了本发明实施方式所公开的动作即可。
可以理解的是,上述场景仅是本发明实施例提供的一个场景示例,本发明实施例并不限于此场景。
下面结合附图,通过实施例来详细说明本发明实施例中确定转换后端口的方法和装置的具体实现方式。
示例性方法
参见图3,示出了本发明实施例中一种确定转换后端口的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
步骤301:防火墙获取会话对应的源网络协议地址和源端口,所述会话用于客户端与服务器之间进行通信。
需要说明的是,客户端可以向防火墙发送客户端与服务器的会话请求,防火墙接收会话请求,可以根据所述会话请求获取会话对应的源IP地址、源端口、目地IP地址、目地端口、网络传输协议,所述源IP地址为客户端的IP地址,所述源端口为客户端的端口,所述目地IP地址为服务器的IP地址,所述目地端口为服务器的端口。
步骤302:防火墙以所述源网络协议地址和所述源端口为参数,通过运算规则的运算,确定所述会话对应的转换后端口。
需要说明的是,在防火墙获取会话对应的源网络协议地址和源端口之后,防火墙首先确定转换后网络协议地址,再通过以所述源网络协议地址和所述源端口为参的函数运算确定转换后端口,一般情况下端口0到1023是固定的,用于服务器监听连接,而不会用于转换报文的源端口,因此可以使用的传输控制协议(Transmission Control Protocol,简称TCP)、用户数据报协议(User Datagram Protocol,简称UDP)的端口号是1024到65535之间。在本实施例的一些实施方式中,可以先计算所述源网络协议地址和源端口的哈希值,再将所述哈希值通过映射的方式规范到1024到65535之间。
例如,客户端1.1.1.1:1234与服务器8.8.8.8:90进行报文交互,防火墙获取源网络协议地址1.1.1.1、源端口1234、目的网络协议地址8.8.8.8、目的端口90以及网络传输协议后,防火墙首先可以确定转换后网络协议地址为2.2.2.2,再计算源网络协议地址1.1.1.1和源端口1234的哈希值,将所述哈希值通过映射规范为55,确定转换后端口为55,在包含目的网络协议地址8.8.8.8、目的端口90、转换后网络协议地址2.2.2.2、转换后端口55以及网络传输协议的会话表唯一的情况下,客户端1.1.1.1:1234与服务器8.8.8.8:90的报文交互可以通过防火墙2.2.2.2:55与服务器8.8.8.8:90的报文交互来进行。
在所述运算规则下,若所述源IP地址不同和/或所述源端口不同,则运算出的所述转换后端口不同,即确定所述会话对应的转换后端口不同。对于不同的会话来说,通常源IP地址不同和源端口不会都相同,因此,在所述运算规则下,针对不同会话运算出的转换后端口通常是不同的,从而保证了不同会话分配的转换后端口是不同的。并且,由于所述会话对应的转换后端口是基于源IP地址和源端口进行函数运算直接确定的,无需进行复杂地查找,也就不会出现查找失败后再次查找的情况,从而大大减少时间的复杂度;无需记录端口是否被使用,也就无需存储端口是否被使用的信息,从而极大地节省了内存的使用。
需要说明的是,对于所述会话来说,防火墙使用所述转换后IP地址和确定出的所述转换后端口与服务器进行报文传输,而不是直接使用所述源IP地址和所述源端口,因此,在防火墙与服务器之间的通信过程中,攻击方即使能够获得转换后IP地址和转化后端口也无法通过转换后IP地址和转换后端口来推算出源端口,源IP地址得到了保护,从而保护了客户端连接端口的隐私性。
步骤303:如果防火墙本地不存在具有目标五元组的第一会话表,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后IP地址、转换后端口、目的IP地址、目的端口以及网络传输协议。
需要说明的是,在确定所述会话对应的转换后端口之后,所述会话使用的所述转换后IP地址、转换后端口、目的IP地址、目的端口以及网络传输协议不存在已生成的会话表中时,防火墙生成的第一会话表是唯一的。其中,所述第一会话表如图4-1所示,其中,地址1个表示的是地址个数,会话地址表示的是会话表的地址。
需要说明的是,所述目标五元组包括所述会话的转换后IP地址、转换后端口、目的IP地址、目的端口以及网络传输协议。一方面,由于源端口为客户端本地机器随机抽取的,不同会话对应的源端口相同的可能性较小。另一方面,由于会话对应的转换后端口是基于源IP地址和源端口运算出来的,步骤302为所述会话确定的所述转换后端口通常与其他会话正在使用的转换后端口不同。再一方面,对于不同的会话来说,客户端所要访问服务器的目地网络协议地址和目地端口通常也并不完全相同。由此可见,在步骤302为所述会话确定所述转换后端口之后,所述会话的目标五元组与已建立的其他会话的五元组产生冲突的概率极低,因此,防火墙本地不存在具有目标五元组的第一会话表的概率可以高达99%以上。
需要说明的是,若所述会话使用的源IP地址、源端口与已建立的其他会话的源IP地址、源端口均相同,则在确定所述会话对应的转换后端口之后,可能会出现所述会话的转换后端口和已建立的其他会话正在使用的转换后端口相同,进一步地,若所述会话对应的转换后IP地址、目地IP地址、目地端口、网络传输协议与已建立的其他会话也都相同的情况,可以增加源硬件地址生成所述具有多级地址的会话表,保证会话表的唯一性。为此,本实施例例如还可以进一步包括:如果防火墙本地存在具有目标五元组的第一会话表,基于所述第一会话表生成第二会话表,所述第二会话表中包括源硬件地址和所述会话地址,所述源硬件地址为客户端本地的硬件地址。
在本实施例的一些实施方式中,如果所述防火墙本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数不超过预设的阈值,基于所述第一会话表生成第二会话表。其中所述第二会话表如图4-2所示,其中,地址2个、地址3个表示的是地址个数,即会话个数,会话组地址表示的是会话表的地址,所述会话组地址包括源硬件地址和所述会话地址。其中,所述复用次数通过所述第二会话表中记录的地址个数来确定,所述地址个数表示所述第二会话表中具有的会话组地址的个数。
需要说明的是,基于所述第一会话表生成第二会话表大大地减少了如果所述运算确定的转换后端口与转换后IP地址、目标IP地址、目标端口以及协议产生冲突时向源端发送重置报文后重新运算后确定的转换后端口仍然有冲突的可能性,同时也保证了所述运算确定的转换后端口的可用性。
需要说明的是,在本实施例的一些实施方式中,如果防火墙本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数超过预设的阈值,还可以向客户端发送重置报文。客户端在接收到重置报文之后,可以重新随机抽取一个新的源端口再次向防火墙发送客户端与服务器的会话请求,防火墙会根据这个新的源端口重新运算得到合适的可用到所述会话对应的转换后端口。
通过本实施例提供的各种实施方式,防火墙在获取源端口号和源IP后,基于参数源端口号和源IP进行函数运算得到转换后端口,在所述网络转发设备本地不存在具有目标五元组的第一会话表时,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议,进一步地,当网络转发设备本地存在具有目标五元组的第一会话表,在所述第一会话表增加源硬件地址以及当存在次数过多时向源端发送重置报文。由此可见,转换后端口是根据源端口号和源IP进行函数运算得到的,多核下可并发,同时运算转换后端口,同时运算并不互相干扰,所以不存在端口资源竞争,此时无需存储端口是否被分配的信息,也无需复杂地查找端口以及查找失败后再次查找,实现在多核下快速地确定转换后端口,通过转换后端口进行报文传输。
参见图5,示出了本发明实施例中另一种确定转换后端口的方法的流程示意图。在本实施例中,所述方法例如可以包括以下步骤:
步骤501:防火墙获取会话对应的源网络协议地址和源端口,所述会话用于客户端与服务器之间进行通信。
步骤502:防火墙以所述源网络协议地址和所述源端口为参数,通过运算规则的运算,确定所述会话对应的转换后端口。
步骤503:如果防火墙本地不存在具有目标五元组的第一会话表,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议。
步骤504:如果防火墙本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数未超过预设的阈值,基于所述第一会话表生成第二会话表,所述第二会话表中包括源硬件地址和所述会话地址,所述源硬件地址为客户端本地的硬件地址。
可选的,在本实施例的一些实施方式中,所述复用次数通过所述第二会话表中记录的地址个数来确定,所述地址个数表示所述第二会话表中具有的会话组地址的个数。
步骤505:如果防火墙本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数超过预设的阈值,向客户端发送重置报文。
通过本实施例提供的各种实施方式,防火墙在获取源端口号和源IP后,基于参数源端口号和源IP进行函数运算得到转换后端口,在所述网络转发设备本地不存在具有目标五元组的第一会话表时,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议,进一步地,当网络转发设备本地存在具有目标五元组的第一会话表,在所述第一会话表增加源硬件地址以及当存在次数过多时向源端发送重置报文。由此可见,转换后端口是根据源端口号和源IP进行函数运算得到的,多核下可并发,同时运算转换后端口,同时运算并不互相干扰,所以不存在端口资源竞争,此时无需存储端口是否被分配的信息,也无需复杂地查找端口以及查找失败后再次查找;通过在会话表中增加源硬件地址的方式保证了目标五元组冲突时右键会话表的唯一性,运算出的转换后端口仍可成功使用,冲突次数过多时通过发送重置报文的方式可重新运算转换后端口,实现在多核下快速地确定转换后端口,通过转换后端口进行报文传输。
示例性设备
参见图6,示出了本发明实施例中一种确定转换后端口的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:
获取单元601,用于获取会话对应的源网络协议地址和源端口,所述会话用于客户端与服务器之间进行通信。
确定单元602,用于以所述源网络协议地址和所述源端口为参数,通过运算规则的运算,确定所述会话对应的转换后端口。
第一生成单元603,用于如果所述网络转发设备本地不存在具有目标五元组的第一会话表,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议。
可选的,在本实施例的一些实施方式中,所述的装置例如可以还包括:第二生成单元,用于如果所述网络转发设备本地存在具有目标五元组的第一会话表,基于所述第一会话表生成第二会话表,所述第二会话表中包括源硬件地址和所述会话地址,所述源硬件地址为客户端本地的硬件地址。
可选的,在本实施例的一些实施方式中,所述第二生成单元还用于如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数不超过预设的阈值,基于所述第一会话表生成第二会话表。
可选的,在本实施例的一些实施方式中,所述复用次数通过所述第二会话表中记录的地址个数来确定,所述地址个数表示所述第二会话表中具有的会话组地址的个数。
可选的,在本实施例的一些实施方式中,所述的装置例如可以进一步包括:发送单元,用于如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数超过预设的阈值,向客户端发送重置报文。
通过本实施例提供的各种实施方式,防火墙在获取源端口号和源IP后,基于参数源端口号和源IP进行函数运算得到转换后端口,在所述网络转发设备本地不存在具有目标五元组的第一会话表时,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议,进一步地,当网络转发设备本地存在具有目标五元组的第一会话表,在所述第一会话表增加源硬件地址以及当存在次数过多时向源端发送重置报文。由此可见,转换后端口是根据源端口号和源IP进行函数运算得到的,多核下可并发,同时运算转换后端口,同时运算并不互相干扰,所以不存在端口资源竞争,此时无需存储端口是否被分配的信息,也无需复杂地查找端口以及查找失败后再次查找,实现在多核下快速地确定转换后端口,通过转换后端口进行报文传输。
参见图7,示出了本发明实施例中一种确定转换后端口的装置的结构示意图。在本实施例中,所述装置例如具体可以包括:
获取单元701,用于获取会话对应的源网络协议地址和源端口,所述会话用于客户端与服务器之间进行通信。
确定单元702,用于以所述源网络协议地址和所述源端口为参数,通过运算规则的运算,确定所述会话对应的转换后端口。
第一生成单元703,用于如果所述网络转发设备本地不存在具有目标五元组的第一会话表,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议。
第二生成单元704,用于如果所述网络转发设备本地存在具有目标五元组的第一会话表,基于所述第一会话表生成第二会话表,所述第二会话表中包括源硬件地址和所述会话地址,所述源硬件地址为客户端本地的硬件地址。
可选的,在本实施例的一些实施方式中,所述第二生成单元还用于如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数不超过预设的阈值,基于所述第一会话表生成第二会话表。
可选的,在本实施例的一些实施方式中,所述复用次数通过所述第二会话表中记录的地址个数来确定,所述地址个数表示所述第二会话表中具有的会话组地址的个数。
发送单元705,用于如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数超过预设的阈值,向客户端发送重置报文。
通过本实施例提供的各种实施方式,防火墙在获取源端口号和源IP后,基于参数源端口号和源IP进行函数运算得到转换后端口,在所述网络转发设备本地不存在具有目标五元组的第一会话表时,基于所述目标五元组生成所述第一会话表,所述目标五元组包括转换后网络协议地址、转换后端口、目的网络协议地址、目的端口以及网络传输协议,进一步地,当网络转发设备本地存在具有目标五元组的第一会话表,在所述第一会话表增加源硬件地址以及当存在次数过多时向源端发送重置报文。由此可见,转换后端口是根据源端口号和源IP进行函数运算得到的,多核下可并发,同时运算转换后端口,同时运算并不互相干扰,所以不存在端口资源竞争,此时无需存储端口是否被分配的信息,也无需复杂地查找端口以及查找失败后再次查找;通过在右键会话表中增加源硬件地址的方式保证了目标五元组冲突时会话表的唯一性,运算出的转换后端口仍可成功使用,冲突次数过多时通过发送重置报文的方式可重新运算转换后端口,实现在多核下快速地确定转换后端口,通过转换后端口进行报文传输。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (8)

1.一种确定转换后端口的方法,其特征在于,应用于网络转发设备,包括:
获取会话对应的源网络协议地址、源端口、目的网络协议地址、目的端口以及网络传输协议,所述会话用于客户端与服务器之间进行通信;
确定转换后网络协议地址,以所述源网络协议地址和所述源端口为参数,通过运算规则的运算,确定所述会话对应的转换后端口;
如果所述网络转发设备本地不存在具有目标五元组的第一会话表,基于所述目标五元组生成所述第一会话表,所述目标五元组包括所述转换后网络协议地址、所述转换后端口、所述目的网络协议地址、所述目的端口以及所述网络传输协议;
如果所述网络转发设备本地存在具有目标五元组的第一会话表,基于所述第一会话表生成第二会话表,所述第二会话表中包括源硬件地址和所述会话地址,所述源硬件地址为客户端本地的硬件地址。
2.根据权利要求1所述的方法,其特征在于,所述如果所述网络转发设备本地存在具有目标五元组的第一会话表,基于所述第一会话表生成第二会话表,包括:
如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数不超过预设的阈值,基于所述第一会话表生成第二会话表。
3.根据权利要求2所述的方法,其特征在于,所述复用次数通过所述第二会话表中记录的地址个数来确定,所述地址个数表示所述第二会话表中具有的会话组地址的个数。
4.根据权利要求1所述的方法,其特征在于,还包括:
如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数超过预设的阈值,向客户端发送重置报文。
5.一种确定转换后端口的装置,其特征在于,应用于网络转发设备,包括:
获取单元,用于获取会话对应的源网络协议地址、源端口、目的网络协议地址、目的端口以及网络传输协议,所述会话用于客户端与服务器之间进行通信;
确定单元,用于确定转换后网络协议地址,以所述源网络协议地址和所述源端口为参数,通过运算规则的运算,确定所述会话对应的转换后端口;
第一生成单元,用于如果所述网络转发设备本地不存在具有目标五元组的第一会话表,基于所述目标五元组生成所述第一会话表,所述目标五元组包括所述转换后网络协议地址、所述转换后端口、所述目的网络协议地址、所述目的端口以及所述网络传输协议;
第二生成单元,用于如果所述网络转发设备本地存在具有目标五元组的第一会话表,基于所述第一会话表生成第二会话表,所述第二会话表中包括源硬件地址和所述会话地址,所述源硬件地址为客户端本地的硬件地址。
6.根据权利要求5所述的装置,其特征在于,所述第二生成单元还用于如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数不超过预设的阈值,基于所述第一会话表生成第二会话表。
7.根据权利要求6所述的装置,其特征在于,所述复用次数通过所述第二会话表中记录的地址个数来确定,所述地址个数表示所述第二会话表中具有的会话组地址的个数。
8.根据权利要求5所述的装置,其特征在于,还包括:
发送单元,用于如果所述网络转发设备本地存在具有目标五元组的第一会话表且所述转换后端口的复用次数超过预设的阈值,向客户端发送重置报文。
CN201611033880.8A 2016-11-22 2016-11-22 一种确定转换后端口的方法和装置 Active CN106789666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611033880.8A CN106789666B (zh) 2016-11-22 2016-11-22 一种确定转换后端口的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611033880.8A CN106789666B (zh) 2016-11-22 2016-11-22 一种确定转换后端口的方法和装置

Publications (2)

Publication Number Publication Date
CN106789666A CN106789666A (zh) 2017-05-31
CN106789666B true CN106789666B (zh) 2020-05-08

Family

ID=58971953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611033880.8A Active CN106789666B (zh) 2016-11-22 2016-11-22 一种确定转换后端口的方法和装置

Country Status (1)

Country Link
CN (1) CN106789666B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111131539B (zh) * 2019-12-23 2022-06-28 杭州迪普科技股份有限公司 报文转发方法及装置
CN112104565B (zh) * 2020-09-15 2024-03-29 东软集团股份有限公司 一种实现报文转发的方法、系统及设备
CN115834528A (zh) * 2022-11-23 2023-03-21 东软集团股份有限公司 数据转发方法、装置、电子设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011103820A2 (zh) * 2011-04-15 2011-09-01 华为技术有限公司 一种网络地址转换方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1235368C (zh) * 2002-08-21 2006-01-04 华为技术有限公司 在pat模式下同时支持一对一和多对多的地址转换方法
CN101150505B (zh) * 2007-07-31 2010-06-16 杭州华三通信技术有限公司 通过网络地址转换转发数据流的方法和装置
CN101335770B (zh) * 2008-08-06 2011-04-20 杭州华三通信技术有限公司 一种网络地址端口转换方法和装置
CN104468412B (zh) * 2014-12-04 2017-10-31 东软集团股份有限公司 基于rss的网络会话数据包分发方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011103820A2 (zh) * 2011-04-15 2011-09-01 华为技术有限公司 一种网络地址转换方法及装置

Also Published As

Publication number Publication date
CN106789666A (zh) 2017-05-31

Similar Documents

Publication Publication Date Title
US7797419B2 (en) Method of determining intra-session event correlation across network address translation devices
US10469532B2 (en) Preventing DNS cache poisoning
US20140294009A1 (en) Communication apparatus, communication system, control method of communication apparatus and program
CN109525684B (zh) 报文转发方法和装置
US10397111B2 (en) Communication device, communication system, and communication method
CN107682470B (zh) 一种检测nat地址池中公网ip可用性的方法及装置
CN107241453B (zh) 一种网络地址转换映射保活方法及装置
US8082333B2 (en) DHCP proxy for static host
CN106789666B (zh) 一种确定转换后端口的方法和装置
CN105959282A (zh) Dhcp攻击的防护方法及装置
US20120198091A1 (en) Network system, control apparatus and network apparatus
WO2010064439A1 (ja) 識別情報管理システム、識別情報の生成方法及び管理方法、端末、並びに生成及び管理プログラム
CN109495369B (zh) 一种报文转发方法及装置
WO2014142258A1 (ja) 通信システム、制御装置、アドレス割当方法及びプログラム
US9992159B2 (en) Communication information detecting device and communication information detecting method
EP3016423A1 (en) Network safety monitoring method and system
US20150229520A1 (en) Network monitoring system, communication device, network management method
EP2690832B1 (en) Communication device, communication system, and communication method
Rajput et al. The helping protocol “DHCP”
WO2016177185A1 (zh) 媒体访问控制mac地址的处理方法及装置
US10432580B2 (en) Message processing method, apparatus, and system
US20120047271A1 (en) Network address translation device and method of passing data packets through the network address translation device
KR20120072058A (ko) 가상 노드 식별 장치 및 방법
WO2015184979A1 (zh) 处理报文、发送信息、接收信息的方法及装置
CN112187963A (zh) 分布式哈希表实现方法、计算机装置和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant