ACL:(access control list访问控制列表)
操控的是数据层面
- 是IOS软件里面的一个工具(对流量标记)
- 是一张表,记录了允许或拒绝的陈述
- 基于IP数据包里面的信息进行流量标记
- 流量被标记之后,我可以执行某些动作
- ACL可以在交换机上使用,也可以在路由器上使用
作用:
- 标记流量(在IP数据包里面进行标记的)
- 允许或拒绝一些标记的流量访问
适用范围:
- 交换机或路由器
- 经过自己接口的流量,不适用自己发向别人的流量
限制条件:
- 每个接口只能配一个ACL
ACL的作用位置,在路由选择之后,在转发出接口处:(如图)
在Test ACL Statements中:
ACL具有表项,隐式存在最后一条表项是拒绝所有,因此一般表最后加一个Permit any。
匹配顺序:由上至下,逐条匹配。
对于一个路由器,假如收到一个数据
- 我该把这个数据转发到哪?
- 我应该转发这个数据吗?ACL
- 我该怎么转发这个数据?QoS
ACL分类:
1. 根据配置方法
- 编号的ACL:access-list 开头
问题:不能删除其中的某一个表项,一删全删。 - 命名的ACL:ip access-list开头
2. 根据功能分类
- 标准的ACL
仅仅检查源IP地址,通常允许或拒绝整个协议栈,杀伤力极强。
尽量部署在靠近目的的一端(先路由,再匹配,这样就源就可以访问多个目的了,即使 浪费了一点资源)
- 扩展的ACL
不仅检查源和目的IP地址,还检查协议(传输层网络层各种协议),应用(源目端口号)。
尽量部署在源的近端(先匹配,再路由,节省资源)
- 二层的ACL
能根据源目MAC地址,type字段来匹配
再次重申:
ACL能管理流量:别人发给自己的(经过自己的或者发给自己的)
ACL不能管理流量:即自己发给别人
能够对流量进行分类控制
从上到下开始匹配一旦ACL匹配成功则停止匹配(所以写命令时一定要记住先后顺序)
具有隐式拒绝所有 deny any
Deny 192.168.1.0 0.0.0.3 拒绝了.0 .1 .2 .3
Permit any
通配符掩码:
0:精确匹配
1:忽略匹配
允许 192.168.1.1 .3 .5 .7四个网段
把IP转化为二进制后的最后三位为:
0 0 1
0 1 1
1 0 1
1 1 1
即Permit 192.168.1.1 0.0.0.6
000
010
100
110
只拒绝 192.168.1.0 .2 .4 .6四个网段
deny 192.168.1.0 0.0.0.6
0001
0010
0111
1001
1010
只匹配 192.168.1.1 -.10 10个网段
permit 192.168.1.1 0.0.0.0
deny 192.168.1.0 0.0.0.7
Deny 192.168.1.8 0.0.0.1
Deny 192.168.1.10 0.0.0.0
ACL各类具体操作:
ACL编号:
标准的ACL:1-99,1300-1999
扩展的ACL:100-199,2000-2699
编号ACL:(不推荐,因为不可以逐条删除,可不记)
标准ACL:
创建一个表项:
access-list 1(编号为1) deny(拒绝) 192.168.12.1 0.0.0.0(源IP地址)
access-list 1 permit(同意) any(所有源IP) 取消隐式拒绝所有
应用表项于接口:
ip access-group 1 out(出流量)进入接口配置出流量还是入流量
删除一个表项:
no access-list 100
扩展ACL:
例如:
access-list 100 deny tcp(协议) host 192.168.12.1
host 192.168.23.3 eq 23(telnet)
access-list 100 permit ip (协议)any any
ip access-group 100 in
命名的ACL:可以逐条删除ACE
标准的ACL:
创建一个表项:
(config)ip access-list standard 1
(config-std标准-nACL命名的acl)50(acl表项的编号) permit 1.1.1.1
删除一个表项中编号50的一项:
(config-std-nacl) no 50
删除一个表项:
No ip access-list standard 1
删除接口的历史匹配记录conf-if#no ip access-group 1 in
应用表项于接口:
ip access-group 1 in
例如:
ip access-list standard kiss
deny 1.1.1.1 0.0.0.0
permit any
ip access-group kiss in
No ip access-list standard kiss 删除ACL
扩展的ACL:
(config)#ip access-list extended ccie
(config-ext-nacl)#permit tcp 10.0.12.1
0.0.0.0(通配符)(源IP) any(目的IP) eq(端口号) 80
五元祖:permit/deny 协议 源IP地址 [源端口号可不加] 目的IP地址 [目的端口号可不加]
(config-ext-nacl)#permit ip any any 隐式允许所有
(config-ext-nacl)#int e0/0
(config-if)#ip access-group ccie in
show ip access-lists查看ACL表
注意:
只要ACL采用的是名字,那就一定是命名的配置
如果采用号,那就不一定是命名配置还是编号配置
思科设备中的ACL表
范围小的思科自动放在上边
范围大的思科自动放在下边