ACL解析
接入控制列表
Access Control Lists 接入控制列表 俗称防火墙
ACL学习
适用范围分类:安全ACLs和QoS ACLs
安全ACLs——控制哪些数据流允许从网络设备通过
QoS策略——对数据流进行优先级分类和处理
组成:
ACLs —— 由ACE组成
ACE接入控制列表表项 —— 申明了满足该表项的匹配条件和行为
示例:
10 permit ip host 1.1.1.1 any
* 10代表ACE序列号,越小越优先
* permit代表动作——允许 ,deny——拒绝
* Ip host 1.1.1.1 any表明报文必须是IP报文,且源IP必须是1.1.1.1 目的IP没限制
工作原理:
- 当一个数据报进入一个端口,路由器检查这个数据报是否可路由。如果可以路由,检查这个端口是否有ACL控制进入数据报。如果有,根据ACL中的条件指令,检查数据报。如果数据报被允许的,就查询路由表,决定数据报的目标端口。
- 路由器检查目标端口是否存在ACL控制流出的数据报。若不存在,这个数据报直接发送给目标端口。若存在,就再根据ACL进行取舍,再转发到目的端口。
- 总结:一个入站数据报,由路由器处理器调入内存,读取数据报包头信息,如目标IP并搜索路由表,如有表项中有,则从路由表的选择接口转发(如果表项中没,丢弃),数据进入该接口的访问控制列表(如果没ACL,直接转发),按条件进行筛选。
两个方向:
- 出 out :已经进入路由器,正离开路由器接口的数据包
- 进 in : 已到达路由器接口的数据包,将被路由器处理
使用:
1.“3P”原则
在路由器上应用ACL时,可以为每种协议(Per Protocol)、每个方向(Per Direction)和每个接口(Per Interface)配置一个ACL,一般称为“3P原则”。
- 一个ACL只能基于一种协议,因此每种协议都需要配置单独的ACL。
- 经过路由器接口的数据有进(ln)和出(Out)两个方向,因此在接口上配置访问控制列表也有进(In)和出(Out)两个方向。每个接口可以配置进方向的ACL,也可以配置出方向的ACL,或者两者都配置,但是一个ACL只能控制一个方向。
- 一个ACL只能控制一个接口上的数据流量,无法同时控制多个接口上的数据流量。
2.语句顺序决定了对数据的控制顺序
ACL的语句是一种自上而下的逻辑排列关系。数据匹配过程中是依次对语句进行比较,一旦匹配成功则按照当前语句控制策略处理,不再与之后的语句进行比较。因此,正确的语句顺序才能得到所需的控制效果。
3.至少有一条允许(Permit)语句
所有ACL的最后一条语句都是隐式拒绝语句,表示当所有语句都无法匹配时,将拒绝数据通过并自动丢弃数据,以防数据意外进入网络。因此,在写“拒绝(deny)”的ACL时,一定至少要有一条允许(Permit)语句,否则配置ACL的接口将拒绝任何数据通过,影响正常的网络通信。
4.最有限制性的语句应该放在ACL的靠前位置
最有限制性的语句放在ACL的靠前位置,可以首先过滤掉很多不符合条件的数据,节省后面语句的比较时间,从而提高路由器的工作效率。