- Access Control List。访问控制列表。与网络安全和网络服务质量QoS(Quality of Service)问题紧密相关。
- 本质:
- 由若干条允许permit或拒绝deny语句组成的、有序规则的列表。每条语句是ACL的一条规则,每条语句中的permit或deny就是与则条规则相对应的处理动作。
- 是一个匹配工具,能够对路由信息和报文进行匹配和区分。
- 只是一份名单,不能具体操作,需要其他技术调用执行。
- 作用:通过对网络中报文流的精确识别(流量或路由),与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。
- 应用:
- 允许permit或拒绝deny特定流量;匹配IP流量(过滤流量);
- 在Traffic-filter(流过滤)中被调用=ACL+允许/拒绝
- 在NAT(Network Address Translation)中被调用;
- 在路由策略中、防火墙的策略部署中、QoS中被调用。
- 简单比喻:像是公司的门禁系统。(小区的保安室)

- 一条ACL规则包含:
- 规则编号 rule-id:可选,默认步长为5。
- 一条ACL中的每一条规则都有一个相应的编号;匹配顺序按照规则编号从小到大匹配,规则最小的最先被匹配。
- 步长Step:系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5. 步长的作用是为了方便后续在旧规则之间,插入新规则。
- 分配规则:步长为=5,系统分配首条规则编号是5;为后续规则分配编号时,使用大于当前ACL内最大规则编号且时步长整数倍的最小整数作为规则编号。
- 动作 action:permit或deny
- 匹配条件(五元组中的一项也可):源IP/掩码;目的IP/掩码;协议:ip、tcp、udp、icmp等;源端口;目的端口;其他:dscp、precedence等
- 生效时间(可选)
rule 4294967294 deny --> 流量全部被拒绝 0.0.0.0 = 精确匹配;255.255.255.255 = 任意匹配 精确匹配192.168.1.1这个IP地址:192.168.1.1 0.0.0.0 = 192.168.1.1 0 匹配所有IP地址:0.0.0.0 255.255.255.255 = any
- 规则编号 rule-id:可选,默认步长为5。
- 匹配位置:入方向inbound;出方向outbound
inbound 流经路径:[外部] -> 接口 -> ACL检查 -> 路由器处理。影响访问路由器自身的流量,接口收到时就过滤,节省资源。 outbound 流经路径:路由器处理-> ACL检查 -> 接口-> [外部]。不影响路由器自身流量,先路由再过滤,可能浪费资源。 - 分类与标识:
- 基于ACL标识方法的分类:
- 数字型ACL:传统的ACL标识方法,创建ACL时,指定一个唯一的数字标识该ACL。
- 命名型ACL:通过名称代替编号来标识ACL。
- 分类

- 基于ACL标识方法的分类:
配置练习:
需求1:配置基本ACL,实现Client 1能访问server1,Client 2不能访问server 1:(匹配流量的时候,比较粗糙,流量匹配的不够精细,只能匹配源IP)
- 客户端,服务器的IP,网关配置,每个接口的IP配置,交换机每个接口都要创建逻辑接口后再配IP
- 交换机:
- 创建vlan

- 把交换机的接口划分到对应的vlan里:


- 配置接口IP地址,交换机的接口属于二层口,不能配IP,需要创建逻辑接口(三层接口):


- g3接口需要创建逻辑接口(三层接口):

- 创建vlan
- 配置AR1的接口g0接口的IP,此时 LSW1和AR1之间形成直连链路,可以通信(同一个网段,同一个广播域)。
- 如果把交换机的vlanif 1移除,重新创建vlan 2,然后创建虚拟接口并配IP,此时和直连路由器无法ping通。路由器属于vlan1的广播域,交换机属于vlan 2这个广播域,不属于同一个广播域了。(交换机的所有端口默认都属于 vlan 1)

- 修改g0/0/3接口的PVID,使得g3接口划到vlan 2 的广播域,为什么不用trunk类型,trunk接口给通过的流量打上vlan标签,但是路由器的三层物理接口不识别标签,打标签的流量会被丢掉,需要把标签剥掉,使用access类型。


- 交换机的三个接口都加入到ospf中:(AR1和AR2同样的操作,两个接口都加入到ospf的Area 0 中)

- 如果把交换机的vlanif 1移除,重新创建vlan 2,然后创建虚拟接口并配IP,此时和直连路由器无法ping通。路由器属于vlan1的广播域,交换机属于vlan 2这个广播域,不属于同一个广播域了。(交换机的所有端口默认都属于 vlan 1)
- 测试:client1和client2和服务器都能ping通
- 实现需求,在LSW1配置ACL,允许或拒绝某个流量,只需要交给LSW1处理流量,节省资源
- 基本ACL:

- 允许10.0.10.0这个网段,拒绝10.0.20.0这个网段


- 此时acl规则还未有效,只是列好
了名单,需要调用:
流量过滤,在交换机的g3接口过滤(出接口),尽量不在直连pc的接口过滤。 - 删除第一条规则,client1还能访问服务器:
- 先删g3接口的这条配置,因为已经调用了rule,所以不删掉这个,配置的规则删不掉:

- 然后再进入到acl 2000中:

第一条规则写不写都可以,acl 2000做流量过滤的时候默认允许所有流量通过(华为,traffic-filter)
- 先删g3接口的这条配置,因为已经调用了rule,所以不删掉这个,配置的规则删不掉:
- 基本ACL:
需求2:高级ACL,匹配五元组源目IP,协议,源目端口-client 1只能够访问server 1的http 服务,client 2只能够访问server 1的ftp服务
- 打开server1的http服务和和htp服务;
- 需求1中的配置没有删除的情况下,client 1可以访问server 1的所有服务;client 2不能访问server 1的所有服务。
- 在模拟器上,在AR1上配置高级ACL,默认允许,需要访问的就不用写了,五元组信息: 源IP-10.0.10.0/24; 目的IP: 10.0.30.1;协议:ftp;源端口:随机生成;目的端口:21(ftp的端口号)
vlan 10访问server 1的ftp流量匹配并拒绝放行:
协议-TCP(ftp是基于TCP协议工作,控制ftp,实际是在控制tcp流量),源IP网络段,目IP,通配符,目的端口号。 - vlan 20 访问server 1的http流量匹配并拒绝放行:

出错的地方:
- 路由器查看路由表,不使用brief命令:

- 配置高级ACL,要先把基本ACL配置删掉
混淆的点:
- "二层"和"三层"指的是设备接口的"工作模式",而不是设备本身的绝对属性。路由器接口默认是三层路由接口,可以配IP;交换机接口默认是二层交换口,不能配IP.
- display port vlan是交换机的专用命令,用于查看端口与vlan的绑定关系,在路由器上没有这个命令。路由器的设计:每个vlan对应一个逻辑子接口;收到带vlan标签的帧后,剥掉标签进行三层处理。路由器上通常不需要创建vlan,直接配置子接口。