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其他不可以 配置如下

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

验证一下

配置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)#

解释 查看一下

因为使用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)#

写完之后我们验证一下

可以看到PC2被管理进制通讯交流 此时我们ping 一下网关看看是否可以交流

发现PC1与PC2均无法ping通网关 查看一下列表 show access-lists 100

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

access-list 100 permit ip any any

就可以了

标准访问列表

删除ACL列表

这是列表内容 假如对一条不满意怎么删除? 如下图所示,并没有删除语句,要删除就只能把整张表删掉 显然不合理,于是就有更高层次用法 ip access-list

我们是拓展ACL 加入表号进入配置查看ACL列表可以根据需要,根据序号进行删除 当然添加也可以指定添加,可以指定序号,其顺序是按照序号大小进行升序排列

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

经验分享 程序员 微信小程序 职场和发展