目录
一、引入
二、ACL概念:
基本概念:
匹配模式:config和auto
三、ACL的作用:
1)限制网络流量、提高网络性能。
2)提供对通信流量的控制手段。
3)提供网络访问的基本安全手段。
4)在网络设备接口处,决定哪种类型的通信流量被转发、哪种类型的通信流量被阻塞。
四、ACL工作过程:查路由表-->查ACL-->匹配ACL-->找路由
1.进方向:
2.出方向:
五、ACL分类:
1. 基本ACL(2000-2999)
深度优先匹配原则:
基本配置示例:
2. 高级ACL(3000-3999)
基本配置示例:
3. 二层ACL(4000-4999)
基本配置示例:
4. 用户自定义ACL:
5. 用户ACL:
六.、注意事项
1. 如果说你正在玩游戏,你姐姐正在看电影,占用很多带宽,导致游戏卡顿。
能不能想办法限制姐姐的网速或者阻止姐姐看电影,以此来让自己游戏变得流畅呢?
2. 在公司中为了某个部门的保密性,能不能有一种手段,只允许其访问外网,而不允许外网访问它呢 ?
3. 要是之某个部门要求只能使用XXX这个功能,如何实现呢?4. 在公司摸鱼现象频发,有没有一种手段去限制员工在上班时间,无法通过网络玩游戏、刷剧呢?
对于以上问题其实都可以通过访问控制列表去实现,访问控制列表也就是我们常常听到的ACL
下面我们就来深入的学习一下ACL
ACL:访问控制列表,ACL是一种基于ip包过滤的访问控制技术,
它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃。
应用设备:访问控制列表被广泛地应用于路由器和三层交换机,
借助于访问控制列表,可以有效地控制用户对网络的访问,从而最大程度地保障网络安全。
包过滤:直接通过控制数据包是转发还是丢弃
接口上的数据包:进入和出去两种
一条规则的格式: rule x (编号) permit/deny …
Rule表示定义一条规则,编号1.2.3… 类型(允许/拒绝)
一个acI可以包含多条rule
模式: config(默认)顺序匹配(按照规则编号从0开始)
编号可以手动写,也可以自动生成(步长为5)(5,10,15…)
好处:按123紧贴着写,万一我想在中间插入一条规则呢,旧要把后面的删掉重新写
步长为5就可以随时插入
auto深度优先(自动模式)(规则越复杂 月优先)
两种模式的区别:匹配的顺序不同
通配符:点分十进制表示,32比特,为0表示一定要匹配,为1表示可以不匹配
通配符为全0的可以直接缩写成1个0
匹配过程:
Rule permit source 10.0.0.0/0.0.0.255
数据包源IP:10.0.0.00000001(00001010.00000000.00000000.00000001)
ACL源IP:10.0.0.00000000
通配符: 0.0.0.11111111
红色部分一定要匹配,黑色可以不匹配(则此IP匹配成功)
例如,ACL可以根据数据包的协议,指定这种类型的数据包具有更高的优先级,同等情况下可预先被网络设备处理。
又如学生什么时间可以上网,什么时间不能上网就可以ACL实现。(结合了时间限制)
例如,用户可以允许E- mail通信流量被路由,拒绝所有的Telnet通信流量。(结合了上层协议 利用端口号)
例如,某部门要求只能使用WWW这个功能,就可以通过ACL实现;(只允许80端口)
例如,为了某部门的保密性,不允许其访问外网,也不允许外网访问它,可通过ACL实现。
当一个数据包进入一个端口,路由器检查这个数据报是否可路由。(查路由表)
如果是可以路由的,路由器检查这个端口是否有ACL控制进入数据报。(查ACL)
如果有,根据ACL中的条件指令,检查这个数据报。 (匹配ACL)
如果数据报是被允许的,就查询路由表,决定数据报的目标端口。 (找路由)
路由器检查目标端口是否存在ACL控制流出的数据报。
若不存在,这个数据报就直接发送到目标端口。
若存在,就再根据ACL进行取舍。然后在转发到目的端口
当ACL处理数据包时,一旦数据包与某条ACL规则语句匹配,则会跳过列表中剩余的其他语句,根据该条匹配的语句内容决定允许或者拒绝该数据包。
如果数据包内容与ACL语句不匹配,那么将依次使用ACL列表中的下一条语句测试数据包。 该匹配过程会一直继续, 直到抵达列表末尾。
最后一条隐含的语句适用于不满足之前任何条件的所有数据包。
这条最后的测试条件与这些数据包匹配,通常会隐含拒绝一切数据包的指令。
此时路由器不会让这些数据进入或送出接口,而是直接丢弃。
最后这条语句通常称为隐式的"deny any"语句。
由于该语句的存在,所以在ACL中应该至少包含一条permit语句,
否则,默认情况下,ACL将阻止所有流量。
用编号来区分ACL
基本acI编号: 2000-2999 只能过滤源IP地址
(用的是最多的)(如防火墙 允许内部访问外部所有东西)
1.源ip范围,越小越优先通配符中的0越多 表示范围越小 (0表示一定要匹配)
2.是否带有fragment参数,有fragment的优先 (人为添加)
3.编号顺序
[Huawei]acl 2000 match-order (config/auto) 选择模式 默认config
[Huawei-acl-basic- 2000]rule deny (permit) source 10.0.0.1 0.0.0.0
定义规则拒绝或允许10.0.0.1通过节点
[Huawei-GigabitEthernet0/0/1]traffic-filter inbound (outbound)
接口调用 acl 2000本接C口进方向或出方向调用acl2000
如果已经调用 要修改ACL,必须先取消调用
[Huawei -GigabitEthernet0/0/0]undo traffic-filter inbound (outbound)
真实设备:末尾要加一条 rule permit
高级acl编号: 3000-3999
过滤源/目的IP地址、协议(基于IP运行的协议(IP承载协议))、端口号等
IP承载协议:tcp upd icmp ping vrrp ospf…
高级acl深度优先原则:
//1.ip承载协议范围,指定了承载协议的优先(老的) (现在的必须指定IP承载协议)
2.源ip范围,越小越优先
3.目的地址范围,越小越优先
4.端口号范围,越小越优先
5.参数个数,越多越优先
端口号参数:
eq等于、It小于等于、gt大于等于、neq不等于(现在取消)、range范围(现在加的)
[Huawei-acl-adv-3000]rule permit tcp source 10.0.0.1 0 destination 10.0.1.1 0 destination-port eq 80
允许10.0.0.1这个地址通过tcp协议访问10.0.1.1这个地址的80号端口
[Huawei-GigabitEthernet0/0/1 ]traffic-filter inbound (outbound) acl 3000
接口调用 本接口进方向或出方向调用acl3000
二层ACL编号: 4000-4999 过滤二二层协议、mac地址、 vlan等
[Huawei-acl-L2- 4000]rule deny source-mac 0102-0102-0a0b destination-mac 0201 -0203-0a0b
拒绝mac地址为0102-0102-0a0b的主机访问mac地址为0201-0203-0a0b的主机
[Huawei-GigabitEthernet0/0/1 ]traffic-filter inbound (outbound) acl 4000
接口调用 本接口进方向或出方向调用acI4000
ACL编号5000-5999,使用报文头、偏移位置、字符串掩码、用户自定义字符串来定义规则;
ACL编号6000-6999,可用IP报文的源/目标IP地址、IP协议类型、ICMP类型、端口来定义规则;
用户自定义ACL和用户ACL用的相对较少,再此不做详细介绍
1.time-range时间范围
[Huawei]time-range a from 10:30 2019/11/25 to 13:30 2019/11/26 定义time-range
定义时间范围a:从2019年11月25日10: 30到2019年11月26日11: 30
[Huawei-acl- basic-2000]rule deny (permit) time-range a source 10.0.0.1 0.0.0.0
ACL里调用/配置acI时调用时间范围
定义规则拒绝或允许10.0.0.1在时间范围a内通过节点
2.一个接口的一个方向只能调用一条acl, 一条acl可包含多条规则。
3.二层acI只能用在二层,基本和高级ACL只能用在三层。
再接口调用ACL是最基本的使用方法
ACL更多的适用场景是结合上层的使用协议或者服务