一种报文过滤方法和交换设备 【技术领域】
本发明涉及网络安全技术领域,具体而言,涉及一种报文过滤方法和交换设备。 背景技术
IPv6 Source Guard 是一种基于 IPv6 地址和 MAC 地址的端口流量过滤技术,它可 以防止局域网内的 IPv6 地址欺骗攻击。 交换机内部有一个 IPv6 源地址绑定表作为每个端 口接收到的数据包的检测标准。 只有在两种情况下,交换机会转发数据——或者所接收 到的 IPv6 包满足 IPv6 源地址绑定表中 PORT/IPv6/MAC 的对应关系,或者是接收到的是 DHCPv6 数据包,其余数据包将被交换机做丢弃处理。 当 DHCPv6 SNOOPING 在一个非 信任口启用的时候,启用它上面的 IPv6 source guard,交换机将阻止非信任口上收到的所 有 IP 流量。 用户上线后,这个端口上将基于 DHCPv6 SNOOPING 绑定数据库生成一条端口访问控制列表,这条访问控制列表仅允许在 ACL 策略中存在的源地址的 IP 流量,并 阻止其他的流量。
当 前 的 IPv6 源 地 址 绑 定 表 一 般 都 是 基 于 DHCPv6 SNOOPING 绑 定 表。 DHCPv6SNOOPING 是一个基于 DHCPv6 的功能。 它通过监听 DHCPv6 用户同 DHCPv6 SERVER 的报文交互来生成绑定表,并使用绑定表对接入用户进行控制。 在一个典型的 DHCPv6 交互过程中,参见图 1,根据相关技术的 IPv6 Source Guard 的通用解决方案流 程,包括如下三个部件,用户 102、交换设备 104 以及服务器 106,以上三个部件执行如 下步骤 :
S101,在交换设备上开启 DHCPv6 SNOOPING 功能,在用户直连的交换设备端 口开启 IPv6Source Guard 功能,在开启 IPv6 Source Guard 功能时,下载 ACL 策略 ;
S102,当交换设备收到 DHCPv6 用户会向服务器发送的一个 Solicit 报文 ( 请求 报文 ),该报文被设备中的 DHCPv6 SNOOPING 模块监听到后进行处理,并转发给服务 器;
S103,服务器收到此报文后,封装响应报文 Advertise( 通知报文 ),在封装此报 文时需要填充二层头,此时服务器先在自己的缓存中查找用户的二层头地址,如果没有 找到,则向用户发送一个邻居请求 NS(Neighbor Solicitation) 报文 ;
S104,用户收到 NS 报文后,发送一个 NA(Neighbor Advertisement) 报文通告服 务器自己的二层地址 ;
S105,服务器依据此 NA 报文更新缓冲信息,并填充报文 Advertise 的二层头, 然后发给交换设备,设备上的 DHCPv6 SNOOPING 处理后转发给用户 ;
S106,用户处理完 Advertise 报文后,向服务器发送 Request 报文 ( 请求报文 ) 以 请求地址 ;
S107,服务器回复 Reply( 响应报文 ) 确认对地址的分配 ;交互完成后,DHCPv6 SNOOPING 模块将生成绑定表,下 ACL 策略,转发给用户。可 见, 在 启 用 IPv6 Source Guard 到 时 候 就 下 了 一 条 ACL 策 略 以 便 在 正 常 DHCPv6 报文交换的过程中,DHCPv6 服务器期待的响应报文 NA 报文可以通过。 从图 1 中的步骤可以看出,每个端口都多占用了一条 ACL 策略并且用户在没有通过 DHCPv6 服 务器获得 IP 地址时也可以访问本地网络。
在开启 IPv6 Source Guard 的场景下,当用户和服务器交互到步骤 S103- 步骤 S105 并且服务器没有在缓存中查找的用户的二层头地址时,会向用户发送 NS 以询问其二 层地址。 由于此时用户没有上线,在过滤表中不存在用户的信息,因此任何报文都将被 过滤,包括用户的响应报文 NA。 服务器收不到 NA 报文,就无法填充二层头,导致不能 发出 Advertise 报文,正常的 DHCPv6 交互过程不能完成。
现有技术中,一般都是通过在启用 Ipv6 Source Guard 的时候下 ACL 策略来解 决。 大致有三种方法。 第一种是在启用 Ipv6 Source Guard 的时候,下一条 ACL 策略,只 要 IPv6 源地址是 FE80 开头的报文都让它通过 ( 注 :FE80 开头的地址是本地链路地址 ) ; 第二种方法是使用 ACL 非自定义模式,由于非自定义模式能匹配的报文的长度有限制, 因此只能下一条让 ICMPv6 报文通过的策略 ;第三种是使用自定义的 ACL 模式,可以匹 配到较长的位置,下一条让 NS 和 NA 通过的报文。 这三种方法都有缺陷 :第一种方法 下,使用本地链路地址作为源地址的用户协议报文和数据报文仍然可以访问本地网络, 并没有起到过滤的作用 ;第二种方法,过滤了源地址是本地链路地址的数据报文,但是 使得 Ping 报文也可以通过 ;第三种方法只让 NS 和 NA 通过,但是使用了一条宝贵的自定 义模式下的 ACL 资源,而自定义模式下的 ACL 资源数量和非自定义模式相比非常有限。 发明内容
本发明的主要目的在于提供一种报文过滤方法和交换设备,以解决相关技术中 过滤报文时产生的浪费 ACL 资源的问题。
根据本发明的一个方面,提供了一种报文过滤方法,包括如下步骤 :交换设备 根据用户发送的请求报文生成临时访问控制列表 ACL 策略 ;所述交换设备向所述用户转 发服务器发送的邻居请求 NS 报文 ;所述交换设备判断所述用户发送的响应于所述邻居请 求 NS 报文的邻居通知 NA 报文是否与所述临时 ACL 策略匹配 ;若匹配,则所述交换设备 进行所述用户和所述服务器之间的报文转发,并删除所述临时 ACL 策略。
进一步地,所述交换设备根据用户发送的请求报文生成临时 ACL 策略的步骤包 括 :从所述请求报文中获取所述用户的源二层地址和源三层地址 ;根据所获取的源二层 地址和源三层地址生成所述临时 ACL 策略。
进一步地,根据所获取的源二层地址和源三层地址生成所述临时 ACL 策略的步 骤包括 :获取所述用户的源二层的 MAC 地址和源三层的 IPv6 地址,并将所述 MAC 地址 和所述 IPv6 地址组合为临时 ACL 策略。
进一步地,所述交换设备判断所述 NA 报文是否与所述临时 ACL 策略匹配的步 骤包括 :判断所述 NA 报文中的 MAC 地址和 IPv6 地址是否与所述临时 ACL 策略中的 MAC 地址和 IPv6 地址相同,若相同,则判断出所述 NA 报文与所述临时 ACL 策略匹配 ; 否则,判断出所述 NA 报文与所述临时 ACL 策略不匹配。
进一步地,在交换设备根据用户发送的请求报文生成临时 ACL 策略时,报文过滤方法还包括 :将当前使用的 ACL 策略更新为所述临时 ACL 策略,并启用临时 ACL 策 略定时器。
进一步地,删除所述临时 ACL 策略的步骤包括 :若所述临时 ACL 策略定时器超 时,则删除所述临时 ACL 策略。
进一步地,在所述交换设备进行所述用户和所述服务器之间的报文转发之后, 报文过滤方法还包括 :所述交换设备生成用户数据绑定表,其中,所述用户数据绑定表 用于在所述用户获得 IPv6 地址之后,允许所述用户访问所述服务器。
根据本发明的另一方面,提供了一种交换设备,包括 :生成单元,用于根据用 户发送的请求报文生成临时 ACL 策略 ;转发单元,用于向所述用户转发服务器发送的 NS 报文 ;判断单元,用于判断所述用户发送的响应于所述 NS 报文的 NA 报文是否与所述临 时 ACL 策略匹配 ;处理单元,用于在所述判断单元判断出所述用户发送的响应于所述 NS 报文的 NA 报文与所述临时 ACL 策略匹配时,进行所述用户和所述服务器之间的报文转 发,并删除所述临时 ACL 策略。
进一步地,所述生成单元包括 :获取模块,用于从所述请求报文中获取所述用 户的源二层地址和源三层地址 ;生成模块,用于根据所获取的源二层地址和源三层地址 生成所述临时 ACL 策略。 进一步地,所述获取模块包括 :获取子模块,用于获取所述用户的源二层的 MAC 地址和源三层的 IPv6 地址 ;所述生成模块包括 :生成子模块,用于将所述 MAC 地 址和所述 IPv6 地址组合为临时 ACL 策略。
通过本发明,采用一个生成临时 ACL 策略和删除 ACL 策略的机制,解决了相关 技术中过滤报文时产生的浪费 ACL 资源的问题,进而达到了在减少对 ACL 资源浪费的前 提下,又实现了 IPv6 Source Guard 的基本功能,保障了网络的安全性的效果。
附图说明 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本 发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。 在附图 中:
图 1 是根据相关技术的 IPv6 Source Guard 的通用解决方案流程图 ;
图 2 是根据本发明实施例的报文过滤方法的一种优选流程图 ;
图 3 是根据本发明实施例的交换设备的一种优选结构框图 ;
图 4 是根据本发明实施例的报文过滤方法的网络结构示意图 ;
图 5 是根据本发明实施例的报文过滤方法的另一种优选流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。 需要说明的是,在不冲突 的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例 1
图 2 是根据本发明实施例的报文过滤方法的一种优选流程图,包括如下步骤 :
S202,交换设备根据用户发送的请求报文生成临时 ACL 策略 ;S204,交换设备向用户转发服务器发送的 NS 报文 ; S206,交换设备判断用户发送的响应于 NS 报文的 NA 报文是否与临时 ACL 策略匹配 ; S208,若匹配,则交换设备进行用户和服务器之间的报文转发,并删除临时 ACL 策略。 优选的,交换设备在报文转发的交互完成或超时的情况下删除临时 ACL 策 略。
在本优选实施例中,采用一个生成临时 ACL 策略和删除 ACL 策略的机制,解决 了相关技术中过滤报文时产生的浪费 ACL 资源的问题,进而达到了在减少对 ACL 资源浪 费的前提下,又实现了 IPv6 Source Guard 的基本功能,保障了网络的安全性的效果。
优选的,交换设备根据用户发送的请求报文生成临时 ACL 策略的步骤包括 :从 请求报文中获取用户的源二层地址和源三层地址 ;根据所获取的源二层地址和源三层地 址生成临时 ACL 策略。 在本优选实施例中,说明了如何生成临时 ACL 策略,从而保证 了减少对 ACL 资源的浪费。
优选的,根据所获取的源二层地址和源三层地址生成临时 ACL 策略的步骤包 括 :获取用户的源二层的 MAC 地址和源三层的 IPv6 地址,并将 MAC 地址和 IPv6 地址 组合为临时 ACL 策略。 在本优选实施例中,进一步说明了如何生成临时 ACL 策略,从 而保证了减少对 ACL 资源的浪费。
优选的,交换设备判断 NA 报文是否与临时 ACL 策略匹配的步骤包括 :判断 NA 报文中的 MAC 地址和 IPv6 地址是否与临时 ACL 策略中的 MAC 地址和 IPv6 地址相同, 若相同,则判断出所述 NA 报文与所述临时 ACL 策略匹配 ;否则,判断出所述 NA 报文 与所述临时 ACL 策略不匹配。 在本优选实施例中,进一步说明了如何匹配临时 ACL 策 略,保证实现了 IPv6Source Guard 的基本功能,保障了网络的安全性。
优选的,在交换设备根据用户发送的请求报文生成临时 ACL 策略时,根据本发 明实施例的报文过滤方法还包括 :将当前使用的 ACL 策略更新为临时 ACL 策略,并启用 临时 ACL 策略定时器。 在本优选实施例中,保证临时 ACL 策略得以被删除,进一步保 证了减少对 ACL 策略的浪费。
优选的,删除临时 ACL 策略的步骤包括 :若临时 ACL 策略定时器超时,则删除 临时 ACL 策略。 在本优选实施例中,进一步保证临时 ACL 策略得以被删除,进一步保 证了减少对 ACL 策略的浪费。
优选的,在交换设备进行用户和服务器之间的报文转发之后,根据本发明实施 例的报文过滤方法还包括 :交换设备生成用户数据绑定表,其中,该用户数据绑定表用 于在用户获得 IPv6 地址之后,允许用户访问服务器。 在本优选实施例中,进一步保证实 现了 IPv6 Source Guard 的基本功能,保障了网络的安全性。
实施例 2
图 3 是根据本发明实施例的交换设备的一种优选结构框图,包括 :生成单元 302,用于根据用户发送的请求报文生成临时 ACL 策略 ;转发单元 304,用于向所述用户 转发服务器发送的 NS 报文 ;判断单元 306,用于判断所述用户发送的响应于所述 NS 报 文的 NA 报文是否与所述临时 ACL 策略匹配 ;处理单元 308,用于在所述判断单元 306 判 断出所述用户发送的响应于所述 NS 报文的 NA 报文与所述临时 ACL 策略匹配时,进行所
述用户和所述服务器之间的报文转发,并删除所述临时 ACL 策略。
在本优选实施例中,采用一个生成临时 ACL 策略和删除 ACL 策略的机制,解决 了相关技术中过滤报文时产生的浪费 ACL 资源的问题,进而达到了在减少对 ACL 资源浪 费的前提下,又实现了 IPv6 Source Guard 的基本功能,保障了网络的安全性的效果。
优选的,生成单元 302 包括获取模块,用于从请求报文中获取用户的源二层地 址和源三层地址 ;生成模块,用于根据所获取的源二层地址和源三层地址生成临时 ACL 策略在本优选实施例中,说明了如何生成临时 ACL 策略,从而保证了减少对 ACL 资源的 浪费。
优选的,获取模块包括 :获取子模块,用于获取用户的源二层的 MAC 地址和源 三层的 IPv6 地址 ;生成模块包括 :生成子模块,用于将 MAC 地址和 IPv6 地址组合为临 时 ACL 策略。 在本优选实施例中,进一步说明了如何生成临时 ACL 策略,从而保证了 减少对 ACL 资源的浪费。
优选的,判断单元 306 包括 :判断模块,用于判断 NA 报文中的 MAC 地址和 IPv6 地址是否与临时 ACL 策略中的 MAC 地址和 IPv6 地址相同,若相同,则判断出 NA 报文与临时 ACL 策略匹配 ;否则,判断出 NA 报文与临时 ACL 策略不匹配。 在本优选 实施例中,进一步说明了如何匹配临时 ACL 策略,保证实现了 IPv6 Source Guard 的基本 功能,保障了网络的安全性。 优选的,生成单元 302 还包括 :更新模块,用于在交换设备根据用户发送的请 求报文生成临时 ACL 策略时,将当前使用的 ACL 策略更新为临时 ACL 策略 ;启用模 块,用于启用临时 ACL 策略定时器。 在本优选实施例中,保证临时 ACL 策略得以被删 除,进一步保证了减少对 ACL 策略的浪费。
优选的,处理单元 308 包括 :删除模块,用于若临时 ACL 策略定时器超时,删 除临时 ACL 策略。 在本优选实施例中,进一步保证临时 ACL 策略得以被删除,进一步 保证了减少对 ACL 策略的浪费。
优选的,处理单元 308 还包括用户绑定表生成模块,用于在交换设备进行用户 和服务器之间的报文转发之后,生成用户数据绑定表,该用户数据绑定表用于在用户获 得 IPv6 地址之后,允许用户访问服务器。 在本优选实施例中,进一步保证实现了 IPv6 Source Guard 的基本功能,保障了网络的安全性。
实施例 3
本实施例中,实现 IPv6 Source Guard 并且节约 ACL 资源的方法采用如下方案 :
1) 临时 ACL 策略。 在 DHCPv6 SNOOPING 模块收到 DHCPv6 交互报文的第一 个请求报文时,从报文中解析出二层源地址和三层源 IP 地址 ( 本地链路地址 )。 这两个 地址作为临时 ACL 策略的基本数据。
2) 提前更新 ACL 策略的机制。 在 DHCPv6 SNOOPING 模块从 DHCPv6 交互报 文的第一个请求报文中提取出临时 ACL 策略后就更新 ACL 策略,不必等到用户上线后更 新正式策略。
3) 临时 ACL 策略状态定时器。 在把临时 ACL 策略下到非自定义模式 ACL 中后 启动状态定时器。
4) 临时 ACL 策略删除机制。 在定时器期限内,若没有完成正常的交互过程,则
删除此临时 ACL 策略 ;在用户成功完成 DHCPv6 报文交互,正常上线后删除此临时 ACL 策略。
图 4 是根据本发明实施例的报文过滤方法的网络结构示意图,如图 4 所示的网 络,包括 :DHCPv6 服务器 401、支持 DHCPv6 SNOOPING 和 IPv6 Source Gard 的交换设 备 402、终端用户 403 和 404。
其中,DHCPv6 服务器 401 和交换设备 402 直连,终端用户 403 和 404 也和交换 机直连。 交换设备 402 开启 DHCPv6 SNOOPING 功能,同时在交换设备 402 同终端用户 403 和 404 直连的端口开启 IPv6 Source Guard 功能。
需要说明的是,此图仅是一个 DHCPv6 SNOOPING 和 IPv6 Source Guard 的典型 应用场景,本发明不局限于此场景。
图 5 是基于图 4 的网络结构报文过滤方法的另一种优选流程图,包括如下三个部 件 :用户 403、交换设备 402 和服务器 401,以上三个部件之间执行如下步骤 :
S501,在交换设备 402 上开启 DHCPv6 SNOOPING 功能,在用户 403 直连的交 换设备 402 端口开启 IPv6 Source Guard 功能,在开启 IPv6 Source Guard 功能时,不需要 多下表项,只需下一条 Deny Any 的策略 ;
S502,当交换设备 402 收到 DHCPv6 用户 403 的第一个请求报文时, DHCPv6 SNOOPING 模块从该请求报文中解析出用户 403 的源二层地址和源三层地址, DHCPv6 SNOOPING 模块依据解析出的用户 403 的源二层地址和源三层地址生成临时 ACL 策略, 下 ACL,启用临时 ACL 策略定时器, DHCPv6 SNOOPING 模块转发此请求报文 ;
S503,交换设备 402 收到服务器 401 的请求用户 403 二层地址的邻居请求 NS 报 文,并转发此报文 ;
S504,交换设备 402 收到用户 403 响应服务器 401NS 的报文 NA 邻居通知报文 后,发现在过滤表中已经存在一条临时 ACL 策略和此 NA 报文匹配,那么透传此报文 NA ;
S505,DHCPv6 服务器 401 依据 NA 报文更新本地缓存,封装 Adertise 报文的二 层头,发给用户 403, DHCPv6 SNOOPING 模块收到 DHCPv6 响应报文 Advertise 后进行 处理并转发给 DHCPv6 用户 403 ;
S506,DHCPv6 SNOOPING 模块收到 DHCPv6 用户 403 的请求报文 Request 后, 转发给服务器 401 ;
S507,DHCPv6 SNOOPING 模块收到 DHCPv6 响应报文 Reply 后,解析 Reply 报 文中的信息,生成用户数据绑定表,删除临时 ACL 策略,下用户过滤策略到 ACL,若在 交互过程中,临时 ACL 策略定时器超时,则删除临时 ACL 策略。
从以上的描述中,可以看出,本发明实现了如下技术效果 :
通过本发明,采用一个生成临时 ACL 策略以及提前更新 ACL 策略和删除 ACL 策略的机制,解决了现有技术网络安全性低和浪费 ACL 资源的问题,进而达到了既实现 了 IPv6 SourceGuard 的基本功能,又保障了网络的安全性,并且减少了对资源的占用的效 果。 具体体现在 :(1) 用户在没通过 DHCPv6 获得 IP 地址之前不能访问网络,包括本地 网络和全球网络。 从而保证了网络的安全性。 (2) 能够减少对 ACL 资源的占用,降低设 备的硬件成本,节约了极其有限的 ACL 资源。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通 用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所 组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将 它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺 序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中 的多个模块或步骤制作成单个集成电路模块来实现。 这样,本发明不限制于任何特定的 硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的 技术人员来说,本发明可以有各种更改和变化。 凡在本发明的精神和原则之内,所作的 任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。