基本信息
ACL是一种网络流量过滤机制,通过一些规则对数据包进行匹配,从而允许和拒绝其通过,实现控制与管理
核心作用包括,安全防护,策略匹配,精细化管理
标准ACL只检查数据包的源地址,可以用来阻止或允许来自某一个网络的所有通信流量,也可以拒绝某一个协议簇(如IP)的所有通信流量
注,ACL的访问控制列表末尾隐含一条拒绝所有流量的指令,即ACL使用式默认为全部拒绝,所以,访问控制列表至少要有一个允许通过的命令语句
命令格式
bash
Access-list [访问控制列表号] [deny|permit] [源网络地址] [通配符掩码]
含义如下
标准ACL访问控制列表号是1-99
deny和permit是必选项,deny指如果满足条件则数据包丢弃,permit指如果满足条件则数据包允许通过
通配符掩码,就是反掩码,比如255.255.255.0变成0.0.0.255
- 关键字 any和host
any 允许源地址为任意ip的数据包通过
access-list 1 permit any
等于下面的命令
bash
access-list 1 permit 0.0.0.0 255.255.255.255
host 仅允许某一台主机的流量通过,比如
bash
access-list 1 permit host 192.168.10.10
应用ACL
bash
ip access-group [访问控制列表号] [in/out]
in 在流量从外部进入路由器接口时检查源地址
out 在流量离开路由器的接口时检查目的地址
(扩展ACL时更复杂)
ip access-group 1 out
在数据离开接口时应用列表号为1的ACL检查
- 实例
第一步,分好设备与链路

第二步,按图配置设备需要的的网关,vlan和ip
| 设备 | ip | 掩码 | 网关 |
|---|---|---|---|
| PC0 | 192.168.10.1 | 255.255.255.0 | 192.168.10.254 |
| PC1 | 192.168.20.1 | 255.255.255.0 | 192.168.20.254 |
| PC2 | 192.168.20.2 | 255.255.255.0 | 192.168.20.254 |
| PC3 | 192.168.30.1 | 255.255.255.0 | 192.168.30.254 |
三层交换机
Switch(config)#vlan 10
Switch(config-vlan)#ex
Switch(config)#vlan 20
Switch(config-vlan)#ex
Switch(config)#interface f0/1
Switch(config-if)#switchport access vlan 10
Switch(config-if)#ex
Switch(config)#interface range f0/6-11
Switch(config-if-range)#switchport access vlan 20
Switch(config-if-range)#ex
Switch(config)#interface vlan 10
Switch(config-if)#ip address 192.168.10.254 255.255.255.0
Switch(config-if)#ex
Switch(config)#interface vlan 20
Switch(config-if)#ip address 192.168.20.254 255.255.255.0
Switch(config-if)#ex
Switch(config)#interface f0/24
Switch(config-if)#no switchport
Switch(config-if)#ip address 192.168.1.1 255.255.255.0
Switch(config-if)#ex
R0
Router(config)#interface f0/1
Router(config-if)#no shutdown
Router(config-if)#ip address 192.168.30.254 255.255.255.0
Router(config-if)#ex
Router(config)#interface f0/0
Router(config-if)#no shutdown
Router(config-if)#ip address 192.168.1.2 255.255.255.0
Router(config-if)#
第三步,设置默认与静态路由,使所有设备可以正常通信
三层交换机
Switch(config)#ip routing
Switch(config)#ip route 0.0.0.0 0.0.0.0 192.168.1.2
R0
Router(config)#ip route 192.168.10.0 255.255.255.0 192.168.1.1
Router(config)#ip route 192.168.20.0 255.255.255.0 192.168.1.1

第四步,设置标准ACL,使10.0网段和20.2可以通过,其他不可以(主
R0
Router(config)#access-list 1 permit 192.168.10.0 0.0.0.255 #10.0网段的可以通过
Router(config)#access-list 1 permit host 192.168.20.2 #20.2可以通过
Router(config)#access-list 1 deny any #所有不准通过,默认情况下也是存在的
Router(config)#interface f0/1
Router(config-if)#ip access-group 1 out #包离开时检查
Router(config-if)#
第五步,验证通信

总结
设ACL其实就像是写一个便签(以列表号分类),然后把他贴到需要的端口上(应用ACL)
不过设置规则的时候要把精确的放在前面,防止让某个ip可以通过却因为在的网段被禁止然后匹配到被提前截止
但是ACL设置时仅作用于本地,不同的链路还需要自己设