著录项信息
专利名称 | 一种报文处理方法和报文处理设备 |
申请号 | CN201310733791.4 | 申请日期 | 2013-12-26 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2015-07-01 | 公开/公告号 | CN104754066A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/12 | IPC分类号 | H04L29/12;H04L12/745查看分类表>
|
申请人 | 华为技术有限公司 | 申请人地址 | 广东省深圳市龙岗区坂田华为总部***
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华为技术有限公司 | 当前权利人 | 华为技术有限公司 |
发明人 | 王广伟 |
代理机构 | 深圳市深佳知识产权代理事务所(普通合伙) | 代理人 | 王仲凯 |
摘要
本申请公开了一种报文处理方法和报文处理设备,用于实现匹配条件对IP地址的自主学习,适用于以报文特征为静态参数和动态参数的多种场景。本发明实施例方法包括:获取IP报文,判断获取到的IP报文是否为域名系统DNS响应报文;若IP报文是DNS响应报文,从IP报文中解析出用户终端请求的域名;判断用户终端请求的域名是否存在于控制策略的匹配条件中,匹配条件包括需要按照控制策略的策略动作进行报文控制的域名;若用户终端请求的域名存在于匹配条件中,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,则匹配条件还包括添加的IP地址。
1.一种报文处理方法,其特征在于,包括:
获取互联网协议IP报文,判断获取到的IP报文是否为域名系统DNS响应报文,所述DNS响应报文由DNS服务器根据用户终端发送的DNS请求报文向所述用户终端发送;
若所述IP报文是DNS响应报文,从所述IP报文中解析出所述用户终端请求的域名;
当所述IP报文是DNS响应报文时,判断所述IP报文中的所述用户终端请求的域名是否存在于控制策略的匹配条件中,所述匹配条件包括需要按照所述控制策略的策略动作进行报文控制的域名,所述控制策略包括所述匹配条件和所述匹配条件相对应的策略动作;
若所述用户终端请求的域名存在于所述匹配条件中,判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中;
若所述IP报文中与所述用户终端请求的域名对应的IP地址没有存在于所述匹配条件中,将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中,则所述匹配条件还包括添加的IP地址,以实现根据所述匹配条件中添加的IP地址和所述匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理;将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之后,当所述IP报文中还携带生存时间TTL时,在所述匹配条件中添加所述IP报文中携带的TTL,添加的TTL与添加的IP地址相对应;
若所述IP报文中与所述用户终端请求的域名对应的IP地址已经存在于所述匹配条件中,当所述IP报文中还携带TTL时,根据预置的TTL更新规则确定是否对所述匹配条件中包括的所述IP地址对应的TTL进行更新。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述IP报文不是所述DNS响应报文,从所述IP报文中获取所述IP报文中携带的IP地址;
判断所述IP报文中携带的IP地址是否存在于所述匹配条件中;
若所述IP报文中携带的IP地址存在于所述匹配条件中,按照所述匹配条件对应的策略动作对所述IP报文进行报文处理。
3.根据权利要求2所述的方法,其特征在于,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中的各个域名分别对应有策略动作;
所述按照所述匹配条件对应的策略动作对所述IP报文进行报文处理,包括:
从所述匹配条件中获取所述IP报文中携带的IP地址对应的域名;
从所述控制策略中获取与获取到的所述域名对应的策略动作;
按照获取到的所述策略动作对所述IP报文进行报文处理。
4.根据权利要求2所述的方法,其特征在于,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中添加的IP地址分别对应有策略动作;
所述按照所述匹配条件对应的策略动作对所述IP报文进行报文处理,包括:
从所述控制策略中获取与所述IP报文中携带的IP地址对应的策略动作;
按照获取到的所述策略动作对所述IP报文进行报文处理。
5.根据权利要求1所述的方法,其特征在于,所述在所述匹配条件中添加所述IP报文中携带的TTL之后,或根据预置的TTL更新规则确定是否对所述匹配条件中包括的所述IP地址对应的TTL进行更新之后,还包括:
判断所述匹配条件中包括的IP地址从被添加到所述匹配条件中直到当前时间组成的时间段是否超过所述匹配条件中所述IP地址对应的TTL;
若是,将超过对应TTL的IP地址从所述匹配条件中删除。
6.根据权利要求1至4中任一项所述的方法,其特征在于,所述匹配条件中的域名以域名哈希表的方式存储;
所述匹配条件中添加的IP地址以IP哈希表的方式存储;
判断所述用户终端请求的域名是否存在于控制策略的匹配条件中,包括:
对从所述IP报文中解析出的域名进行哈希运算,判断运算结果与存储的域名的哈希值是否相同,若相同,则所述用户终端请求的域名存在于所述匹配条件中,若不相同,则所述用户终端请求的域名没有存在于所述匹配条件中。
7.一种报文处理设备,其特征在于,包括:
DNS判断模块,用于获取互联网协议IP报文,判断获取到的IP报文是否为域名系统DNS响应报文,所述DNS响应报文由DNS服务器根据用户终端发送的DNS请求报文向所述用户终端发送;
域名解析模块,用于当所述DNS判断模块获取到的IP报文是所述DNS响应报文时,从所述IP报文中解析出所述用户终端请求的域名;
域名匹配模块,用于所述IP报文是DNS响应报文时,判断所述域名解析模块解析出的所述IP报文中的用户终端请求的域名是否存在于控制策略的匹配条件中,所述匹配条件包括需要按照所述控制策略进行报文控制的域名,所述控制策略包括所述匹配条件和所述匹配条件相对应的策略动作;
第二IP地址判断模块,用于当所述域名匹配模块确定出用户终端请求的域名存在于所述匹配条件中时,判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中,当所述IP报文中与所述用户终端请求的域名对应的IP地址没有存在于所述匹配条件中时,触发执行所述匹配条件配置模块;
匹配条件配置模块,用于将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中,则所述匹配条件还包括添加的IP地址,以实现根据所述匹配条件中添加的IP地址和所述匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理;
TTL保存模块,用于所述匹配条件配置模块将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之后,当所述IP报文中还携带生存时间TTL时,在所述匹配条件中添加所述IP报文中携带的TTL,添加的TTL与添加的IP地址相对应;
TTL更新模块,用于所述第二IP地址判断模块判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中之后,若所述IP报文中与所述用户终端请求的域名对应的IP地址已经存在于所述匹配条件中,当所述IP报文中还携带生存TTL时,根据预置的TTL更新规则确定是否对所述匹配条件中包括所述IP地址对应的TTL进行更新。
8.根据权利要求7所述的设备,其特征在于,所述报文处理设备还包括:
IP地址获取模块,用于当所述DNS判断模块获取到的IP报文不是所述DNS响应报文时,从所述IP报文中获取所述IP报文中携带的IP地址;
第一IP地址判断模块,用于判断所述IP地址获取模块获取到的IP报文中携带的IP地址是否存在于所述匹配条件中;
报文处理模块,用于当所述第一IP地址判断模块确定出IP报文中携带的IP地址存在于所述匹配条件中时,按照所述匹配条件对应的策略动作对所述IP报文进行报文处理。
9.根据权利要求8所述的设备,其特征在于,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中的各个域名分别对应有策略动作;
所述报文处理模块,包括:
域名获取子模块,用于从所述匹配条件中获取所述IP报文中携带的IP地址对应的域名;
第一策略动作获取子模块,用于从所述控制策略中获取与所述域名获取子模块获取到的所述域名对应的策略动作;
报文处理子模块,用于按照第一策略动作获取子模块获取到的所述策略动作对所述IP报文进行报文处理。
10.根据权利要求8所述的设备,其特征在于,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中添加的IP地址分别对应有策略动作;
所述报文处理模块,包括:
第二策略动作获取子模块,用于从所述控制策略中获取与IP报文中携带的IP地址对应的策略动作;
报文处理子模块,用于按照第二策略动作获取子模块获取到的所述策略动作对所述IP报文进行报文处理。
11.根据权利要求7所述的设备,其特征在于,所述报文处理设备,还包括:
TTL判断模块,用于TTL保存模块在所述匹配条件中添加所述IP报文中携带的TTL,或TTL更新模块根据预置的TTL更新规则确定是否对所述匹配条件中包括的所述IP地址对应的TTL进行更新之后,判断所述匹配条件中包括的IP地址从被添加到所述匹配条件中到当前时间组成的时间段是否超过所述匹配条件中所述IP地址对应的TTL;
IP地址清除模块,用于当所述TTL判断模块确定出匹配条件中包括的IP地址从被添加到所述匹配条件中直到当前时间组成的时间段超过所述匹配条件中添加的IP地址对应的TTL时,将超过对应TTL的IP地址从所述匹配条件中删除。
12.根据权利要求7至10中任一项所述的设备,其特征在于,所述匹配条件中的域名以域名哈希表的方式存储;
所述匹配条件中添加的IP地址以IP哈希表的方式存储;
所述域名匹配模块,具体用于对从所述域名解析模块解析出的域名进行哈希运算,判断运算结果与存储的域名的哈希值是否相同,若相同,则所述用户终端请求的域名存在于所述匹配条件中,若不相同,则所述用户终端请求的域名没有存在于所述匹配条件中。
一种报文处理方法和报文处理设备
技术领域
[0001] 本发明涉及计算机技术领域,尤其涉及一种报文处理方法和报文处理设备。
背景技术
[0002] 防火墙是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列网元的组合。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全策略控制出入网络的信息流,例如对出入网络的信息流进行控制,且本身具有较强的抗攻击能力。故防火墙通常用来提供信息安全服务,实现网络和信息安全的基础设施,保证了内部网络的安全。
[0003] 防火墙的一项重要功能就是根据用户的设置对经过防火墙的数据进行处理,对报文的优先级进行控制管理。报文优先级是在互联网协议(Internet Protocol,IP)报文头中的一段数据内容,这段数据的值即为IP报文的优先级的值。
[0004] 现有的对报文优先级的控制管理是基于报文而设置的控制策略来实现的,报文控制策略包含一系列的匹配条件和匹配后的策略动作(即对报文的处理方式)。网关设备预先设置控制策略的匹配条件和匹配后的处理方式,当报文的特征匹配了控制策略中设置的匹配条件时,根据设置好的策略动作对报文进行处理,例如,当报文的特征和匹配条件匹配时,修改报文的优先级。
[0005] 现有的控制策略设定的匹配条件主要是提前设定的静态固定参数,这都需要管理员必须提前知道应该将哪些静态固定参数设定为匹配条件,以需要操作的静态固定参数为IP地址为例,管理员必须提前设定哪些IP地址为匹配条件,否则无法进行匹配后的策略动作,例如管理员如果设定的匹配条件为IP地址处于1.1.1.1-1.1.1.254,其对应的处理方式是降低报文优先级,则用户发收的报文经过网关设备时,可以分析报文的IP地址特征,解析出IP地址等内容,并对解析出的IP地址与提前设定的匹配条件中的IP地址进行匹配。
[0006] 但是当报文的IP地址是离散分布时,若需要将离散的多个IP地址设定为匹配条件时,就需要管理员逐个的将多个IP地址分别添加到匹配条件中,需要添加的IP地址数量很多时,配置起来就很复杂,工作量大,不利于操作。另外,当报文的特征不是静态的固定参数,而是可能变化的参数时,比如需要基于IP地址进行管理的应用场景下,并且IP地址又是可能发生变化的,由于无法提前收集到匹配条件所需要的所有IP地址,也就无法准确的将需要的所有IP地址设定为匹配条件,则必然存在没有被设定为匹配条件但是真实场景中又需要进行控制报文优先级的IP地址,从而会导致报文控制失败。故现有的报文控制策略的只能适用于提前设定静态固定参数为匹配条件的应用场景,而对于无法提前获知报文特征的情况就无法进行报文控制,通用性不强。
发明内容
[0007] 本发明实施例提供了一种报文处理方法和报文处理设备,用于实现匹配条件对IP地址的自主学习,适用于以报文特征为静态参数和动态参数的多种场景。
[0008] 为解决上述技术问题,本发明实施例提供以下技术方案:
[0009] 第一方面,本发明实施例提供一种报文处理方法,包括:
[0010] 获取互联网协议IP报文,判断获取到的IP报文是否为域名系统DNS响应报文,所述DNS响应报文由DNS服务器根据用户终端发送的DNS请求报文向所述用户终端发送;
[0011] 若所述IP报文是DNS响应报文,从所述IP报文中解析出所述用户终端请求的域名;
[0012] 判断所述用户终端请求的域名是否存在于控制策略的匹配条件中,所述匹配条件包括需要按照所述控制策略的策略动作进行报文控制的域名,所述控制策略包括所述匹配条件和所述匹配条件相对应的策略动作;
[0013] 若所述用户终端请求的域名存在于所述匹配条件中,将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中,则所述匹配条件还包括添加的IP地址,以实现根据所述匹配条件中添加的IP地址和所述匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。
[0014] 结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
[0015] 若所述IP报文不是所述DNS响应报文,从所述IP报文中获取所述IP报文中携带的IP地址;
[0016] 判断所述IP报文中携带的IP地址是否存在于所述匹配条件中;
[0017] 若所述IP报文中携带的IP地址存在于所述匹配条件中,按照所述匹配条件对应的策略动作对所述IP报文进行报文处理。
[0018] 结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中的各个域名分别对应有策略动作;
[0019] 所述按照所述匹配条件对应的策略动作对所述IP报文进行报文处理,包括:
[0020] 从所述匹配条件中获取所述IP报文中携带的IP地址对应的域名;
[0021] 从所述控制策略中获取与获取到的所述域名对应的策略动作;
[0022] 按照获取到的所述策略动作对所述IP报文进行报文处理。
[0023] 结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中添加的IP地址分别对应有策略动作;
[0024] 所述按照所述匹配条件对应的策略动作对所述IP报文进行报文处理,包括:
[0025] 从所述控制策略中获取与所述IP报文中携带的IP地址对应的策略动作;
[0026] 按照获取到的所述策略动作对所述IP报文进行报文处理。
[0027] 结合第一方面、或第一方面的第一种或第二种或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之前,还包括:
[0028] 判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中;
[0029] 若所述IP报文中与所述用户终端请求的域名对应的IP地址没有存在于所述匹配条件中,触发执行如下步骤:将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中。
[0030] 结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中之后,还包括:
[0031] 若所述IP报文中与所述用户终端请求的域名对应的IP地址已经存在于所述匹配条件中,当所述IP报文中还携带TTL时,根据预置的TTL更新规则确定是否对所述匹配条件中添加的IP地址的TTL进行更新。
[0032] 结合第一方面,在第一方面的第六种可能的实现方式中,所述将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之后,还包括:
[0033] 当所述IP报文中还携带生存时间TTL时,保存所述匹配条件中添加的IP地址对应的TTL。
[0034] 结合第一方面的第五种或第六种可能的实现方式,在第一方面的第七种可能的实现方式中,所述保存所述匹配条件中添加的IP地址对应的TTL之后,或根据预置的TTL更新规则确定是否对所述匹配条件中添加的IP地址的TTL进行更新之后,还包括:
[0035] 判断所述匹配条件中添加的IP地址从被添加到所述匹配条件中直到当前时间组成的时间段是否超过所述匹配条件中添加的IP地址对应的TTL;
[0036] 若是,将超过对应TTL的IP地址从所述匹配条件中删除。
[0037] 结合第一方面、或第一方面的第一种或第二种或第三种可能的实现方式,在第一方面的第八种可能的实现方式中,所述匹配条件中的域名以域名哈希表的方式存储;
[0038] 所述匹配条件中添加的IP地址以IP哈希表的方式存储;
[0039] 判断所述用户终端请求的域名是否存在于控制策略的匹配条件中,包括:
[0040] 对从所述IP报文中解析出的域名进行哈希运算,判断运算结果与存储的域名的哈希值是否相同,若相同,则所述用户终端请求的域名存在于所述匹配条件中,若不相同,则所述用户终端请求的域名没有存在于所述匹配条件中。
[0041] 第二方面,本发明实施例还提供一种报文处理设备,包括:
[0042] DNS判断模块,用于获取互联网协议IP报文,判断获取到的IP报文是否为域名系统DNS响应报文,所述DNS响应报文由DNS服务器根据用户终端发送的DNS请求报文向所述用户终端发送;
[0043] 域名解析模块,用于当所述DNS判断模块获取到的IP报文是所述DNS响应报文时,从所述IP报文中解析出所述用户终端请求的域名;
[0044] 域名匹配模块,用于判断所述域名解析模块解析出的用户终端请求的域名是否存在于控制策略的匹配条件中,所述匹配条件包括需要按照所述控制策略进行报文控制的域名,所述控制策略包括所述匹配条件和所述匹配条件相对应的策略动作;
[0045] 匹配条件配置模块,用于当所述域名匹配模块确定出用户终端请求的域名存在于所述匹配条件中时,将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中,则所述匹配条件还包括添加的IP地址,以实现根据所述匹配条件中添加的IP地址和所述匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。
[0046] 结合第二方面,在第二方面的第一种可能的实现方式中,所述报文处理设备还包括:
[0047] IP地址获取模块,用于当所述DNS判断模块获取到的IP报文不是所述DNS响应报文时,从所述IP报文中获取所述IP报文中携带的IP地址;
[0048] 第一IP地址判断模块,用于判断所述IP地址获取模块获取到的IP报文中携带的IP地址是否存在于所述匹配条件中;
[0049] 报文处理模块,用于当所述第一IP地址判断模块确定出IP报文中携带的IP地址存在于所述匹配条件中时,按照所述匹配条件对应的策略动作对所述IP报文进行报文处理。
[0050] 结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中的各个域名分别对应有策略动作;
[0051] 所述报文处理模块,包括:
[0052] 域名获取子模块,用于从所述匹配条件中获取所述IP报文中携带的IP地址对应的域名;
[0053] 第一策略动作获取子模块,用于从所述控制策略中获取与所述域名获取子模块获取到的所述域名对应的策略动作;
[0054] 报文处理子模块,用于按照第一策略动作获取子模块获取到的所述策略动作对所述IP报文进行报文处理。
[0055] 结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中添加的IP地址分别对应有策略动作;
[0056] 所述报文处理模块,包括:
[0057] 第二策略动作获取子模块,用于从所述控制策略中获取与IP报文中携带的IP地址对应的策略动作;
[0058] 报文处理子模块,用于按照第二策略动作获取子模块获取到的所述策略动作对所述IP报文进行报文处理。
[0059] 结合第二方面或第二方面的第一种或第二种或第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述报文处理设备,还包括:
[0060] 第二IP地址判断模块,用于所述匹配条件配置模块将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之前,判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中,当所述IP报文中与所述用户终端请求的域名对应的IP地址没有存在于所述匹配条件中时,触发执行所述匹配条件配置模块。
[0061] 结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述报文处理设备,还包括:
[0062] TTL更新模块,用于所述第二IP地址判断模块判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中之后,若所述IP报文中与所述用户终端请求的域名对应的IP地址已经存在于所述匹配条件中,当所述IP报文中还携带TTL时,根据预置的TTL更新规则确定是否对所述匹配条件中添加的IP地址的TTL进行更新。
[0063] 结合第二方面,在第二方面的第六种可能的实现方式中,所述报文处理设备,还包括:
[0064] TTL保存模块,用于所述匹配条件配置模块将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之后,当所述IP报文中还携带生存时间TTL时,保存所述匹配条件中添加的IP地址对应的TTL。
[0065] 结合第二方面的第五种或第六种可能的实现方式,在第二方面的第七种可能的实现方式中,所述报文处理设备,还包括:
[0066] TTL判断模块,用于TTL保存模块保存所述匹配条件中添加的IP地址对应的TTL,或TTL更新模块根据预置的TTL更新规则确定是否对所述匹配条件中添加的IP地址的TTL进行更新之后,判断所述匹配条件中添加的IP地址从被添加到所述匹配条件中到当前时间组成的时间段是否超过所述匹配条件中添加的IP地址对应的TTL;
[0067] IP地址清除模块,用于当所述TTL判断模块确定出匹配条件中添加的IP地址从被添加到所述匹配条件中直到当前时间组成的时间段超过所述匹配条件中添加的IP地址对应的TTL时,将超过对应TTL的IP地址从所述匹配条件中删除。
[0068] 结合第二方面、或第二方面的第一种或第二种或第三种可能的实现方式,在第二方面的第八种可能的实现方式中,所述匹配条件中的域名以域名哈希表的方式存储;
[0069] 所述匹配条件中添加的IP地址以IP哈希表的方式存储;
[0070] 所述域名匹配模块,具体用于对从所述域名解析模块解析出的域名进行哈希运算,判断运算结果与存储的域名的哈希值是否相同,若相同,则所述用户终端请求的域名存在于所述匹配条件中,若不相同,则所述用户终端请求的域名没有存在于所述匹配条件中。
[0071] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0072] 在本发明实施例中,首先获取IP报文,判断获取到的IP报文是否为DNS响应报文,若IP报文是DNS响应报文,从IP报文中解析出用户终端请求的域名,然后判断用户终端请求的域名是否存在于控制策略的匹配条件中,若用户终端请求的域名存在于匹配条件中,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现根据匹配条件中添加的IP地址和匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。
本发明实施例中将需要按照控制策略的策略动作进行报文控制的域名作为匹配条件,当用户终端访问指定的域名时,用户终端经由因特网服务器向DNS服务器发送的IP报文就是DNS请求报文,DNS服务器接收到DNS请求报文后向因特网服务器发送DNS响应报文,因特网服务器向用户终端发送的IP报文就是DNS响应报文,若获取到的IP报文就是DNS响应报文时,从IP报文中可以解析出用户终端请求的域名,在用户终端请求的域名命中匹配条件中包括的域名时,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现基于域名为匹配条件下对IP地址的自主学习,适用于报文特征为静态参数和动态参数的多种场景,在无需提前获知IP地址的情况下就可以根据域名设定匹配条件,在IP地址可能变化时也能够自动的添加到匹配条件中,能够适用于广泛的应用场景。
附图说明
[0073] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
[0074] 图1为本发明实施例提供的一种报文处理方法的流程方框示意图;
[0075] 图2为本发明实施例提供的对IP报文的分析流程示意图;
[0076] 图3为本发明实施例提供的控制策略中各组成部分之间的逻辑关系示意图;
[0077] 图4为本发明实施例提供的另一种报文处理方法的流程示意图;
[0078] 图5-a为匹配条件中域名与IP地址的初始化状态示意图;
[0079] 图5-b为匹配条件中域名与IP地址的关联状态示意图;
[0080] 图6为本发明实施例提供的对IP进行老化处理的实现方式示意图;
[0081] 图7-a为本发明实施例提供的一种报文处理设备的组成结构示意图;
[0082] 图7-b为本发明实施例提供的另一种报文处理设备的组成结构示意图;
[0083] 图7-c为本发明实施例提供的一种报文处理模块的组成结构示意图;
[0084] 图7-d为本发明实施例提供的另一种报文处理模块的组成结构示意图;
[0085] 图7-e为本发明实施例提供的另一种报文处理设备的组成结构示意图;
[0086] 图7-f为本发明实施例提供的另一种报文处理设备的组成结构示意图;
[0087] 图7-g为本发明实施例提供的另一种报文处理设备的组成结构示意图;
[0088] 图7-h为本发明实施例提供的另一种报文处理设备的组成结构示意图;
[0089] 图8为本发明实施例提供的另一种报文处理设备的组成结构示意图。
具体实施方式
[0090] 本发明实施例提供了一种报文处理方法和报文处理设备,用于实现匹配条件对IP地址的自主学习,适用于以报文特征为静态参数和动态参数的多个场景。
[0091] 为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0092] 本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
[0093] 以下分别进行详细说明。
[0094] 本发明报文处理方法的一个实施例,可应用于防火墙等网络管理的网元中,该方法可包括:获取互联网协议(Internet Protocol,IP)报文,判断获取到的IP报文是否为域名系统(Domain Name System,DNS)响应报文,其中,DNS响应报文由DNS服务器根据用户终端发送的DNS请求报文向用户终端发送;若上述IP报文是DNS响应报文,从IP报文中解析出用户终端请求的域名;判断用户终端请求的域名是否存在于控制策略的匹配条件中;若用户终端请求的域名存在于匹配条件中,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,则匹配条件还包括添加的IP地址,以实现根据匹配条件中添加的IP地址和匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。
[0095] 请参阅图1所示,本发明一个实施例提供的报文处理方法,具体可以包括如下步骤:
[0096] 101、获取IP报文,判断获取到的IP报文是否为DNS响应报文。
[0097] 其中,DNS响应报文由DNS服务器根据用户终端发送的DNS请求报文向用户终端发送。
[0098] 在本发明实施例中,报文处理设备部署在用户终端和因特网服务器之间,例如,多个用户终端组成企业内部网,因特网服务器属于外部不可信任的公共网,则报文处理设备可以部署在企业内部网和公共网之间,报文处理设备是用户终端的唯一报文出入口,报文处理设备可以根据设定的匹配条件执行对报文的控制处理。其中匹配条件可以提前由管理员来设定,也可以由报文处理设备根据管理员输入的信息来自行配置。
[0099] 在本发明实施例中,报文处理设备部署在用户终端和因特网服务器之间,无论是用户终端发送给因特网服务器的IP报文,还是因特网服务器发送给用户终端的IP报文,报文处理设备都可以获取到该IP报文。例如当用户终端的本地缓存中没有终端需要访问的域名记录时,用户终端会发送DNS请求报文,否则,用户终端会根据缓存中记录的域名对应的IP地址直接进行访问。当用户终端的本地缓存中没有用户终端需要访问的网页(Web)站点记录时,用户终端会生成IP报文,该IP报文就是DNS请求报文,在DNS请求报文中携带用户终端访问指定的域名,DNS请求报文经由报文处理设备、因特网服务器后发送到DNS服务器,DNS服务器根据DNS请求报文获取到用户终端请求的域名,DNS服务器根据用户终端请求的域名查询与该域名对应的IP地址,其中DNS服务器查询到的与用户终端请求的域名对应的IP地址可以是一个或者多个IP地址,即本发明实施例中用户终端请求的域名可以对应有一个IP地址,也可以对应有多个IP地址,另外DNS服务器在根据用户终端请求的域名查询与该域名对应的IP地址时,还可以查询到各个IP地址分别对应的生存时间(Time To Live,TTL),TTL是IP地址有效的时间长度,只有存在的时间没有超过TTL的IP地址才是有效的。当DNS服务器获取到用户终端请求的域名对应的IP地址之后,DNS服务器生成DNS响应报文,并在DNS响应报文中携带用户终端请求的域名以及与该域名对应的IP地址,当一个域名对应有多个IP地址时,DNS响应报文中可以携带用户终端请求的域名对应的所有IP地址,当然也可以携带用户终端请求的域名对应的一些IP地址,具体可以由DNS服务器来决定,另外DNS响应报文中还可以携带每个IP地址对应的TTL。当多个用户终端发起访问同一个Web站点时,用户终端发送IP报文的IP地址可能有多个,并且在不同的时间发送的IP报文对应的IP地址也可能不同,故按照现有技术需要基于IP地址对报文进行策略控制时,管理员无法提前收集到匹配条件所需要的所有IP地址,也就无法准确的将需要的所有IP地址设定为匹配条件,则必然存在没有被设定为匹配条件但是真实场景中又需要进行控制报文的IP地址,从而会导致报文控制失败。
[0100] 例如,在一个需要对IP地址对应的报文进行管理的应用场景下,需要为对某个Web站点(如网页游戏)的访问进行报文优先级别的提升,以进一步提升数据交互的实时性。此时需要提前设定匹配条件,才能基于匹配条件对应的控制策略进行管理,由于该Web站点可能有多个IP地址,并且IP地址也是动态变化的,故管理员不可能提前收集到这些Web站点在不同时间的所有有效IP地址,这就存在需要预置的匹配条件无法配置的问题。又如,在当前的因特网上会存在大量的不良网站,这些不良网站会直接威胁到用户终端的网络安全,并且许多不良网站的IP地址也是动态变化的。即使管理员获取到了Web站点当前的IP地址,并使用获取到的IP地址对匹配条件进行配置,但是对Web站点的IP地址的收集仍存在如下两个问题:第一、Web站点的IP地址是可能变化的,一旦IP地址发生变化,配置好的匹配条件就失去了作用;第二、一个Web站点可能对应多个IP地址,如果收集到的Web站点的IP地址只是多个IP地址中的一个或小部分,那么当收集IP地址时使用被遗漏的IP地址的IP报文来到时就无法根据配置好的匹配条件进行报文控制,也就无法将IP报文的优先级别进行提升,导致报文控制处理的失败。故按照现有技术中将匹配条件设定为固定的IP地址,这无法自动感知匹配目标的IP地址变化,随着Web业务的迅猛发展,用户会更加关注对Web站点的访问控制的细化处理,此问题更是日渐突出。
[0101] 本发明实施例中为了解决如上技术问题,采用了将域名设定为匹配条件来实现的技术方案,并且可以实现对IP地址的自主学习,能够完全适用于IP地址可能变化并且是动态改变的问题,可以为报文的控制处理提供更精准的匹配条件。
[0102] 需要说明的是,在本发明实施例中,报文处理设备部署在用户终端和因特网服务器之间,对于用户终端和因特网服务器之间往来的IP报文,报文处理设备都可以获取到该IP报文。其中报文处理设备判断一个IP报文是否是DNS响应报文可以有多种实现方式,例如报文处理设备可以根据DNS协议对报文处理设备获取到的IP报文进行解析,若能够按照DNS协议解析成功,则该IP报文就是DNS响应报文。又如,报文处理设备还是可以对IP报文的帧格式进行解析,从报文的特征上判断是否具有DNS协议所要求的必备特征,从而判断该IP报文是否为DNS响应报文。
[0103] 102、若上述IP报文是DNS响应报文,从IP报文中解析出用户终端请求的域名。
[0104] 在本发明实施例中,报文处理设备在获取到IP报文后对IP报文是否是DNS响应报文进行判断,当IP报文是DNS响应报文时,报文处理设备从该IP报文中解析出用户终端请求的域名。
[0105] 其中,对于报文处理设备获取到的IP报文,其中只有因特网服务器从DNS服务器接收到的并且转发给用户终端的IP报文才是DNS响应报文,DNS响应报文中携带有用户终端请求的域名,故报文处理设备根据DNS协议就可以从DNS响应报文中解析出用户终端请求的域名。
[0106] 需要说明的是,在本发明实施例中,步骤101判断获取到的IP报文是否为DNS响应报文,若IP报文是DNS响应报文,则执行步骤102,若IP报文不是DNS响应报文,还可以执行如下步骤:
[0107] A1、当IP报文不是DNS响应报文时,从IP报文中获取IP报文中携带的IP地址;
[0108] A2、判断IP报文中携带的IP地址是否存在于匹配条件中;
[0109] A3、若IP报文中携带的IP地址存在于匹配条件中,按照匹配条件对应的策略动作对IP报文进行报文处理。
[0110] 其中,报文处理设备可以从用户终端或因特网服务器获取到IP报文,然后判断出该IP报文不是DNS响应报文时,步骤A1中报文处理设备从IP报文获取到该IP报文中携带的IP地址,报文处理设备部署在用户终端和因特网服务器之间,对于用户终端发送给因特网服务器的IP上行报文,该IP上行报文通常是访问请求数据报文,报文处理设备可以从该IP上行报文获取到IP地址,其中报文处理设备获取到的IP地址具体可以是源IP地址,也可以是目的IP地址,还可以指的是源IP地址和目的IP地址,对于因特网服务器发送给用户终端的IP下行报文,该IP下行报文通常是访问响应数据报文,报文处理设备可以从该IP下行报文获取到IP地址,其中报文处理设备获取到的IP地址具体可以是源IP地址,也可以是目的IP地址,还可以指的是源IP地址和目的IP地址。步骤A2中匹配条件中包括有域名,其中域名对应有IP地址,步骤A1中报文处理设备在从IP报文中获取到IP报文中携带的IP地址之后,判断IP报文中携带的IP地址是否存在于匹配条件中,当IP报文中携带的IP地址存在于匹配条件中时,说明报文处理设备获取到的IP报文符合匹配条件的要求,则步骤A3中报文处理设备按照匹配条件对应的策略动作对IP报文进行报文处理。其中,控制策略中与匹配条件对应的策略动作可以有多种,例如提高报文优先级或者降低报文优先级,还可以是拒绝访问,也可以是带宽控制等等,具体可以根据实际的应用场景来设定控制策略中与匹配条件对应的策略动作。
[0111] 需要说明的是,在本发明的一些实施例中,若匹配条件相对应的策略动作,具体包括:匹配条件中的各个域名分别对应有策略动作,则步骤A3按照匹配条件对应的策略动作对IP报文进行报文处理,具体可以包括如下步骤:
[0112] A31a、从匹配条件中获取IP报文中携带的IP地址对应的域名;
[0113] A32a、从控制策略中获取与获取到的域名对应的策略动作;
[0114] A33a、按照获取到的控制动作对IP报文进行报文处理。
[0115] 其中,步骤A31a中,当IP报文中携带的IP地址命中匹配条件中包括的IP地址时,报文处理设备根据匹配条件中IP地址与域名的对应关系,可以从匹配条件中获取到IP报文中携带的IP地址对应的域名,步骤A32a中报文处理设备可以根据匹配条件中域名和策略动作的对应关系,获取到与获取到的域名对应的策略动作,最后步骤A33a中报文处理设备根据获取到的策略动作对IP报文进行处理。也就是说,在步骤A31a至A33a的实现方式中,匹配条件中保存有各个域名分别对应有策略动作,即域名和策略动作之间建立有对应关系,报文处理设备可以根据IP地址和域名的对应关系先获取到域名,然后根据匹配条件中域名和策略动作的对应关系获取到与获取到的域名相对应的策略动作,最后按照获取到的策略动作对IP报文进行报文处理。其中,控制策略中与匹配条件对应的策略动作可以有多种,例如提高报文优先级或者降低报文优先级,还可以是拒绝访问,也可以是带宽控制等等,具体可以根据实际的应用场景来设定控制策略中与匹配条件对应的策略动作。
[0116] 需要说明的是,在本发明的一些实施例中,若匹配条件相对应的策略动作,具体包括:匹配条件中添加的IP地址分别对应有策略动作,则步骤A3按照匹配条件对应的策略动作对IP报文进行报文处理,具体可以包括如下步骤:
[0117] A31b、从控制策略中获取与IP报文中携带的IP地址对应的策略动作;
[0118] A32b、按照获取到的策略动作对IP报文进行报文处理。
[0119] 其中,步骤A31b中,当IP报文中携带的IP地址命中匹配条件中包括的IP地址时,报文处理设备根据匹配条件中IP地址与策略动作的对应关系,可以从匹配条件中获取到与IP地址对应的策略动作,最后步骤A32b中报文处理设备根据获取到的策略动作对IP报文进行处理。也就是说,在步骤A31b至A32b的实现方式中,匹配条件中保存有添加的IP地址分别对应有策略动作,即IP地址和策略动作之间建立有对应关系,例如,在匹配条件中添加IP地址后,直接将自主学到的IP地址与策略动作建立对应关系,并在匹配条件中保存该对应关系。
报文处理设备可以根据IP地址和策略动作的对应关系获取到与IP地址相对应的策略动作,最后按照获取到的策略动作对IP报文进行报文处理。其中,控制策略中与匹配条件对应的策略动作可以有多种,例如提高报文优先级或者降低报文优先级,还可以是拒绝访问,也可以是带宽控制等等,具体可以根据实际的应用场景来设定控制策略中与匹配条件对应的策略动作。
[0120] 在实际应用中可以根据IP地址和策略动作的对应关系对IP报文进行报文处理,也可以根据IP地址先对应出域名,然后基于域名和策略动作的对应关系获取到策略动作,具体可以根据应用场景来决定采用何种实现方式,此处只是举例说明,并不作为对本发明实施例的限定。
[0121] 103、判断用户终端请求的域名是否存在于控制策略的匹配条件中。
[0122] 其中,匹配条件包括需要按照控制策略的策略动作进行报文控制的域名,控制策略包括匹配条件和匹配条件相对应的策略动作。
[0123] 在本发明实施例中,匹配条件中设置有需要按照控制策略的策略动作进行报文控制的域名,报文处理设备从IP报文中解析出用户终端请求的域名之后,判断用户终端请求的域名是否命中匹配条件中包括的域名。
[0124] 本发明实施例中以需要按照控制策略的策略动作进行报文控制的域名作为匹配条件,在匹配条件中设置有域名,匹配条件中包括的域名可以由管理员来设定,也可以由报文处理设备根据管理员输入的信息来自行配置,在匹配条件中包括的域名即为需要按照控制策略的某个策略动作进行报文控制的报文所指向的域名,匹配条件中可以包括一个域名,也可以包括有多个域名,具体将哪个域名配置在匹配条件中,以及匹配条件对应什么样的策略动作都可以根据具体的应用场景来设定,在设定匹配条件中的域名之后,根据对匹配条件中设置的具体域名来分别设定相应的策略动作。
[0125] 例如,请参阅如下表1所示的控制策略的配置示意表,其中,匹配条件中包括有两个以上的域名,并且对应各个不同域名可以设定相应的策略动作,应用如下表1所示的控制策略,可以进行修改报文优先级等策略动作,从而实现对网络流量中报文的规划调整。根据表1的配置,当用户终端发送IP报文对应的域名为www.a1a2a3a4.com时,匹配到了“网络游戏”的策略名,其策略动作为提升报文优先级,尽量保证报文的实时性;当用户发送的IP报文对应的域名为www.b1b2b3b4.com时,匹配到了“内部服务器”的策略名,其策略动作为降低报文优先级,尽量不影响对外业务。
[0126]
策略名 匹配条件 策略动作
网络游戏 www.a1a2a3a4.com 提升报文优先级
[0127]
内部服务器 www.b1b2b3b4.com 降低报文优先级
…… …… ……
…… …… ……
[0128] 104、若用户终端请求的域名存在于匹配条件中,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中。
[0129] 其中,匹配条件还包括添加的IP地址,以实现根据匹配条件中添加的IP地址和匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。
[0130] 在本发明实施例中,IP报文中携带的用户终端请求的域名和匹配条件中包括的域名相同,则说明当前的IP报文携带的域名命中了匹配条件,根据前述的内容说明,在IP报文是DNS响应报文的情况下,IP报文除了携带用户终端请求的域名,还携带有与该域名对应的IP地址,若一个域名对应有多个IP地址,则IP报文中同样也携带有多个IP地址,报文处理设备从IP报文中解析出用户终端请求的域名对应的IP地址之后,将解析出的IP地址添加到匹配条件中,则匹配条件还包括添加的IP地址。故报文处理设备可以实现基于域名为匹配条件下对IP地址的自主学习,当报文处理设备获取到的IP报文是DNS响应报文时,若IP报文中携带的域名是匹配条件中预置的域名时,报文处理设备可以将IP报文中携带的IP地址添加到匹配条件中,从而实现报文处理设备对IP地址的自主学习,而无需管理员来提前收集IP地址,并且对于IP地址的动态变化,报文处理设备也可以实现实时的获取到IP地址并自动添加到匹配条件中,以保证匹配条件中存储的IP地址都是实时更新的,使用该匹配条件进行报文控制时能够有效的对IP报文进行全方面的管理,不会存在因为无法获取到动态变化的IP地址而导致报文控制失败的情况,适用于以报文特征为静态参数和动态参数的多个场景。
[0131] 需要说明的是,在本发明的一些实施例中,步骤104将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中之前,本发明实施例提供的方法还可以包括如下步骤:
[0132] B1、判断IP报文中与用户终端请求的域名对应的IP地址是否已经存在于匹配条件中;
[0133] B2、若IP报文中与用户终端请求的域名对应的IP地址没有存在于匹配条件中,触发执行步骤104:将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中。
[0134] 在本发明的一些实施例中,是否执行步骤104将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,需要由步骤B1中描述的技术手段来决定,可以由报文处理设备判断IP报文中与用户终端请求的域名对应的IP地址是否命中匹配条件中包括的IP地址实现,即报文处理设备判断IP报文中携带的IP地址是否已经记录在匹配条件中,若已经记录在匹配条件中,则IP报文携带的IP地址命中匹配条件的IP地址,当IP报文中携带的IP地址没有命中匹配条件中的IP地址时,触发步骤104执行。
[0135] 需要说明的是,根据前述对IP报文携带的内容的说明可知,若IP报文中还携带有TTL,该TTL为与用户终端请求的域名所对应的IP地址对应的生存时间,步骤B1将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中之后,本发明实施例提供的方法还可以包括如下步骤:
[0136] B3、若IP报文中与用户终端请求的域名对应的IP地址已经存在于匹配条件中,当IP报文中还携带TTL时,根据预置的TTL更新规则确定是否对匹配条件中添加的IP地址的TTL进行更新。
[0137] 需要说明的是,根据前述对IP报文携带的内容的说明可知,若IP报文中还携带有TTL,该TTL为与用户终端请求的域名所对应的IP地址对应的生存时间,步骤104将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中之后,本发明实施例提供的方法还可以包括如下步骤:
[0138] C1、当IP报文中还携带TTL时,保存匹配条件中添加到的IP地址对应的TTL。
[0139] 其中,步骤B1中判断结果为:IP报文中与用户终端请求的域名对应的IP地址已经存在于匹配条件中,本发明实施例还可以执行步骤B3,当IP报文中还携带有TTL时,报文处理设备根据预置的TTL更新规则确定是否对匹配条件中添加的IP地址的TTL进行更新,在后续实施例中也可以描述为刷新命中时间和TTL。在本发明的一些实施例中,步骤104执行之后,还可以执行步骤C1当IP报文中还携带TTL时保存匹配条件中添加到的IP地址对应的TTL。在保存匹配条件中添加的IP地址对应的TTL时记录一个命中时间,从命中时间开始计算IP地址的生命周期。若本发明实施例中DNS服务器为IP地址设定有生存时间时,当用户终端请求的域名对应的IP地址存在于匹配条件中时,报文处理设备需要根据预置的TTL更新规则确定是否对匹配条件中包括的IP地址的TTL进行更新,当需要更新时,报文处理设备可以将匹配条件中包括的IP地址的TTL更新为用户终端请求的域名所对应的IP地址对应的TTL,即对匹配条件中包括的IP地址的TTL进行更新。但是并不是在所有实施例中都需要对匹配条件中包括的IP地址的TTL进行更新,举例说明如下,在匹配条件中包括需要按照控制策略的策略动作进行报文控制的域名为www.a1a2a3a4.com,该域名对应的一个IP地址为
1.1.1.254,匹配条件中IP地址1.1.1.254对应的TTL为10s,若报文处理设备获取到一个IP报文,并判断出该IP报文是DNS响应报文,报文处理设备从IP报文中获取到用户终端请求的域名为www.a1a2a3a4.com,则该域名命中了匹配条件中的域名www.a1a2a3a4.com,报文处理设备从IP报文中解析出域名www.a1a2a3a4.com对应的IP地址为1.1.1.254,并且该IP报文中携带的IP地址1.1.1.254对应的TTL为5s,则此时匹配条件中IP地址对应的TTL(10s)大于IP报文中携带的同一个IP地址对应的TTL(5s),若预置的TTL更新规则为匹配条件中IP地址对应的TTL大于IP报文中携带的同一个IP地址对应的TTL时无需更新,则此时就不更新匹配条件中IP地址对应的TTL,具体是否需要更新匹配条件中IP地址对应的TTL可以由TTL更新规则来决定,此处不再赘述。
[0140] 需要说明的是,在本发明中包括有步骤B3或步骤C1的实施例中,在步骤C1保存匹配条件中添加的IP地址对应的TTL之后,或步骤B3根据预置的TTL更新规则确定是否对匹配条件中添加的IP地址的TTL进行更新之后,还可以包括如下步骤:
[0141] D1、判断匹配条件中添加的IP地址从被添加到匹配条件中直到当前的时间组成的时间段是否超过匹配条件中添加的IP地址对应的TTL;
[0142] D2、若是,将超过对应TTL的IP地址从匹配条件中删除。
[0143] 其中,报文处理设备可以设置一个定时器,定时的监测匹配条件中添加的各个IP地址是否达到老化时间,即报文处理设备判断IP地址从被添加到匹配条件中直到执行步骤D1时的当前时间组成的时间段是否超过该IP地址对应的TTL,若已经超过,则说明IP地址已经老化,执行步骤D2,报文处理设备将已经老化的IP地址从匹配条件中删除,由此报文处理设备完成了对匹配条件中包括的IP地址的维护。
[0144] 需要说明的是,在本发明的一些实施例中,匹配条件中的域名以域名哈希表的方式存储;匹配条件中添加的IP地址以IP哈希表的方式存储。则判断用户终端请求的域名是否存在于控制策略的匹配条件中,具体可以包括:
[0145] 对从IP报文中解析出的域名进行哈希运算,判断运算结果与存储的域名的哈希值是否相同,若相同,则用户终端请求的域名存在于匹配条件中,若不相同,则用户终端请求的域名没有存在于匹配条件中。
[0146] 其中,匹配条件中的域名和IP地址可以以哈希表的形式来存储,通常是为了提高数据存储和读取的效率,当然也可以采用其它的方式来存储域名和IP地址,例如可以采用对字符串存储的方式分别存储域名和IP地址,此处只是给出了具体的实现方式,还可以依据本发明采用其它的存储方式。
[0147] 前述对本发明实施例提供的报文处理方法执行的各个步骤进行了详细说明,接下来请参阅如图2所示,为本发明实施例提供的对IP报文的分析流程示意图。其中,报文处理设备部署在用户终端和因特网服务器之间,在实际应用中,报文处理设备可以通过网关来实现,具体可以将报文处理设备以防火墙等网络中的网元的形式来实现。用户终端在访问一个Web站点时,用户终端会生成DNS请求报文(英文称之为DNS Request,图示中简述为DNS req),在DNS请求报文中携带用户终端访问指定的域名,DNS请求报文经由报文处理设备、因特网服务器、路由器后发送到DNS服务器,DNS服务器根据DNS请求报文获取到用户终端请求的域名,DNS服务器根据用户终端请求的域名查询与该域名对应的IP地址,当DNS服务器获取到用户终端请求的域名对应的IP地址之后,DNS服务器生成DNS响应报文(英文称之为DNS Response,图示中简述为DNS res),并在DNS响应报文中携带用户终端请求的域名以及与该域名对应的IP地址,DNS响应报文经由路由器、因特网服务器之后发送给用户终端,报文处理设备由于设置在用户终端和因特网服务器之间,故报文处理设备可以获取到一个IP报文之后,对获取到的IP报文是否为DNS响应报文进行判断,若IP报文是DNS响应报文,然后报文处理设备从DNS响应报文中解析出用户终端请求的域名,然后判断用户终端请求的域名是否存在于匹配条件中,若匹配条件中包括有该域名,报文处理设备从IP报文中解析出该域名对应的IP地址,然后报文处理设备将解析出的IP地址添加到匹配条件中。若报文处理设备判断出用户终端请求的域名不在匹配条件中,报文处理设备对用户终端请求的域名不做处理,用户终端在接收到IP报文之后,用户终端可以从IP报文中解析出IP地址,根据该IP地址向因特网服务器发送IP报文,实现对Web站点的访问。
[0148] 本发明实施例中在策略控制中引用域名作为匹配条件,并且匹配条件对应有策略动作,其中匹配条件中可以包括多个域名,域名与IP地址之间存在一个对应关系,一个域名可以对应一个IP地址列表,IP地址列表中可能存在0个到多个IP地址,每个IP地址对应一个数据内容,其中包括IP地址、此IP地址的老化时间、此IP地址的命中时间等。通过如上对匹配条件的设置,就可以实现通过域名作为中间介质,策略动作与IP地址建立了对应关系,对于命中这些IP地址的IP报文即为命中控制策略中的某个策略动作,报文处理设备可以根据控制策略中的策略动作对报文优先级进行调整,请参阅如图3所示,为本发明实施例提供的控制策略中各组成部分之间的逻辑关系示意图,对各个策略名分别对应有匹配条件,各个匹配条件分别对应有策略动作,其中匹配条件对应的策略动作可以有多种,例如修改报文的优先级,匹配条件中可以包括一个域名,也可以包括多个域名,例如包括M个域名:域名1、域名2、…、域名M,每个域名也可以对应有一个IP地址或者多个IP地址,例如域名3对应于IP地址1,匹配条件中共包括N个IP地址:IP地址1、IP地址2、…、IP地址N,其中M、N都是非零自然数,以IP地址2为例,每个IP地址都包括一个TTL时间、命中时间。
[0149] 通过如上实施例对本发明的描述可知,首先获取IP报文,判断获取到的是否为DNS响应报文,若IP报文是DNS响应报文,从IP报文中解析出用户终端请求的域名,然后判断用户终端请求的域名是否存在于匹配条件中,若用户终端请求的域名存在于匹配条件中,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现根据匹配条件中添加的IP地址和匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。
本发明实施例中将需要按照控制策略的策略动作进行报文控制的域名作为匹配条件,当用户终端访问指定的域名时,用户终端经由因特网服务器向DNS服务器发送的IP报文就是DNS请求报文,DNS服务器接收到DNS请求报文后向因特网服务器发送DNS响应报文,因特网服务器向用户终端发送的IP报文就是DNS响应报文,若获取到的IP报文就是DNS响应报文时,从IP报文中可以解析出用户终端请求的域名,在用户终端请求的域名命中匹配条件中包括的域名时,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现基于域名为匹配条件下对IP地址的自主学习,适用于报文特征为静态参数和动态参数的多个场景,在无需提前获知IP地址的情况下就可以根据域名设定匹配条件,在IP地址可能变化时也能够自动的添加到匹配条件中,能够适用于广泛的应用场景。
[0150] 为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
[0151] 接下来将一个详细的应用场景来说明报文处理设备的实现方法,请参阅如图4所示,为本发明实施例提供的另一种报文处理方法的流程示意图,以报文处理设备基于IP地址对报文优先级的控制为例进行说明,具体可以包括如下步骤:
[0152] S01、获取IP报文,然后执行步骤S02。
[0153] 报文处理设备首先确定需要修改报文优先级的Web站点的域名,然后将这些域名作为控制策略的匹配条件进行配置。配置下发后会根据域名在内存中生成一个域名哈希(HASH)表,域名HASH表中设置有多个HASH链头,保存有域名相关的信息,包括域名、域名被哪些策略动作引用、域名对应的IP哈希(HASH)表等内容。刚完成策略配置时,域名下对应的IP哈希表没有任何内容。另外,在内存中还保存的IP HASH表中设置有多个HASH链头,保存有IP地址内容以及IP地址对应哪个域名,初始状态此IP HASH表中没有任何内容,使用IP HASH表的主要用途是提高查找IP地址的效率,请参阅如图5-a所示的匹配条件中域名与IP地址的初始化状态示意图。
[0154] S02、判断IP报文是否为DNS响应报文。如果是,则转到步骤S03继续处理;否则,转到步骤S09继续处理。
[0155] S03、从IP报文中解析出用户终端请求的域名,然后进入步骤S04继续处理。
[0156] S04、在域名HASH表中查询用户终端请求的域名是否存在于该域名HASH表中,即查询用户终端请求的域名是否命中匹配条件,如果存在,转到步骤S05继续处理;否则,转到步骤S13继续处理。
[0157] S05、继续从IP报文中解析出用户终端请求的域名对应的IP地址,以及此IP地址对应的TTL值,进入步骤S06继续处理。
[0158] S06、在IP HASH表中查询用户终端请求的域名对应的IP地址是否存在于该IP HASH表中。如果存在,转到步骤S07继续处理;否则,转到步骤S08继续处理。
[0159] 需要说明的是,通过步骤S03至步骤S06,报文处理设备根据DNS协议解析出IP报文中用户终端请求的域名、域名对应的IP地址、域名与IP地址间的对应关系的老化时间等内容,可以在域名HASH表中查询IP报文中被请求域名,如果查询到对应的域名,则将IP报文中的IP地址添加到IP HASH表中,实现以域名为中介的策略动作与IP地址的关联,请参阅如图
5-b所示的匹配条件中域名与IP地址的关联状态示意图,其中,虚线段指向的IP地址为属于同一个域名的多个IP地址,带箭头的曲线表示的是多个IP地址对应同一个域名。
[0160] S07、刷新IP地址的命中时间和TTL,进入步骤S13继续处理。
[0161] S08、在此域名对应的IP HASH表中新增IP地址,并记录新增的IP地址的命中时间和TTL值,进入步骤S13继续处理。
[0162] S09、从IP报文中获取IP地址,在IP HASH表中查询是否存在此IP地址。如果存在,转到步骤S10继续处理;否则,转到步骤S13继续处理。
[0163] S10、通过IP地址,根据IP地址与域名之间的关联关系,获取此IP地址对应的域名,进入步骤S11继续处理。
[0164] 例如,如图5-b所示,通过IP地址和域名之间的关联关系,就可以获取到IP地址对应的域名。
[0165] S11、通过域名,根据域名与策略动作之间的关联关系,获取此域名对应的策略动作,进入步骤S12继续处理。
[0166] S12、根据获取到的策略动作,相应的修改IP报文的优先级,进入步骤S13继续处理。
[0167] 其中,报文处理设备对IP报文进行策略动作的查询,可以根据目的IP地址查询IP HASH表,如果IP HASH表中存在此IP地址,则获取此IP地址对应的域名HASH表,从域名HASH表中获取到对应的策略动作,根据控制策略设定的策略动作修改报文优先级。这样,这个IP报文就匹配到了控制策略中的策略动作,而这个IP报文是访问指定域名的,从而实现了修改访问指定Web站点的报文优先级的功能,当然本发明实施例中也可以根据IP报文中的源IP地址查询IP HASH表,或者根据IP报文中的源IP地址和目的IP地址来查询IP HASH表,具体需要使用IP报文的源IP地址还是目的IP地址可以由控制策略中来具体设定,此处仅作说明,不做限定。
[0168] S13、对IP报文的整个处理过程结束。
[0169] 接下来以另一个实施例对本发明实施例中IP地址的老化处理进行详细说明,请参阅如图6所示,为本发明实施例提供的对IP进行老化处理的实现方式示意图,可以包括如下步骤:
[0170] T01、老化IP地址的定时器时间到达,进入步骤T02继续处理。
[0171] T02、获取IP HASH表中的第一个IP地址,进入步骤T03继续处理。
[0172] T03、获取当前时间,记为x,获取当前IP地址的命中时间,记为y,获取当前IP地址的TTL值,记为z,进入步骤T04继续处理。
[0173] T04、判断x与y的差值是否大于z,也即是判断此IP地址从上次命中到现在经过的时间段是否超过了TTL,如果是,转到步骤T05继续处理;否则,转到步骤T06继续处理。
[0174] T05、删除当前IP地址,进入步骤T06继续处理。
[0175] T06、判断是否还有未进行处理的IP地址。如果是,转到步骤T07继续处理;否则,转到步骤T08继续处理。
[0176] T07、获取下一个未处理的IP地址,重新回到步骤T03继续处理。
[0177] T08、定时器处理完成,等待下一次定时器处理。
[0178] 本发明实施例中,DNS服务器在DNS响应报文中除了携带IP地址,还包括TTL字段(以秒为单位),报文处理设备收到DNS响应报文后会根据此字段的值设置域名对应IP地址的保存时间,超过这个时间段后,再次对此域名进行访问时需要重新发起DNS查询请求。报文处理设备在匹配条件中会记录这个TTL值,同时记录一个命中时间,当新建IP地址和后续DNS响应报文命中此IP地址时,将IP地址中的命中时间设置为当前时间。IP地址的老化机制依赖于这两个字段进行,在报文的处理运行过程中,定时的扫描所有IP地址,查看上次命中的时间到当前时间经历的时间长度是否超过了IP地址的TTL值,如果超过了TTL值,则将此IP地址删除。
[0179] 通过如上实施例对本发明的描述可知,首先获取IP报文,判断获取到的IP报文是否为DNS响应报文,若IP报文是DNS响应报文,从IP报文中解析出用户终端请求的域名,然后判断用户终端请求的域名是否存在于控制策略的匹配条件中,若用户终端请求的域名存在于匹配条件中,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现根据匹配条件中添加的IP地址和匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。本发明实施例中将需要按照控制策略的策略动作进行报文控制的域名作为匹配条件,当用户终端访问指定的域名时,用户终端经由因特网服务器向DNS服务器发送的IP报文就是DNS请求报文,DNS服务器接收到DNS请求报文后向因特网服务器发送DNS响应报文,因特网服务器向用户终端发送的IP报文就是DNS响应报文,若获取到的IP报文就是DNS响应报文时,从IP报文中可以解析出用户终端请求的域名,在用户终端请求的域名命中匹配条件中包括的域名时,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现基于域名为匹配条件下对IP地址的自主学习,适用于报文特征为静态参数和动态参数的多种场景,在无需提前获知IP地址的情况下就可以根据域名设定匹配条件,在IP地址可能变化时也能够自动的添加到匹配条件中,能够适用于广泛的应用场景。
[0180] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0181] 为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
[0182] 请参阅图7-a所示,本发明实施例提供的一种报文处理设备700,可以包括:DNS判断模块701、域名解析模块702、域名匹配模块703、匹配条件配置模块704,其中,[0183] DNS判断模块701,用于获取互联网协议IP报文,判断获取到的IP报文是否为域名系统DNS响应报文,所述DNS响应报文由DNS服务器根据用户终端发送的DNS请求报文向所述用户终端发送;
[0184] 域名解析模块702,用于当所述DNS判断模块701获取到的IP报文是所述DNS响应报文时,从所述IP报文中解析出所述用户终端请求的域名;
[0185] 域名匹配模块703,用于判断所述域名解析模块702解析出的用户终端请求的域名是否存在于控制策略的匹配条件中,所述匹配条件包括需要按照所述控制策略进行报文控制的域名,所述控制策略包括所述匹配条件和所述匹配条件相对应的策略动作;
[0186] 匹配条件配置模块704,用于当所述域名匹配模块703确定出用户终端请求的域名存在于所述匹配条件中时,将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中,则所述匹配条件还包括添加的IP地址,以实现根据所述匹配条件中添加的IP地址和所述匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。
[0187] 请参阅如图7-b所示,在本发明的一些实施例中,相对于图7-a所示的报文处理设备,报文处理设备700,还可以包括:
[0188] IP地址获取模块705,用于当所述DNS判断模块701获取到的IP报文不是所述DNS响应报文时,从所述IP报文中获取所述IP报文中携带的IP地址;
[0189] 第一IP地址判断模块706,用于判断所述IP地址获取模块705获取到的IP报文中携带的IP地址是否存在于所述匹配条件中;
[0190] 报文处理模块707,用于当所述第一IP地址判断模块706确定出IP报文中携带的IP地址存在于所述匹配条件中时,按照所述匹配条件对应的策略动作对所述IP报文进行报文处理。
[0191] 在本发明的一些实施例中,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中的各个域名分别对应有策略动作。具体的,请参阅如图7-c所示,报文处理模块707,包括:
[0192] 域名获取子模块7071,用于从所述匹配条件中获取所述IP报文中携带的IP地址对应的域名;
[0193] 第一策略动作获取子模块7072,用于从所述控制策略中获取与所述域名获取子模块7071获取到的所述域名对应的策略动作;
[0194] 报文处理子模块7073,用于按照第一策略动作获取子模块7072获取到的所述策略动作对所述IP报文进行报文处理。
[0195] 在本发明的一些实施例中,所述匹配条件相对应的策略动作,具体包括:所述匹配条件中添加的IP地址分别对应有策略动作。具体的,请参阅如图7-d所示,报文处理模块
707,包括:
[0196] 第二策略动作获取子模块7074,用于从所述控制策略中获取与IP报文中携带的IP地址对应的策略动作;
[0197] 报文处理子模块7073,用于按照第二策略动作获取子模块7074获取到的所述策略动作对所述IP报文进行报文处理。
[0198] 请参阅如图7-e所示,在本发明的一些实施例中,相对于图7-a所示的报文处理设备,报文处理设备700,还可以包括:
[0199] 第二IP地址判断模块708,用于所述匹配条件配置模块704将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之前,判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中,当所述IP报文中与所述用户终端请求的域名对应的IP地址没有存在于所述匹配条件中时,触发执行所述匹配条件配置模块704。
[0200] 请参阅如图7-f所示,在本发明的一些实施例中,相对于图7-e所示的报文处理设备,报文处理设备700,还可以包括:
[0201] TTL更新模块709,用于所述第二IP地址判断模块708判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中之后,若所述IP报文中与所述用户终端请求的域名对应的IP地址已经存在于所述匹配条件中,当所述IP报文中还携带TTL时,根据预置的TTL更新规则确定是否对所述匹配条件中添加的IP地址的TTL进行更新。
[0202] 请参阅如图7-g所示,在本发明的一些实施例中,相对于图7-a所示的报文处理设备,报文处理设备700,还可以包括:
[0203] TTL保存模块710,用于所述匹配条件配置模块704将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之后,当所述IP报文中还携带生存时间TTL时,保存所述匹配条件中添加的IP地址对应的TTL。
[0204] 请参阅如图7-h所示,在本发明的一些实施例中,相对于图7-f或7-g所示的报文处理设备,报文处理设备700,还可以包括:
[0205] TTL判断模块711,用于TTL保存模块710保存所述匹配条件中添加的IP地址对应的TTL,或TTL更新模块709根据预置的TTL更新规则确定是否对所述匹配条件中添加的IP地址的TTL进行更新之后,判断所述匹配条件中添加的IP地址从被添加到所述匹配条件中到当前时间组成的时间段是否超过所述匹配条件中添加的IP地址对应的TTL;
[0206] IP地址清除模块712,用于当所述TTL判断模块711确定出匹配条件中添加的IP地址从被添加到所述匹配条件中直到当前时间组成的时间段超过所述匹配条件中添加的IP地址对应的TTL时,将超过对应TTL的IP地址从所述匹配条件中删除。
[0207] 其中,图7-h以相对于图7-g进行示意说明。
[0208] 在本发明的一些实施例中,所述匹配条件中的域名以域名哈希表的方式存储;所述匹配条件中添加的IP地址以IP哈希表的方式存储;所述域名匹配模块703,具体用于对从所述域名解析模块702解析出的域名进行哈希运算,判断运算结果与存储的域名的哈希值是否相同,若相同,则所述用户终端请求的域名存在于所述匹配条件中,若不相同,则所述用户终端请求的域名没有存在于所述匹配条件中。
[0209] 通过如上实施例对本发明的描述可知,首先DNS判断模块获取IP报文,判断获取到的IP报文是否为DNS响应报文,若IP报文是DNS响应报文,域名解析模块从IP报文中解析出用户终端请求的域名,然后域名匹配模块判断用户终端请求的域名是否存在于控制策略的匹配条件中,若用户终端请求的域名存在于匹配条件中,匹配条件配置模块将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现根据匹配条件中添加的IP地址和匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。本发明实施例中将需要按照控制策略的策略动作进行报文控制的域名作为匹配条件,当用户终端访问指定的域名时,用户终端经由因特网服务器向DNS服务器发送的IP报文就是DNS请求报文,DNS服务器接收到DNS请求报文后向因特网服务器发送DNS响应报文,因特网服务器向用户终端发送的IP报文就是DNS响应报文,若获取到的IP报文就是DNS响应报文时,从IP报文中可以解析出用户终端请求的域名,在用户终端请求的域名命中匹配条件中包括的域名时,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现基于域名为匹配条件下对IP地址的自主学习,适用于报文特征为静态参数和动态参数的多种场景,在无需提前获知IP地址的情况下就可以根据域名设定匹配条件,在IP地址可能变化时也能够自动的添加到匹配条件中,能够适用于广泛的应用场景。
[0210] 本发明实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有程序,该程序执行包括上述方法实施例中记载的部分或全部步骤。
[0211] 接下来介绍本发明实施例提供的另一种报文处理设备,请参阅图8所示,报文处理设备800包括:接收器801,处理器802、存储器803、总线804和驱动电路805。
[0212] 所述接收器801,用于获取互联网协议IP报文;
[0213] 所述存储器802,用于存储指令和数据;
[0214] 所述处理器803,用于读取存储器802中存储的指令和数据,执行如下步骤:
[0215] 判断获取到的IP报文是否为域名系统DNS响应报文,所述DNS响应报文由DNS服务器根据用户终端发送的DNS请求报文向所述用户终端发送;
[0216] 若所述IP报文是DNS响应报文,从所述IP报文中解析出所述用户终端请求的域名;
[0217] 判断所述用户终端请求的域名是否存在于控制策略的匹配条件中,所述匹配条件包括需要按照所述控制策略的策略动作进行报文控制的域名,所述控制策略包括所述匹配条件和所述匹配条件相对应的策略动作;
[0218] 若所述用户终端请求的域名存在于所述匹配条件中,将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中,则所述匹配条件还包括添加的IP地址,以实现根据所述匹配条件中添加的IP地址和所述匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。
[0219] 其中,所述处理器803可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。这些指令可以通过其中的处理器以配合实现及控制,用于执行本发明实施例揭示的方法。上述处理器还可以是通用处理器、数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(application specific integrated circuit)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0220] 其中,上述通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器,解码器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。
[0221] 其中,驱动电路805,用于为报文处理设备中的各个硬件提供驱动使得各个硬件能够正常工作。
[0222] 另外,报文处理设备的各个硬件组件通过总线804耦合在一起,其中总线804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起,在图8中将各种总线都标为总线804。
[0223] 在本发明的一些实施例中,处理器803还用于执行以下步骤:
[0224] 若所述IP报文不是所述DNS响应报文,从所述IP报文中获取所述IP报文中携带的IP地址;
[0225] 判断所述IP报文中携带的IP地址是否存在于所述匹配条件中;
[0226] 若所述IP报文中携带的IP地址存在于所述匹配条件中,按照所述匹配条件对应的策略动作对所述IP报文进行报文处理。
[0227] 在本发明的一些实施例中,存储器802中存储的所述匹配条件相对应的策略动作,具体包括:所述匹配条件中的各个域名分别对应有策略动作;
[0228] 在本发明的一些实施例中,处理器803,具体用于执行以下步骤:
[0229] 从所述匹配条件中获取所述IP报文中携带的IP地址对应的域名;
[0230] 从所述控制策略中获取与获取到的所述域名对应的策略动作;
[0231] 按照获取到的所述策略动作对所述IP报文进行报文处理。
[0232] 在本发明的一些实施例中,存储器802中存储的所述匹配条件相对应的策略动作,具体包括:所述匹配条件中添加的IP地址分别对应有策略动作;
[0233] 在本发明的一些实施例中,处理器803,具体用于执行以下步骤:
[0234] 从所述控制策略中获取与所述IP报文中携带的IP地址对应的策略动作;
[0235] 按照获取到的所述策略动作对所述IP报文进行报文处理。
[0236] 在本发明的一些实施例中,处理器803,还用于执行以下步骤:所述将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之前,判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中;
[0237] 若所述IP报文中与所述用户终端请求的域名对应的IP地址没有存在于所述匹配条件中,触发执行如下步骤:将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中。
[0238] 在本发明的一些实施例中,处理器803,还用于执行以下步骤:所述判断所述IP报文中与所述用户终端请求的域名对应的IP地址是否已经存在于所述匹配条件中之后,若所述IP报文中与所述用户终端请求的域名对应的IP地址已经存在于所述匹配条件中,当所述IP报文中还携带TTL时,根据预置的TTL更新规则确定是否对所述匹配条件中添加的IP地址的TTL进行更新。
[0239] 在本发明的一些实施例中,处理器803,还用于执行以下步骤:所述将所述IP报文中与所述用户终端请求的域名对应的IP地址添加到所述匹配条件中之后,当所述IP报文中还携带生存时间TTL时,保存所述匹配条件中添加的IP地址对应的TTL。
[0240] 在本发明的一些实施例中,处理器803,还用于执行以下步骤:所述保存所述匹配条件中添加的IP地址对应的TTL之后,或根据预置的TTL更新规则确定是否对所述匹配条件中添加的IP地址的TTL进行更新之后,判断所述匹配条件中添加的IP地址从被添加到所述匹配条件中直到当前时间组成的时间段是否超过所述匹配条件中添加的IP地址对应的TTL;若是,将超过对应TTL的IP地址从所述匹配条件中删除。
[0241] 在本发明的一些实施例中,存储器802中存储的所述匹配条件中的域名以域名哈希表的方式存储;所述匹配条件中添加的IP地址以IP哈希表的方式存储;
[0242] 在本发明的一些实施例中,处理器803,具体用于执行以下步骤:
[0243] 对从所述IP报文中解析出的域名进行哈希运算,判断运算结果与存储的域名的哈希值是否相同,若相同,则所述用户终端请求的域名存在于所述匹配条件中,若不相同,则所述用户终端请求的域名没有存在于所述匹配条件中。
[0244] 在本发明实施例中,首先获取IP报文,判断获取到的IP报文是否为DNS响应报文,若IP报文是DNS响应报文,从IP报文中解析出用户终端请求的域名,然后判断用户终端请求的域名是否存在于控制策略的匹配条件中,若用户终端请求的域名存在于匹配条件中,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现根据匹配条件中添加的IP地址和匹配条件相对应的策略动作对后续获取到的IP报文进行报文处理。
本发明实施例中将需要按照控制策略的策略动作进行报文控制的域名作为匹配条件,当用户终端访问指定的域名时,用户终端经由因特网服务器向DNS服务器发送的IP报文就是DNS请求报文,DNS服务器接收到DNS请求报文后向因特网服务器发送DNS响应报文,因特网服务器向用户终端发送的IP报文就是DNS响应报文,若获取到的IP报文就是DNS响应报文时,从IP报文中可以解析出用户终端请求的域名,在用户终端请求的域名命中匹配条件中包括的域名时,将IP报文中与用户终端请求的域名对应的IP地址添加到匹配条件中,从而可以实现基于域名为匹配条件下对IP地址的自主学习,适用于报文特征为静态参数和动态参数的多种场景,在无需提前获知IP地址的情况下就可以根据域名设定匹配条件,在IP地址可能变化时也能够自动的添加到匹配条件中,能够适用于广泛的应用场景。
[0245] 另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0246] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0247] 综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
法律信息
- 2022-01-04
专利权的转移
登记生效日: 2021.12.22
专利权人由华为技术有限公司变更为超聚变数字技术有限公司
地址由518129 广东省深圳市龙岗区坂田华为总部办公楼变更为450046 河南省郑州市郑东新区龙子湖智慧岛正商博雅广场1号楼9层
- 2018-10-09
- 2015-07-29
实质审查的生效
IPC(主分类): H04L 29/12
专利申请号: 201310733791.4
申请日: 2013.12.26
- 2015-07-01
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-04-03
|
2012-12-05
| | |
2
| |
2011-04-06
|
2010-10-29
| | |
3
| |
2007-10-03
|
2007-04-23
| | |
4
| |
2012-09-26
|
2012-05-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |