首页 / ACL配置实现方法

ACL配置实现方法有效专利 发明

技术内容

技术领域 本发明涉及数据通信领域,尤其涉及ACL配置实现方法。 背景技术 ACL(Access Control List)是一种定义流的工具,它的全称为访问 控制列表。ACL通过一系列的匹配条件对数据报文进行分类,这些条件可 以是数据包的目的地址、源地址、端口号等。ACL应用在交换路由设备的 虚接口或者物理接口等,路由交换设备根据ACL中指定的匹配条件来检测 数据包,从而决定该数据包转发或者丢弃。 ACL目前的匹配规则主要是针对数据报文中固定字段进行匹配,并且 对于不同的匹配标准定义了不同的名字,按照行业中通用的称呼如下,我 们称之为固定ACL: 标准ACL:源地址。 扩展ACL:源地址、目的地址等五元组。 二层ACL:源目的MAC、VLAN等。 混合ACL:包括以上ACL匹配字段的组合。 这些ACL匹配字段几乎涵盖了数据报文头所有的常用字段,但是对于 报文头中某些字段之间的精确组合却不能做到,但是在实际应用中我们经 常遇到。例如,目的MAC的最后一个字节与源MAC的第一字节的组合匹配 等,这种匹配虽然可以使用二层ACL进行配置,但是对于报文头某些字段 组合却无能为力(例如目的MAC的第二字节和IP数据包中分片的字段 FLAG+偏移量offset,如IP地址和数据开始的第一个字节的组合,各种用 户需要的组合都能实现),现在的ACL都不能和数据有组合。 发明内容 本发明所要解决的技术问题是提供一种可以对一些不能使用或者不宜 使用固定ACL的特定字段通过用户自定义ACL的方式来处理的ACL配置实 现方法。 本发明所述的ACL配置实现方法,应用在路由交换设备上,包括以下 步骤: A、用户自定义ACL规则并下发; B、路由交换设备决定是否重新配置模板; C、路由交换设备根据模板中生效的ACL写驱动。 在几个端口使用不同模板的情况下,路由交换设备重新配置模板。在 这种情况下,通常都需要重新配置模板。 在几个端口共同使用一个模板的情况下,路由交换设备比较用户自定 义ACL规则与模板中已配置的规则,如果本组资源的模板中定义字段已经 包含下发ACL中使用的字段,则不重新配置模板;如果不包含下发ACL中 使用的字段,则需重新配置模板。这是针对几个端口共同使用一个模板的 情况,决定是否重新配置模板的一种方法。 在一个端口、一个模板的情况下,路由交换设备比较用户自定义ACL 规则与模板中已配置的规则,如果本组资源的模板中定义字段已经包含下 发ACL中使用的字段,则不重新配置模板;如果不包含下发ACL中使用的 字段,则需重新配置模板。这是针对一个端口、一个模板的情况,决定是 否重新配置模板的一种方法。 首先全部清除已经生效的自定义ACL; 然后根据本次下发的ACL和以前已经下发过的ACL重新设置自定义 ACL模板; 模板设置完成以后,将本次ACL绑定生效。这是重新配置模板的具体 方法。 模板设置完成以后,除将本次ACL绑定生效以外,还需将原先已经删 除掉的ACL按照新的模板进行重新绑定生效。这样可以设模板中生效的ACL 定义字段更丰富。 所述的步骤A中用户自定义的ACL规则下发包括以下步骤: 查ACL表,按顺序提取其中生效的RULE,产生RULE表; 按输入接口参数,提取要增加此ACL的物理接口列表; 将产生的RULE表和物理接口列表传递给驱动接口函数。这是自定义的 ACL规则下发的具体方法。 所述的步骤A中所述定义的内容包括数据报文头开始将要偏移的字节 数、匹配字节的长度、匹配字节的内容、数据报文中存在的VLAN个数。规 定VLAN的个数对于现在的芯片更容易实现。 本发明由于用户可以通过自定义ACL规则对于那些使用业界通用ACL 形式不能或者不容易匹配到的字段进行ACL设置。所以丰富了ACL定义的 内容,可以更好地实现数据报文的过滤。 附图说明 图1是实施例中的ACL配置实现方法流程图。 图2是用户自定义的ACL规则下发流程图。 图3是多个端口公用一个模板结构示意图。 图4是每个端口公用一个模板结构示意图。 图5是VLAN个数为0时数据报文结构示意图。 图6是VLAN个数为1时数据报文结构示意图。 图7是VLAN个数为2时数据报文结构示意图。 具体实施方式 参考图1 实施例中所述的ACL配置实现方法,应用在路由交换设备上,包括以 下步骤: 1、用户自定义ACL规则并下发; 所述的步骤A中所述定义的内容包括数据报文头开始将要偏移的字节 数、匹配字节的长度、匹配字节的内容、数据报文中存在几个VLAN值。 参考图2,用户自定义的ACL规则下发包括以下步骤: 1.1、查ACL表,按顺序提取其中生效的RULE,产生RULE表; 1.2、按输入接口参数,提取要增加此ACL的物理接口列表; 1.3、将产生的RULE表和物理接口列表传递给驱动接口函数。 2、参考图3、图4路由交换设备判断是否几个端口使用不同模板,如 果是转到步骤4;如果不是转到步骤3; 3、路由交换设备比较用户自定义ACL规则与模板中已配置的规则,如 果本组资源的模板中定义字段已经包含下发ACL中使用的字段,则转到步 骤5;如果不包含转到步骤4; 4、路由交换设备重新配置模板; 4.1、首先全部清除已经生效的自定义ACL; 4.2、然后根据本次下发的ACL和以前已经下发过的ACL重新设置自定 义ACL模板; 4.3、模板设置完成以后,除将本次ACL绑定生效以外,还需将原先已 经删除掉的ACL按照新的模板进行重新绑定生效。 5、路由交换设备根据根据模板中生效的ACL写驱动,转到步骤6; 6、结束。 下面举例说明自定义ACL数据过滤流程: 自定义ACL的配置可以为tag(vlan的个数)offset(从数据报文 二层头开始的偏移量)rule(需要匹配的字段的规则)mask(匹配的字段 的规则的掩码)后面可以有几个offset rule mask. 参考图5,当tag=0时 配了自定义ACL后, 1:从配置的自定义ACL中得到tag值, 2:如果tag为0,即该数据包没有vlan标记,这时从二层头源mac的 地方开始偏移配置的自定义ACL offset个字节,找到要匹配的数据的位 置, 3:从该位置配置配置的规则。如果该规则后面没有再配置offest, 如果全部匹配了,则该数据报文符合该条规则。否则认为该数据报文不满 足该规则的条件。完成过滤。 4:如果配置了多个offset rule mask,则继续执行1,2,3的步 骤。 例如: 配置的自定义ACL为 tag 0 offestl 18 0x1234 0xffff offest2 22 0x222a 0xffff offest3 26 0xbbba 0xffff 过滤数据报文为这样: 1:知道tag为0,即在对报文定位偏移量不需要去除vlan所占的长 度 2:从该数据包源MAC的位置开始偏移到18个字节的地方。 3:从该地方开始对报文中的字段值是否符合配置的规则0x1234 0xffff。该后面还有需要匹配的规则。 4:从该数据包源MAC的位置开始偏移到22个字节的地方。 5:从该地方开始对报文中的字段值是否符合配置的规则0x222a 0xffff,该后面还有需要匹配的规则。 6:从该数据包源MAC的位置开始偏移到26个字节的地方。 7:从该地方开始对报文中的字段值是否符合配置的规则0xbbba 0xffff。匹配完成,完成对该数据包的过滤。 参考图6,当tag=1时 配了自定义ACL后, 1:从配置的自定义ACL中得到tag值, 2:如果tag为1,即该数据包有vlan标记,一个vlan标记为4个字 节。这时找到需要匹配的 数据报文的起始位置,仍然从二层头源mac的地方开始,如果配置的 偏移量大于14,则在 定位偏移量的时候要加上4个字节,即相当于在定位该偏移量的时候 不算vlan的长度了。 找到该位置后,继续下面的操作。 3:从该位置配置配置的规则。如果该规则后面没有再配置offest, 如果全部匹配了,则该数据报文符合该条规则。否则认为该数据报文不满 足该规则的条件。完成过滤。 4:如果配置了多个offset rule mask.,则继续执行1,2,3的 步骤。 例如: 配置的自定义ACL为 tag 1 offestl 38 0x1234 0xffff offest2 50 0x222a 0xffff offest3 62 0xbbba 0xffff 过滤数据报文为这样: 1:知道tag为1,即在对报文定位偏移量需要去除vlan所占的长度 2:因为该tag值为1,在定位该数据包的偏移量时,配置的offest为 38,则定位该数据包的偏移量是38+4=22,即从该数据包头偏移到42的 位置。 3:从该地方开始对报文中的字段值是否符合配置的规则0x1234 0xffff。该后面还有需要匹配的规则。 4:因为该tag值为1,在定位该数据包的偏移量时,配置的offest为 50,则定位该数据包的偏移量是50+4=26,即从该数据包头偏移到54的 位置。 5:从该地方开始对报文中的字段值是否符合配置的规则0x222a 0xffff,该后面还有需要匹配的规则。 6:因为该tag值为1,在定位该数据包的偏移量时,配置的offest为 62,则定位该数据包的偏移量是62+4=30,即从该数据包头偏移到66的 位置。 7:从该地方开始对报文中的字段值是否符合配置的规则0xbbba 0xffff。匹配完成,完成对该数据包的过滤。 参考图7,当tag=2时 配了自定义ACL后, 1:从配置的自定义ACL中得到tag值, 2:如果tag为2,即该数据包有2个vlan标记,一个vlan标记为4 个字节。这时找到需要匹配的 数据报文的起始位置,仍然从二层头源mac的地方开始,如果配置的 偏移量大于14,则在 定位偏移量的时候要加上8个字节,即相当于在定位该偏移量的时候 不算vlan的长度了。 找到该位置后,继续下面的操作。 3:从该位置配置配置的规则。如果该规则后面没有再配置offest, 如果全部匹配了,则该数据报文符合该条规则。否则认为该数据报文不满 足该规则的条件。完成过滤。 4:如果配置了多个offset rule mask.,则继续执行1,2,3的 步骤。 例如: 配置的自定义ACL为 tag 2 offestl 30 0x1234 0xffff offest2 42 0x222a 0xffff offest3 50 0xbbba 0xffff 过滤数据报文为这样: 1:知道tag为2,即在对报文定位偏移量需要去除vlan所占的长度。 2:因为该tag值为2,在定位该数据包的偏移量时,配置的offest为 30,则定位该数据包的偏移量是30+8=38,即从该数据包头偏移到38的 位置。 3:从该地方开始对报文中的字段值是否符合配置的规则0x1234 0xffff。该后面还有需要匹配的规则。 4:因为该tag值为2,在定位该数据包的偏移量时,配置的offest为 42,则定位该数据包的偏移量是42+8=50,即从该数据包头偏移到50的 位置。 5:从该地方开始对报文中的字以上内容是结合具体的优选实施方式对 本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些 说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构 思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的 保护范围。 段值是否符合配置的规则0x222a 0xffff,该后面还有需要匹配的规 则。 6:因为该tag值为2,在定位该数据包的偏移量时,配置的offest为 50,则定位该数据包的偏移量是50+8=30,即从该数据包头偏移到58的 位置。 7:从该地方开始对报文中的字段值是否符合配置的规则0xbbba 0xffff。匹配完成,完成对该数据包的过滤。 以上内容是结合具体的优选实施方式对本发明所作的进一步详细说 明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。

相关技术
配置实现相关技术
潘家民发明人的其他相关专利技术