云阳网站制作,域名查询解析ip,长春网站建设seo,营口大石桥网站建设访问控制列表#xff08;Access Control Lists#xff0c;ACL#xff09;与哈希查找 什么是访问控制列表ACL#xff1f;直接说ACL是干啥的ACL概念为什么需要ACLACL类型ACL匹配机制使用例子 哈希查找什么是哈希查找#xff1f;哈希查找的基本原理哈希查找的步骤 哈希查找在… 访问控制列表Access Control ListsACL与哈希查找 什么是访问控制列表ACL直接说ACL是干啥的ACL概念为什么需要ACLACL类型ACL匹配机制使用例子 哈希查找什么是哈希查找哈希查找的基本原理哈希查找的步骤 哈希查找在ACL中的作用具体作用代码解析实际应用 什么是访问控制列表ACL
直接说ACL是干啥的
通俗来说ACL就是一个网络流量过滤器。具体来说读取数据包中的IP头部TCP/DUP 头部中的源IP地址目的IP地址和源端口目的端口根据设置好的ACL决定数据的丢弃还是允许通过。
ACL概念
ACL中文名称是“访问控制列表”它由一系列规则即描述报文匹配条件的判断语句组成。这里的条件包括五元组-分别是报文的源地址、目的地址、源端口、目的端口、端口号等
为什么需要ACL
根据规则过滤的ACL能够做到阻塞攻击报文、为不同类报文流提供差分服务、对Telnet登录/FTP文件下载进行控制等的功能从而提高网络环境的安全性和网络传输的可靠性。
ACL类型
基本ACL(2000-2999) 只使用报文的源IP地址、分片信息、生效时间段信息来定义规则高级ACL(3000-3999) 可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口号、UDP源/目的端口号、生效时间段等来定义规则二层ACL(4000-4999) 可根据源MAC、目的MAC、二层协议类型匹配用户自定义ACL(5000-5999) 使用报文头偏移位置字符串掩码用户自定义字符串来定义规则用户ACL(6000-6999) 既可使用IPv4报文的源IP地址或源UCL(User Control List)组也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则
ACL匹配机制
一条ACL可以由多条“deny或permit”语句组成每一条语句描述一条规则这些规则可能存在包含关系也可能有重复或矛盾的地方因此ACL的匹配顺序是十分重要的。 华为设备支持两种匹配顺序自动排序auto模式和配置顺序config模式。缺省的ACL匹配顺序是config模式。 自动排序是指系统使用“深度优先”的原则将规则按照精确度从高到低进行排序并按照精确度从高到低的顺序进行报文匹配。 配置顺序系统按照ACL规则编号从小到大的顺序进行报文匹配规则编号越小越容易被匹配。
使用例子
仅允许pc访问168.127.27.0/24网络
[Huawei]acl number 2000 创建ACL 2000
[Huawei-acl-basic-2000]rule permit source 168.127.2.0 0.0.0.255 添加一条规则允许168.127.27.1这台主机通过 0.0.0.255地址表示主机
[Huawei-acl-basic-2000]dis th查看状态
[V200R003C00]
#
acl number 2000 rule 5 permit source 168.127.2.0 0.0.0.255 这里多了一个设定好的规则 rule 5 是他的规则序号序号越小执行优先级越高
#
return
[Huawei-acl-basic-2000]rule deny source any (添加一个拒绝规则any 表示所有地址
都不允许通过)
[Huawei-acl-basic-2000]dis th 再次查看状态
[V200R003C00]
#
acl number 2000 rule 5 permit source 168.127.2.0 0.0.0.255 rule 10 deny 这里又多了一条规则 规则号是10
#
return
[Huawei]int g0/0/2 进入接口
[Huawei-GigabitEthernet0/0/2]ip add 168.127.27.254 24 给接口添加IP地址
[Huawei-GigabitEthernet0/0/2]traffic-filter outbound acl 2000 给端口调用 acl2000 的配置,outbound表示将这个端口设置为出口模式即从路由器出来的数据要经过 acl 规则进行匹配哈希查找
什么是哈希查找
哈希查找是一种用于快速检索数据的算法。它通过将关键字例如IP地址、MAC地址等转换为一个固定长度的索引值并使用这个索引值在哈希表中查找对应的数据从而大大提高检索速度。
哈希查找的基本原理
哈希函数将关键字转换为固定长度的哈希值。好的哈希函数应当尽量将不同的关键字映射到不同的哈希值以减少冲突。哈希表一种数据结构用于存储哈希值和对应的数据项。哈希表通常是一个数组哈希值作为索引用于定位数据项。
哈希查找的步骤
计算哈希值使用哈希函数计算关键字的哈希值。查找数据项在哈希表中通过哈希值定位数据项。如果没有冲突可以直接找到数据项如果有冲突根据处理冲突的方法找到数据项。
哈希查找在ACL中的作用
具体作用
在访问控制列表ACL管理中哈希查找用于快速匹配数据包与ACL规则提高匹配效率。ACL用于控制网络流量包含一系列规则规定哪些流量可以通过哪些需要阻止。使用哈希查找可以加速ACL规则的匹配过程尤其在规则数量较多时效果显著。
代码解析
static void
vl_api_acl_plugin_use_hash_lookup_get_reply_t_handler (vl_api_acl_plugin_use_hash_lookup_get_reply_t *mp)
{vat_main_t *vam acl_test_main.vat_main;clib_warning (ACL hash lookups enabled: %d, mp-enable);vam-result_ready 1;
}主要功能 消息类型处理 vl_api_acl_plugin_use_hash_lookup_get_reply_t 类型的API消息回复。这种消息类型通常包含哈希查找使能状态的信息。参数说明 mp指向 vl_api_acl_plugin_use_hash_lookup_get_reply_t 结构体的指针包含哈希查找使能状态信息。 vam指向 vat_main_t 结构体的指针从 acl_test_main 全局变量中获取。处理逻辑 clib_warning (“ACL hash lookups enabled: %d”, mp-enable);打印哈希查找使能状态。mp-enable 是一个整数通常值为0或1分别表示哈希查找未使能或已使能。 vam-result_ready 1;设置 vat_main_t 结构体中的 result_ready 标志为1表示结果已准备好。
实际应用
假设在一个大型网络环境中网络管理员需要管理数千条ACL规则。为了提高效率可以通过API启用哈希查找功能然后通过上述代码检查哈希查找是否已成功启用。