1.定义
ACL:access control list 访问控制列表
2.功能
匹配感兴趣流,对其放行或者丢弃
编号ACL
编号ACL又分为标准ACL和扩展ACL:
标准ACL
查看的是IP包头
①只匹配源IP地址
②允许或者拒绝的是整个TCP/IP协议,对于源IP地址,所有流量都被拒绝掉了
标准ACL的编号:
1-99,1300-1999
格式:
access-list 1 deny x.x.x.x 反掩码
access-list 1 permit any //需要加这句话,因为最后隐藏这deny any
调用:
进接口,ip access-group 1 in/out
以上为实验拓扑图,R123均配置OSPF,R1可ping通3
在R2上配置ACL,在f0/0口调用
然后我们发现1和2之间的OSPF直接DOWN掉了
咦?为什么OSPF邻居直接DOWN掉了?从R1查看时发现Stata(状态)直接变为INIT初始化
因为因标准ACL是IP ACL,所以查看的是
IP包头
,允许或者拒绝的是
整个TCP/IP协议
,对于源IP地址,
所有流量
都被拒绝掉了,包括OSPF,所以你的路由直接没有了,邻居直接停在INIT状态
此时R1 PING不通3咯,也PING不通2
扩展ACL
1.配源IP,目的IP,源端口,目的端口
2.允许或者拒绝的是特定协议(icmp tcp) ,也就是说可以精确到一个小的协议
我们将调用直接NO掉,然后配置扩展ACL:
这条ACL语句的意思是,拒绝掉从1.1.1.0发送给3.3.3.0的icmp流量
然后就可以看见,带源ping直接ping不通啦~
但是直接ping是能通的哦,因为它匹配到的是第二条语句 permit ip any any
Telnet也能成功呀!因为它也是匹配到permit ip any any,它不会像标准ACL一样直接把整个IP流量都拒绝掉,而是可以精确匹配到一个小的协议。
命名ACL
命名ACL相对于编号ACL的特点:管理方便
能任意增加,删除或者修改特定语句
命名ACL同样分为标准和扩展
1.命名标准ACL
语句:
Ip access-list standard 名字
10 permit x.x.x.x
20 deny x.x.x.x
2.命名扩展ACL
语句:
Ip access-list extended 名字
10 permit tcp x.x.x.x y.y.y.y eq telnet
20 deny udp x.x.x.x y.y.y.y eq 520
我们可以直接创建一个extended列表
可以很方便地插入语句
命名ACL调用语句和编号ACL是一样的
ACL规则
1.编号ACL无法删除特定条目,只能删除整个ACL,命名ACL可以很方便的修改
2.ACL只能过滤通过路由器的流量,不能过滤自己产生的流量
3,ACL最后都有一句 deny any /deny ip any any ,所以需要加入permit any/ permit ip any any
4.一个接口只能有一个访问列表
5.流量从上到下进行匹配,找到匹配源直接执行,不再查看剩下的条目
6.一般越详细的语句放越前面
That’s all,3Q~