发明内容
提供一种报文处理的方法和相关装置,可以减少现有技术中网络侧的接口板与NAT业务处理板间的通信通道的负担,减少NAT业务处理板的负荷;或减少SDN中转发设备与SDN中控制器间的通信通道的负担,减少SDN中控制器的负荷。
第一方面,提供一种报文处理的方法,包括:
第一装置接收配置指令,所述配置指令用于配置所述第一装置工作在网络侧;
所述第一装置存储预判表,所述预判表用于所述第一装置在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,所述全局反向NAT流表存储于第二装置,所述全局反向NAT流表用于指导对反向流进行反向NAT替换,所述全局反向NAT流表中的表项对应于全局正向NAT流表中的表项,所述全局正向NAT流表用于指导对正向流进行正向NAT替换,所述正向流是指由用户侧发往网络侧方向的流,所述反向流是指由网络侧发往用户侧方向的流;
所述第一装置接收反向流;
所述第一装置根据所述反向流的特征信息判断所述反向流是否与所述预判表中的表项匹配,如果不匹配,则确定所述反向流在所述全局反向NAT流表中没有匹配项,所述第一装置丢弃所述反向流的报文。
在所述第一方面的第一种可能的实现方式中,其中所述预判表是一个哈希表,其表项的存储地址是对所述全局反向NAT流表的表项键值进行哈希计算后的结果,所述键值包括五元组,其表项的内容用于标识所述表项是否在所述全局反向NAT流表中有对应的表项。
根据所述第一方面,或所述第一种可能的实现方式,提供了第二种可能的实现方式,在所述第一装置接收到反向流之后,以及在所述第一装置根据所述反向流的特征信息判断所述反向流是否与所述预判表中的表项匹配之前,所述方法还包括:
所述第一装置根据所述反向流的特征信息判断所述反向流是否与局部反向NAT流表中的表项匹配,所述局部反向NAT流表存储于所述第一装置上,所述局部反向NAT流表存储的是所述第一装置接收到的,且在所述全局反向NAT流表中有对应表项的反向流的反向NAT替换信息,如果匹配,则转发所述反向流的报文;如果不匹配,则判断所述反向流是否与所述预判表中的表项匹配。
根据所述第一方面,或所述第一种可能的实现方式,提供了第三种可能的实现方式,所述方法还包括:
如果所述第一装置根据所述反向流的特征信息判断所述反向流与所述预判表中的表项匹配,则所述第一装置进一步判断所述反向流是否与局部反向NAT流表中的表项匹配,如果所述反向流与所述局部反向NAT流表中的表项匹配,则转发所述反向流,所述局部反向NAT流表存储于所述第一装置上,所述局部反向NAT流表存储的是所述第一装置接收到的,且在所述全局反向NAT流表中有对应表项的反向流的反向NAT替换信息。
根据所述第一方面,或所述第一方面的第一种可能的实现方式,或所述第二种可能的实现方式,或所述第三种可能的实现方式,提供了第四种可能的实现方式,其中所述第一装置的类型包括网络设备的接口板,或SDN中的转发设备;
当第一装置的类型为网络设备的接口板时,所述第二装置是所述网络设备的NAT业务处理板;
当第一装置的类型为SDN中的转发设备时,所述第二装置是所述SDN中的控制器。
第二方面,提供一种网络设备的接口板,包括:
配置单元,用于接收配置指令,所述配置指令用于配置所述接口板工作在网络侧;
存储单元,用于存储预判表,所述预判表用于在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,所述全局反向NAT流表存储于NAT业务处理板,所述NAT业务处理板在所述网络设备中,所述全局反向NAT流表用于指导对反向流进行反向NAT替换,所述全局反向NAT流表中的表项对应于全局正向NAT流表中的表项,所述全局正向NAT流表用于指导对正向流进行正向NAT替换,所述正向流是指由用户侧发往网络侧方向的流,所述反向流是指由网络侧发往用户侧方向的流;
接收单元,用于接收反向流;
处理单元,用于根据所述反向流的特征信息判断所述反向流是否与所述预判表中的表项匹配,如果不匹配,则确定所述反向流在所述全局反向NAT流表中没有匹配项,丢弃所述反向流的报文。
在所述第二方面的第一种可能的实现方式中,其中所述预判表是一个哈希表,其表项的存储地址是对所述全局反向NAT流表的表项键值进行哈希计算后的结果,所述键值包括五元组,其表项的内容用于标识所述表项是否在所述全局反向NAT流表中有对应的表项。
第三方面,提供一种网络设备,包括:
如所述第二方面或所述第二方面的第一种可能的实现方式中的接口板,NAT业务处理板,通信通道;
所述NAT业务处理板中存储所述全局反向NAT流表;
所述通信通道用于连接所述接口板与所述NAT业务处理板。
第四方面,提供一种SDN中的转发设备,包括:
配置单元,用于接收配置指令,所述配置指令用于配置所述转发设备工作在网络侧;
存储单元,用于存储预判表,所述预判表用于在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,所述全局反向NAT流表存储于所述SDN中的控制器,所述全局反向NAT流表用于指导对反向流进行反向NAT替换,所述全局反向NAT流表中的表项对应于全局正向NAT流表中的表项,所述全局正向NAT流表用于指导对正向流进行正向NAT替换,所述正向流是指由用户侧发往网络侧方向的流,所述反向流是指由网络侧发往用户侧方向的流;
接收单元,用于接收反向流;
处理单元,用于根据所述反向流的特征信息判断所述反向流是否与所述预判表中的表项匹配,如果不匹配,则确定所述反向流在所述全局反向NAT流表中没有匹配项,丢弃所述反向流的报文。
在所述第四方面的第一种可能的实现方式中,其中所述预判表是一个哈希表,其表项的存储地址是对所述全局反向NAT流表的表项键值进行哈希计算后的结果,所述键值包括五元组,其表项的内容用于标识所述表项是否在所述全局反向NAT流表中有对应的表项。
本发明实施例提供的报文处理的方法和相关装置,通过工作于网络侧的第一装置存储预判表,所述预判表用于所述第一装置在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,当第一装置收到反向流后,如果根据所述反向流的特征信息判断所述反向流在预判表中没有匹配项,则确定所述反向流在所述全局反向NAT流表中没有匹配项,所述第一装置丢弃所述反向流的报文,从而减少攻击流发送到NAT控制装置(如NAT业务处理板或SDN中的控制器)的机率,减少所述第一装置到NAT控制装置间通信通道的拥塞,减少NAT控制装置的工作负荷。
具体实施方式
下面通过附图和实施例,对本发明实施例的技术方案做进一步的详细描述。
如图1所示,本发明实施例提供一种报文处理的方法,包括:
101、第一装置接收配置指令,所述配置指令用于配置所述第一装置工作在网络侧。
102、所述第一装置存储预判表,所述预判表用于所述第一装置在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,所述全局反向NAT流表存储于第二装置,所述全局反向NAT流表用于指导对反向流进行反向NAT替换,所述全局反向NAT流表中的表项对应于全局正向NAT流表中的表项,所述全局正向NAT流表用于指导对正向流进行正向NAT替换,所述正向流是指由用户侧发往网络侧方向的流,所述反向流是指由网络侧发往用户侧方向的流。
103、所述第一装置接收反向流。
104、所述第一装置根据所述反向流的特征信息判断所述反向流是否与所述预判表中的表项匹配,如果不匹配,则确定所述反向流在所述全局反向NAT流表中没有匹配项,所述第一装置丢弃所述反向流的报文。
在上述101中,网络侧是指与外网相连,用户侧是指与内网相连。通常,外网是指公网,内网是指私网。
举例来说,第一装置可以是网络设备中的接口板,所述网络设备是具有NAT转换功能的设备;第一装置也可以是SDN中的转发设备,该转发设备是具有NAT转换功能的设备,如路由器或交换机等。
以第一装置是网络设备中的接口板举例,可以通过向该接口板下发配置指令,所述配置指令用于将所述第一装置配置为工作在网络侧,从而将所述第一装置配置为工作在网络侧。
在上述102中,举例来说,当所述第一装置的类型是网络设备中的接口板时,所述第二装置是所述网络设备的NAT业务处理板;当第一装置的类型是SDN中的转发设备时,所述第二装置是所述SDN中的控制器。
以下以第一装置的类型是网络设备中的接口板、第二装置是所述网络设备的NAT业务处理板为例进行说明,应理解,所述方法同样适用于第一装置的类型是SDN中的转发设备、第二装置是所述SDN中的控制器的情况。
为便于理解,下面以第一装置是所述网络设备中的接口板B举例说明。
网络设备的用户侧的接口板在收到正向流的首个报文时,会将该正向流的首个报文发送给所述网络设备的NAT业务处理板,NAT业务处理板从地址池中分配公网IP地址和端口,并在全局正向NAT流表中生成表项,该表项的内容用于指导对正向流进行正向NAT替换,即将正向流报文中的源IP地址和源端口替换为公网IP地址和端口。举例来说,全局正向NAT流表的键值可以包括五元组(即源IP地址、目的IP地址、源端口、目的端口和协议号)。
例如,用户侧的接口板A收到由位于内网的用户终端发往位于外网的服务器的正向流1的首个报文,用户终端的IP地址为10.1.1.1,服务器的IP地址为100.1.1.1,该正向流1的首个报文的特征信息是五元组,其内容为:
对应正向流1的全局正向NAT流表的表项,如表1所示:
表1全局正向NAT流表举例
其中,50.1.1.1是NAT业务处理板从地址池中分配的公网I P地址,100是NAT业务处理板分配的端口号。NAT业务处理板在全局正向NAT流表中生成了对应于流1的表项后,将该表项下发到用户侧的接口板A上的局部正向NAT流表中,以便流1的首个报文之后的报文到达用户侧的接口板A上时,接口板A根据流1的特征信息在接口板A上查到局部正向NAT流表的匹配表项,从而在接口板A上进行NAT替换并转发,而不必上送到NAT业务处理板上进行处理。
NAT业务处理板中,同时还保存了对应于全局正向NAT流表的全局反向NAT流表,所述全局反向NAT流表用于指导对反向流进行反向NAT替换,即将反向流中的目的IP地址和目的端口号进行替换。例如对应于正向流1,全局反向NAT流表中保存了其反向流1′的NAT替换信息,反向流1′是当服务器收到正向流1后回应用户终端时发送的流。
例如,对应反向流1′的全局反向NAT流表的表项,如表2所示:
表2全局反向NAT流表举例
全局反向NAT流表中的键值可以包括五元组。参考表2,NAT业务处理板在收到反向流1′的特征信息后,根据该特征信息在全局反向NAT流表中查找到对应的表项,查到需要将反向流1′的目的IP地址替换为10.1.1.1,目的端口号替换为2000,从而使得反向流1′得以发送到IP地址为10.1.1.1的用户终端上。
在全局反向NAT流表中没有匹配表项的反向流,被视为是攻击流,因为这种反向流不是用户终端发起的正向流的应答,即不是由正向流所触发的反向流。上述举例中的反向流1′不是攻击流。假设存在一条反向流2′,其报文中的特征信息(如五元组信息)在全局反向NAT流表中没有匹配表项,则反向流2′是攻击流。
所述网络设备中的接口板B,在上述101中被配置为工作于网络侧。接口板B上存储预判表,该预判表的作用是,当接口板B收到反向流后,根据反向流的特征信息(如五元组信息),在接口板B上预判反向流是否在所述全局反向NAT流表中是否有匹配项,而无需将反向流的报文中的特征信息发送给NAT业务处理板。应理解,通常网络设备有多个网络侧接口板,由于无法预测反向流是由哪个网络侧接口板接收的,因此在较佳实施方式中,应在网络设备的所有的网络侧接口板上存储预判表。
应理解,所述预判表中含有全局反向NAT流表中的键值信息,从而可以达到上述预判的作用。
举例来说,为提高查找预判表的速度,预判表可以设计成一个哈希表,其表项的存储地址是对所述全局反向NAT流表的表项键值进行哈希计算后的结果,所述键值包括五元组,其表项的内容用于标识所述表项是否在所述全局反向NAT流表中有对应的表项。例如,哈希表中的某一个表项的内容为0时,表示该表项在所述全局反向NAT流表中没有对应的表项;当该表项内容为1时,表示该表项在所述全局反向NAT流表中有对应的表项。又举例来说,当该表项内容为1000时,表示该表项在所述全局反向NAT流表中有1000个对应表项。上述哈希表方式的预判表,具有占用空间小,查找快速的优点。
在上述103中,举例来说,所述接口板B接收到服务器向用户终端发起的一条反向流2′,其报文中的特征信息(如五元组)为:
在上述104中,举例来说,所述接口板B根据反向流2′的特征信息(如五元组)查找预判表,由于反向流2′的特征信息在预判表中没有匹配,因此确定反向流2′在所述全局反向NAT流表中没有匹配项,所述接口板B丢弃反向流的报文。
下面具体说明如果上述102中的预判表是哈希表的话,所述接口板B如何进行判断:
接口板B将反向流2′的特征信息(如五元组)进行哈希计算,得到预判表中一个表项的地址,进而读取该表项的内容,由于反向流2′的特征信息与所述全局反向NAT流表中的键值没有匹配项,因此该表项的内容表示该表项在所述全局反向NAT流表中没有对应的表项(例如该表项的值为0),由此接口板B判断反向流2′为攻击流,进行丢弃反向流2′的报文,而不是将反向流2′的特征信息发送到NAT业务处理板,由NAT业务处理板判断其是否为攻击报文,因此可以减少攻击流发送到NAT业务处理板的机率,减少所述接口板B到NAT业务处理板间通信通道拥塞,减少NAT业务处理板的工作负荷。
举例来说,所述接口板B上还可以存储局部反向NAT流表,所述局部反向NAT流表存储的是接口板B接收到的,且在所述全局反向NAT流表中有对应表项的反向流的反向NAT替换信息。存储局部反向NAT流表的作用是,当所述接口板B收到一条由正向流触发的反向流的首个报文之后的报文后,可以在所述接口板B上进行反向NAT替换,不必上送到NAT业务处理板处理。应理解,由于所述接口板B无法提前预计其会收到哪些反向流,因此所述接口板B中的局部反向NAT流表中的表项是在所述接口板B收到由正向流触发的反向流的首个报文后生成的,这与全局反向NAT流表中的表项是在收到正向流的首个报文后即生成是不同的。
举例来说,在上述103后,所述方法进一步包括:
103a、所述第一装置根据所述反向流的特征信息判断所述反向流是否与局部反向NAT流表中的表项匹配,如果匹配,则转发所述反向流的报文;如果不匹配,则执行上述104。
这样当大多数反向流是正常流(即由正向流所触发的反向流)时,由于先判断反向流是否与所述局部反向NAT流表中的表项匹配,如果匹配则转发,可以提高正常反向流的转发效率。为便于后续描述,我们称为方式一。
又举例来说,在上述104中,如果所述第一装置根据所述反向流的特征信息判断所述反向流与所述预判表中的表项匹配,则进一步执行105:
105、所述第一装置判断所述反向流是否与局部反向NAT流表中的表项匹配,如果所述反向流与所述局部反向NAT流表中的表项匹配,则转发所述反向流。
这样当大多数反向流是攻击流(即不是由正向流所触发的反向流)时,由于先判断反向流是否与所述预判表中的表项匹配,如果不匹配则丢弃,如果匹配,再进一步判断是否与局部反向NAT流表中的表项匹配,可以提高对攻击流的识别和丢弃效率。为便于后续描述,我们称为方式二。
举例来说,可以设置一个统计计数器,用于统计攻击流占正常流的比例,当该比例超出预先设置的阈值时,优选执行方式二;当该比例低于或等于预先设置的阈值时时,优选执行方式一。
应理解,本发明实施例的方法,还可以适用于这样的情形:第一装置是网络设备接口板的转发平面,第二装置是网络设备接口板的控制平面。
本发明实施例提供的报文处理的方法,通过工作于网络侧的第一装置存储预判表,所述预判表用于所述第一装置在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,当第一装置收到反向流后,如果根据所述反向流的特征信息判断所述反向流在预判表中没有匹配项,则确定所述反向流在所述全局反向NAT流表中没有匹配项,所述第一装置丢弃所述反向流的报文,从而减少攻击流发送到NAT控制装置(如NAT业务处理板或SDN中的控制器)的机率,减少所述第一装置到NAT控制装置间通信通道的拥塞,减少NAT控制装置的工作负荷。
请参考图2,本发明的一个实施例提供一种网络设备的接口板,包括:
配置单元201,用于接收配置指令,所述配置指令用于配置所述接口板工作在网络侧。
存储单元202,用于存储预判表,所述预判表用于在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,所述全局反向NAT流表存储于NAT业务处理板,所述NAT业务处理板在所述网络设备中,所述全局反向NAT流表用于指导对反向流进行反向NAT替换,所述全局反向NAT流表中的表项对应于全局正向NAT流表中的表项,所述全局正向NAT流表用于指导对正向流进行正向NAT替换,所述正向流是指由用户侧发往网络侧方向的流,所述反向流是指由网络侧发往用户侧方向的流。
接收单元203,用于接收反向流。
处理单元204,用于根据所述反向流的特征信息判断所述反向流是否与所述预判表中的表项匹配,如果不匹配,则确定所述反向流在所述全局反向NAT流表中没有匹配项,丢弃所述反向流的报文。
举例来说,其中所述预判表是一个哈希表,其表项的存储地址是对所述全局反向NAT流表的表项键值进行哈希计算后的结果,所述键值包括五元组,其表项的内容用于标识所述表项是否在所述全局反向NAT流表中有对应的表项。
本发明实施例提供的网络设备的接口板,通过将网络侧的接口板配置为工作于网络侧,在所述接口板上存储预判表,所述预判表用于所述第一装置在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,当所述接口板收到反向流后,如果根据所述反向流的特征信息判断所述反向流在预判表中没有匹配项,则确定所述反向流在所述全局反向NAT流表中没有匹配项,所述接口板丢弃所述反向流的报文,从而减少攻击流发送所述网络设备的NAT业务处理板的机率,减少所述接口板到所述网络设备的NAT业务处理板间通信通道的拥塞,减少所述网络设备的NAT业务处理板的工作负荷。
请参考图3,本发明的一个实施例提供一种网络设备,包括:
如图2所述的实施例中的接口板301,NAT业务处理板302,通信通道303。
所述NAT业务处理板302中存储所述全局反向NAT流表。
所述通信通道303用于连接所述接口板301与所述NAT业务处理板302。
图3中示出了所述网络设备中包括1个接口板301的情形,应理解,所述网络设备可以包括多个如接口板301的接口板,接口板的数量受限于所述网络设备的槽位数,各接口板与所述NAT业务处理板302的连接均通过所述通信通道303。
本发明实施例提供的网络设备,可以减少攻击流从接口板发送到NAT业务处理板的机率,减少所述接口板到所述NAT业务处理板间通信通道的拥塞,减少所述NAT业务处理板的工作负荷。
请参考图4,本发明的一个实施例提供一种SDN中的转发设备,包括:
配置单元401,用于接收配置指令,所述配置指令用于配置所述转发设备工作在网络侧;
存储单元402,用于存储预判表,所述预判表用于在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,所述全局反向NAT流表存储于所述SDN中的控制器,所述全局反向NAT流表用于指导对反向流进行反向NAT替换,所述全局反向NAT流表中的表项对应于全局正向NAT流表中的表项,所述全局正向NAT流表用于指导对正向流进行正向NAT替换,所述正向流是指由用户侧发往网络侧方向的流,所述反向流是指由网络侧发往用户侧方向的流;
接收单元403,用于接收反向流;
处理单元404,用于根据所述反向流的特征信息判断所述反向流是否与所述预判表中的表项匹配,如果不匹配,则确定所述反向流在所述全局反向NAT流表中没有匹配项,所丢弃所述反向流的报文。
举例来说,其中所述预判表是一个哈希表,其表项的存储地址是对所述全局反向NAT流表的表项键值进行哈希计算后的结果,所述键值包括五元组,其表项的内容用于标识所述表项是否在所述全局反向NAT流表中有对应的表项。
本发明实施例提供的SDN中的转发设备,通过将所述转发设备配置为工作于网络侧,在所述转发设备上存储预判表,所述预判表用于所述转发设备在收到反向流后,根据所述反向流的特征信息判断所述反向流在全局反向NAT流表中是否有匹配项,当所述转发设备收到反向流后,如果根据所述反向流的特征信息判断所述反向流在预判表中没有匹配项,则确定所述反向流在所述全局反向NAT流表中没有匹配项,所述转发设备丢弃所述反向流的报文,从而减少攻击流发送给所述SDN中的控制器的机率,减少所述转发设备到所述SDN中的控制器间通信通道的拥塞,减少所述SDN中的控制器的工作负荷。
举例来说,图2至图4所示实施例中的单元可以合并为一个或者多个单元。
又举例来说,所述单元或子单元均可通过硬件来实现。本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,举例来说,存储介质可以包括:只读存储器、随机读取存储器、磁盘或光盘等。
以上对本发明实施例所提供的报文处理的方法和相关装置进行了详细介绍,但以上实施例的说明只是用于帮助理解本发明的方法及其核心思想,不应理解为对本发明的限制。本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。