文章目录
- 什么是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其他不可以
配置如下
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列表可以根据需要,根据序号进行删除
当然添加也可以指定添加,可以指定序号,其顺序是按照序号大小进行升序排列
这样执行的列表顺序就可以改变了