实验原理
ACL是由permit和deny语句组成的一系列有顺序的规则列表,这些规则根据数据包的源地址,目标地址,源端口,目的端口等信息来描述,ACL规则通过匹配报文中的信息对数据包进行分类,路由设备根据这些规则判断哪些数据包可以通过,哪些数据包需要拒绝。
根据访问控制列表的用途,可以分为基本的控制列表和高级的访问控制列表。
实验目的
理解访问控制列表的应用场景基本+高级
掌握配置访问控制列表的方法基本+高级
实验拓扑
实验步骤
1,基本配置,并测试联通性
2,搭建ospf网络
[R1]ospf 1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.13.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R2]ospf 1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255
[R3]ospf 1
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.13.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.0.34.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R4]ospf 1
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]network 10.0.34.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]network 4.4.4.4 0.0.0.0
查看R1的路由表
查看R1的回环口和R4的环回口间的联通性
3,配置基本的acl访问控制
在R4上配置telnet,配置用户密码为huawei
[R4]user-interface vty 0 4
[R4-ui-vty0-4]authentication-mode password
Please configure the login password (maximum length 16):huawei
在R1上建立telnet连接
<R1>telnet 4.4.4.4
Press CTRL_] to quit telnet mode
Trying 4.4.4.4 ...
Connected to 4.4.4.4 ...
Login authentication
R1成功的登录到R4上
Password:
<R4>
继续尝试与网关设备R2建立连接
<R2>telnet 4.4.4.4
Press CTRL_] to quit telnet mode
Trying 4.4.4.4 ...
Connected to 4.4.4.4 ...
Login authentication
Password:
<R4>
可以看得出,只要是路由可达的设备,拥有telnet密码,都可以成功的访问到核心设备R4,这是不安全的,所以现在需要配置访问控制。
基本的访问控制是基于数据包的源IP地址进行过略,在R4上建立一个acl指定规则ID 为5,允许数据包源地址为1.1.1.1的报文通过,反掩码为0
[R4]acl 2000
[R4-acl-basic-2000]rule 5 permit source 1.1.1.1 0
再配置一个id为10的,允许所有的都通过
[R4-acl-basic-2000]rule 10 deny source any
acl配置完成,在vty中调用,使用inbound参数,在R4的数据入方向调用。
[R4]user-interface vty 0 4
[R4-ui-vty0-4]acl 2000 inbound
此时用R1的回环地址访问R4,发现木有问题
使用R2访问4.4.4.4,发现无法访问,说明上述的acl配置是有效的
4,基本的acl语法规则
acl执行试有顺序性的,如果配置了和前面矛盾的控制,是不会生效的,需要整个新命名ID,ID小于之前存在的矛盾规则,才可以生效。
查看R4的真个acl配置
上面的规则只允许R1访问,现在想要R3访问,使用规则ID15(大于矛盾规则ID =10)来添加访问规则
[R4]acl 2000
[R4-acl-basic-2000]rule 15 permit source 3.3.3.3 0
发现不可以,现在修改一下acl
[R4-acl-basic-2000]undo rule 15
[R4-acl-basic-2000]rule 8 permit source 3.3.3.3 0
可以访问
5,基本的acl只能控制源地址,高级acl编号范围为3000-3999 既可以使用报文的源ip地址,也可以使用目标地址,IP优先级,IP协议类型,ICMP包,
在R4添加一个还口地址
[R4]int lo 1
[R4-LoopBack1]ip add 40.40.40.40 32
[R4]acl 3000
[R4-acl-adv-3000]rule permit ip source 1.1.1.1 0 destination 4.4.4.4 0
[R4-acl-adv-3000]dis acl all
Total quantity of nonempty ACL number is 2
Basic ACL 2000, 3 rules
Acl's step is 5
rule 5 permit source 1.1.1.1 0 (1 matches)
rule 8 permit source 3.3.3.3 0
rule 10 deny (12 matches)
Advanced ACL 3000, 1 rule
Acl's step is 5
rule 5 permit ip source 1.1.1.1 0 destination 4.4.4.4 0
在R4上调用一下
[R4]user-interface vty 4
[R4-ui-vty4]acl 3000 inbound
此时,在R1上访问不了这个地址了
总结
acl配置会按照编号的顺序,小号的id已经配置的规则不允许大号的id改掉,基本的acl只对源ip地址有效,编号为2000-2999高级的acl对可以加上目的ip地址以及各种IP协议类型,优先级,ICMP类型,等等,编号为3000-3999.