文章目录

  • 什么是ACL
  • ACL分类
  • 匹配规则
  • 工作原理
  • ACL配置指南
  • 配置实例
  • 配置ACL列表(拓展ACL)
  • 标准访问列表
  • 删除ACL列表


什么是ACL

访问控制列表(Access Control List,ACL)是路由器和交换机接口的指令列表,用来控制端口进出的数据包。
这张表中包含了匹配关系、条件和查询语句,表只是一个框架结构,其目的是为了对某种访问进行控制。

ACL分类

1~99 和 1300~1999:标准IP ACL。(基于源P地址过滤)
100~199 和 2000~2699:扩展IP ACL。
(基于源、目的IP地址;源、目的TCP/UDP端口;协议类型)
AppleTalk: 600~699
IPX:800~899

匹配规则

基于每种协议设置一个ACL(per protocol)
基于每个方向设置一个ACL(per direction)
基于每个接口设置一个ACL(per interface)

工作原理

入站ACL:对到来的分组进行处理后在路由到主站接口。效率高
出站ACL:将分组路由到出站接口,然后根据ACL对其进行处理。
ACL要么应用于入站数据流要么应用于出站数据流。
ACL顺序︰
从上到下、每次一条语句。

ACL配置指南

1.访问列表的编号指明了使用何种协议的访问列表
2.每个端口、每个方向、每条协议只能对应于一条访问列表
3.访问列表的内容决定了数据的控制顺序
4.具有严格限制条件的语句应放在访问列表所有语句的最上面
5.在访问列表的最后有一条隐含声明:deny any -
每一条正确的访问列表都至少应该有一条允许语句
6.先创建访问列表,然后应用到端口上
7.访问列表不能过滤由路由器自己产生的数据

配置实例

要求只允许PC1可以到达1.1.1.1其他不可以

java中的acl访问控制列表 acl访问控制列表基于端口_tcp/ip


配置如下

R1# conf t
R1(config)#int f0/0
R1(config-if)#ip add 192.168.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#int loopb 0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#ex
R1(config)#exi
R1#

PC1
ip 192.168.1.10 24 192.168.1.1 24

PC2
ip 192.168.1.20 24 192.168.1.1 24

PC3
ip 192.168.1.30 24 192.168.1.1 24

验证一下

java中的acl访问控制列表 acl访问控制列表基于端口_服务器_02


java中的acl访问控制列表 acl访问控制列表基于端口_IP_03

配置ACL列表(拓展ACL)

R1#conf t
R1(config)#access-list 100 per
R1(config)#access-list 100 permit icmp host 192.168.1.10 host 1.1.1.1 echo
R1(config) #access-list 100 deny icmp any host 1.1.1.1 echo
R1(config)#

解释

查看一下

java中的acl访问控制列表 acl访问控制列表基于端口_IP_04

因为使用ping嘛,所以用的是ICMP协议,具体操作可以使用 ‘?’ 查看
看到ICMP 后面可以跟源地址,可以跟any,也可以跟主机,我们是为了PC1可以通过选择host,而且源地址选择一般是用于一个网段,any就是任何都可以
所以上述ACL配置选择拓展ACL,匹配由上到下
然后应用到端口

R1(config)#int f0/0
R1(config-if)#ip access-group 100 in
R1(config-if)#

写完之后我们验证一下

java中的acl访问控制列表 acl访问控制列表基于端口_服务器_05

java中的acl访问控制列表 acl访问控制列表基于端口_网络_06


可以看到PC2被管理进制通讯交流

此时我们ping 一下网关看看是否可以交流

java中的acl访问控制列表 acl访问控制列表基于端口_tcp/ip_07

java中的acl访问控制列表 acl访问控制列表基于端口_java中的acl访问控制列表_08


发现PC1与PC2均无法ping通网关

查看一下列表

show access-lists 100

java中的acl访问控制列表 acl访问控制列表基于端口_IP_09

为什么ping不通网关
因为ACL列表包含一个隐藏语句就是 deny any any
列表执行最后拒绝所有流量,所以之前列表没有192.168.1.1的匹配自然就被过滤掉
我们需要这样配置

access-list 100 permit ip any any

就可以了

java中的acl访问控制列表 acl访问控制列表基于端口_IP_10


java中的acl访问控制列表 acl访问控制列表基于端口_服务器_11

标准访问列表

java中的acl访问控制列表 acl访问控制列表基于端口_IP_12

删除ACL列表

这是列表内容 假如对一条不满意怎么删除?

java中的acl访问控制列表 acl访问控制列表基于端口_网络_13


如下图所示,并没有删除语句,要删除就只能把整张表删掉

java中的acl访问控制列表 acl访问控制列表基于端口_java中的acl访问控制列表_14


显然不合理,于是就有更高层次用法

ip access-list

java中的acl访问控制列表 acl访问控制列表基于端口_tcp/ip_15

我们是拓展ACL

java中的acl访问控制列表 acl访问控制列表基于端口_IP_16


加入表号进入配置查看ACL列表可以根据需要,根据序号进行删除

java中的acl访问控制列表 acl访问控制列表基于端口_网络_17


当然添加也可以指定添加,可以指定序号,其顺序是按照序号大小进行升序排列

java中的acl访问控制列表 acl访问控制列表基于端口_java中的acl访问控制列表_18

这样执行的列表顺序就可以改变了