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列表可以根据需要,根据序号进行删除 当然添加也可以指定添加,可以指定序号,其顺序是按照序号大小进行升序排列
这样执行的列表顺序就可以改变了