ACL(访问控制列表)可以设置规则来过滤路由。有三种acl,分别为:基本acl(2000 - 2999)、高级acl(3000 - 3999)和二层acl(4000 - 4999)。
简单进行区分就是基本acl只能设置源ip地址,高级acl可以设置源ip、目的ip以及端口号,而二层acl即用mac地址进行过滤。
拓扑图如下:
首先使全网互通:
在各PC上设置好IP地址和网关。
R1配置:
[R1]int g0/1
[R1-GigabitEthernet0/1]ip add 10.1.1.1 24
[R1-GigabitEthernet0/1]quit
[R1]ip route-static 0.0.0.0 0.0.0.0 10.1.1.2
R2配置:
[R2]int g5/0
[R2-GigabitEthernet5/0]ip add 1.1.1.254 24
[R2-GigabitEthernet5/0]int g5/1
[R2-GigabitEthernet5/1]ip add 2.2.2.254 24
[R2-GigabitEthernet5/1]int g6/0
[R2-GigabitEthernet6/0]ip add 3.3.3.254 24
[R2-GigabitEthernet6/0]int g0/1
[R2-GigabitEthernet0/1]ip add 10.1.1.2 24
然后进行acl配置。
1、使用基本acl禁止PC1访问10.1.1.0网段:
在R2上进行:
[R2]acl number 2000
[R2-acl-ipv4-basic-2000]rule 5 deny source 1.1.1.0 0.0.0.255
[R2]int g0/1
[R2-GigabitEthernet0/1]packet-filter 2000 outbound
//运用在G0/1的出接口上
此时PC1无法与R1通信,因为PC1的数据包在R2的G0/1接口被丢弃。
2、使用高级acl禁止PC1访问PC2:
在R2上进行:
[R2]acl number 3000
[R2-acl-ipv4-adv-3000]rule 10 deny ip source 1.1.1.0 0.0.0.255 destination 2.2.2.0 0.0.0.255
[R2]int g5/0
[R2-GigabitEthernet5/0]packet-filter 3000 inbound
//运用在G5/0的进接口上
此时PC1发给PC2的数据包在G5/0接口被丢弃。
3、使用二层acl禁止PC1与外界通信:
首先需要知道PC1的mac地址。
用PC1 ping PC3:
然后在S1上查看mac地址:display mac-address:
在端口G1/0/2学到的是PC1的mac地址。
在S1上进行配置:
[S1]acl mac 4000
[S1-acl-mac-4000]rule 5 deny source-mac 2481-885f-0906 ffff-ff00-0000
[S1]int g1/0/2
[S1-GigabitEthernet1/0/2]packet-filter mac 4000 inbound
//运用在G0/2的进接口上
此时PC1发出的数据包在S1的G0/2接口处被丢弃。