一个关于通过ACL禁用ICMP的实例配置
拓扑图如下所示:
此处的任务是在R2的F0处做ACL完成对ICMP的限制,在些有以下几个实验配置:
(1)在R2上做下面ECHO-RELPY的ACL,并应用到F0口上,使用in
R2(config)#access-list 110 deny icmp any any echo-reply
R2(config)#access-list 110 permit ip any any
R2(config)#int f0
R2(config-if)#ip acc
R2(config-if)#ip access-group 110 in
分析:这种ACL禁用的是ECHO-REPLY,并且是IN。所以直接可以分析出含义:R2向R3、R4发出的ICMP包是可以到达R2、R3的,但是由于在F0设置了不允许ECHO-REPLY进入,故R1、R2是不能收到来自R2与R3的回显应答的。也就是说R1与R2是不能ping通R3和R4的;但反之可以成立。
(2)在R2上做下面ECHO的ACL,并应用到F0口上,使用out
R2(config)access-list 120 deny icmp any any echo
R2(config)access-list 120 permit ip any any
R2(config)#int f0
R2(config-if)#ip acc
R2(config-if)#ip access-group 120 out
这种配置与上面的效果是一样的,由于禁用了F0口向外发送ECHO请求,故R1、R2是不能完成到R3、R4的ping请求的。
(3)在R2上做下面ECHO的ACL,并应用到F0口上,使用in
R2(config)access-list 120 deny icmp any any echo
R2(config)access-list 120 permit ip any any
R2(config)#int f0
R2(config-if)#ip acc
R2(config-if)#ip access-group 120 in
相对而言其功能就类似于在R2上做下面ECHO-RELPY的ACL,并应用到F0口上,使用out了。结果是R3、R4不能ping通R1、R2。
ACL是一个很有意思的东西,值的好好琢磨一下,远不是书上理论说的那么简单,在应用的时候不光要涉及到端口上是IN还是OUT,还涉及应用在哪些口上可以达到目的,以及如何设置语句的顺序,还有在每个标号的ACL完成后还要加上一条PERMIT的语句,否则所有的通讯都会给中断掉!