ACL ——访问控制列表
- ACL属于策略的一种
ACL访问控制列表的作用:
- 访问控制:在路由器流量流入或流出的接口上,匹配流量,然后执行设定好的动作:permit(允许)、deny(拒绝)。
- 抓取感兴趣流:ACL的另一个作用就是和其他服务结合使用。ACL只负责抓取流量,动作由其他服务来执行。
ACL列表的匹配规则:
- 自上而下,逐一匹配。
- 如果匹配到了,则执行对应的动作,则不再向下匹配。
思科:ACL列表末尾默认包含一条拒绝所有的规则。
华为:ACL列表末尾没有包含任何规则。
ACL列表的分类
基础ACL:仅关注数据包中的源IP地址 (“只关注你是谁”)
高级ACL : 不仅关注数据包中的源IP地址,还关注目标IP地址,以及协议和端口号(“不仅关注你是谁,还关注你去哪,干啥”)
二层ACL
用户自定义ACL列表
ACL基础配置
ACL实验我们采用如下拓扑进行:
通过前面的多次试验,相信大家做的第一件事就是给设备改名字,并且配好IP,当然,想要完成我们今天的ACL实验,还需要做到全网通,可以采用我们前面教给大家的静态路由配置,也可以使用动态路由,比如RIP、OSPF,这里因为网段较少,我使用的是静态,大家可以自己决定,如果不会,可以参考我之前的博客。
接下来我们就通过以下三个需求来引入学习ACL吧~
需求一:要求PC1可以访问3.0网段,但是PC2不行。
基础ACL配置的位置原则:因为基础ACL只关注源IP地址,可能会造成误伤,所以建议基础ACL配置位置越靠近目标越好。
1.创建ACL列表
[r2]acl ?
INTEGER<2000-2999> Basic access-list(add to current using rules) // 基础ACL
INTEGER<3000-3999> Advanced access-list(add to current using rules) // 高级ACL
INTEGER<4000-4999> Specify a L2 acl group // 二层ACL
ipv6 ACL IPv6
name Specify a named ACL
number Specify a numbered ACL
[r2]acl 2000
[r2-acl-basic-2000]
2.在ACL列表中添加规则
[r2-acl-basic-2000]rule deny source 192.168.1.3 0.0.0.0
//通配符:0代表不可变,1代表可变
//通配符和反掩码不同,他可以0和1穿插着使用。扩展配置:
[r2-acl-basic-2000]rule permit source any //允许所有
[r2]display acl 2000 // 查看ACL列表
//华为的规则默认以5为步调自动添加序号,目的为了方便插入规则
[r2-acl-basic-2000]undo rule 7 // 删除规则7
3.在接口上调用ACL列表
[r2-GigabitEthernet0/0/1]traffic-filter outbound acl 2000
- 切记:一个接口的一个方向上只能调用一张ACL列表
需求二:要求PC1可以ping通PC3,但是不能ping通PC4。
高级ACL列表配置位置原则:因为高级ACL列表可以进行精准的匹配,所以位置应该放在尽可能靠近源的地方,可以节约链路资源。
1.通过重命名的方法来创建高级ACL列表
[r1]acl name xuqiuer 3000
2. 高级ACL列表规则
ping在ICMP协议里面
[r1-acl-adv-xuqiuer]rule deny icmp source 192.168.1.2 0.0.0.0 destination 192.168.3.3 0.0.0.0
3.通过调用名称来调用列表
[r1-GigabitEthernet0/0/0]traffic-filter inbound acl name xuqiuer
需求三:要求AR3可以ping通R2,但是不能telnetR2
//依旧可以选择需求二列表,在需求二里面添加
//注意端口号
[r1-acl-adv-xuqiuer]rule deny tcp source 192.168.1.10 0.0.0.0 destination 192.168.2.2 0.0.0.0 destination-port eq 23