访问控制列表ACL(Access Control List)是由permit或deny语句组成的一系列有顺序的规则集合,这些规则根据数据包的源地址、目的地址、源端口、目的端口等信息来描述。按照访问控制列表的用途,可以分为基本的访问控制列表和高级的访问控制列表,基本ACL可使用报文的源IP地址、时间段信息来定义规则,编号范围为2000~2999。
一个ACL可以由多条“deny/permit”语句组成,每一条语句描述一条规则,每条规则有一个Rule-ID。Rule-ID可以由用户进行配置,也可以由系统自动根据步长生成,默认步长为5,Rule-ID默认按照配置先后顺序分配0、5、10、15等,匹配顺序按照ACL的Rule-ID的顺序,从小到大进行匹配。
R1为IT部门的网关,R2为用户部分的网关,R3为去往总部出口的网关设备,R4为总部核心路由器设备。整网运行OSPF协议,并在区域0内。企业设计通过远程方式管理核心网路由器R4,要求只能由R1所连的PC(本实验使用环回接口模拟)访问R4,其他设备均不能访问。
R1配置:
#
interface GigabitEthernet0/0/0
ip address 10.0.13.1 255.255.255.0
#
interface LoopBack0
ip address 1.1.1.1 255.255.255.255
#
ospf 1
area 0.0.0.0
network 10.0.13.0 0.0.0.255
network 1.1.1.1 0.0.0.0
#
R2配置:
#
interface GigabitEthernet0/0/0
ip address 10.0.23.2 255.255.255.0
#
ospf 1
area 0.0.0.0
network 10.0.23.0 0.0.0.255
#
R3配置:
#
interface GigabitEthernet0/0/0
ip address 10.0.13.3 255.255.255.0
#
interface GigabitEthernet0/0/1
ip address 10.0.23.3 255.255.255.0
#
interface GigabitEthernet0/0/2
ip address 10.0.34.3 255.255.255.0
#
interface LoopBack0
ip address 3.3.3.3 255.255.255.255
#
ospf 1
area 0.0.0.0
network 10.0.13.0 0.0.0.255
network 10.0.23.0 0.0.0.255
network 10.0.34.0 0.0.0.255
network 3.3.3.3 0.0.0.0
#
R4配置:
#
acl number 2000
rule 5 permit source 1.1.1.1 0
rule 10 deny
#
interface GigabitEthernet0/0/0
ip address 10.0.34.4 255.255.255.0
#
interface LoopBack0
ip address 4.4.4.4 255.255.255.255
#
ospf 1
area 0.0.0.0
network 10.0.34.0 0.0.0.255
network 4.4.4.4 0.0.0.0
#
user-interface vty 0 4
acl 2000 inbound
set authentication password cipher IWAu5q'8Q;=H)H2[EInBA0O#
#
验证R1可以登录,R2不能登录:
telnet -a 1.1.1.1 4.4.4.4
Trying 4.4.4.4 ...
Press CTRL+K to abort
Connected to 4.4.4.4 ...
Login authentication
Password:
Info: The max number of VTY users is 10, and the number
of current VTY users on line is 1.
The current login time is 2020-04-10 02:23:37.
telnet 4.4.4.4
Trying 4.4.4.4 ...
Press CTRL+K to abort
Error: Failed to connect to the remote host.
可以观察到,R2无法访问4.4.4.4,说明ACL配置已经生效
ACL的执行是由顺序性的,如果规则ID小的规则已经被命中,并且执行了允许或者拒绝的动作,那么后续的规则就不再继续匹配。
在R4上使用display acl all命令查看设备上所有的访问控制列表
dis acl all
Total nonempty ACL number is 1
Basic ACL 2000, 3 rules
ACL's step is 5
rule 5 permit source 1.1.1.1 0
rule 10 deny
现出现新的需求,需要R3能够使用其环回3.3.3.3访问R4。首先尝试使用规则ID 15 来添加允许3.3.3.3访问的规则
[R4]acl 2000
[R4-acl-basic-2000]rule 15 permit source 3.3.3.3 0
使用R3的3.3.3.3访问R4
telnet -a 3.3.3.3 4.4.4.4
Trying 4.4.4.4 ...
Press CTRL+K to abort
Error: Failed to connect to the remote host.
发现无法访问。按照ACL匹配顺序,这是由于规则为10的条目是拒绝所有行为,后续所有的允许规则都不会被匹配。若要此规则生效,必须添加在拒绝所有的规则ID之前。
在R4上修改ACL 2000,将规则ID修改为8
[R4]acl 2000
[R4-acl-basic-2000]undo rule 15
[R4-acl-basic-2000]rule 8 permit source 3.3.3.3 0
配置完成后,再次尝试使用R3的环回口访问R4
telnet -a 3.3.3.3 4.4.4.4
Trying 4.4.4.4 ...
Press CTRL+K to abort
Connected to 4.4.4.4 ...
Login authentication
Password:
Info: The max number of VTY users is 10, and the number
of current VTY users on line is 1.
The current login time is 2020-04-10 02:02:36.
访问成功,证明配置生效