15.ACL基础

文章发布时间:

最后更新时间:

页面浏览: 加载中...

ACL 分类

  1. 基本 ACL(2000—2999)用于匹配 IP 源地址,可以作用与流量的过滤,也能用于路由过滤
  2. 高级 ACL(3000—3999)用于匹配五元组(源、目的 IP 地址,源、目的端口号,协议号)可以作用与流量的过滤,也能用于路由过滤

匹配规则

  1. 默认情况下,ACL 会根据 rule 的顺序来进行匹配,一旦匹配成功则立刻执行策略(config 模式)
  2. 深度匹配,会根据掩码长度来进行匹配,约精确约优先(auto 模式)
  • 例如:
    1
    2
    rule permit source any
    rule deny source 192.168.1.0 0.0.0.255
  • 结果:
    1
    2
    rule 5  deny source  192.168.1.0 0.0.0.255
    rule 10 permit source any
  • 补充:
    ACL 对于数据流,没有拒绝的默认放行(对于策略路由来说,ACL 默认为 permit)
    ACL 对于路由条目,没有放行的默认拒绝(对于路由策略来说,ACL 默认为 deny)

策略路由(针对流量生效 traffic-filter、traffic-policy 等)
路由策略(针对路由条目生效,route-policy、filter-policy、policy-based-route 等)

步长

当没有设置 rule 编号时,ACL 会自动为规则设定编号,每次编号加 5

1
2
rule  permit source any  =  rule 5 permit source any
rule permit source 1.1.1.1 0 = rule 10 permit source 1.1.1.1 0

步长也可以修改

1
2
acl
step 10 // 把 ACL 步长修改为 10,后续的策略每个策略之间默认 + 10

匹配信息

基本 ACL(匹配源 IP 地址)
0 代表匹配的信息固定,1 代表匹配的信息可变
例如:192.168.1.1 0.0.0.0 (0.0.0.0 代表匹配所有的 bit 位,匹配信息为 192.168.1.1/32)
例如:192.168.1.0 0.0.0.255(0.0.0 代表固定匹配,255 代表模糊匹配可以改变,匹配信息为192.168.1.0/24)即:地址为:0—255

例1:匹配 10.1.1.0/24 中的奇数路由

10.1.1 固定,通配符 0.0.0
最后的 8 bit 128、64、32、16 8、4、2、1
这个 1 必须固定
0000 0001 (路由前缀)
1111 1110 (通配符,代表只匹配最后的 1,其他可变)
10.1.1.1 0.0.0.254 (匹配奇数路由)

例2:匹配 10.1.1.0/24 中的偶数路

最后的 8 bit,最后一位 1 必须为 0
0000 0000 1111 1110 代表最后一个 bit 必须为 0 其他都可以修改
10.1.1.0 0.0.0.254(匹配偶数路由)

例3:匹配 10.1.1.0/24 中 0—127 的数字

最后 8 bit 中,不能包含 128
0000 0000 0111 1111 代表 128 必须为 0,其他可变(0—127)
10.1.1.0 0.0.0.127

配置命令

策略路由(traffic-filter)对本设备产生的流量,出方向过滤无效(只对转发的流量生效)
ACL 是匹配工具,无法对数据包进行过滤或者放行,需要结合策略路由或者路由策略等工具才能生效

例如:过滤 192.168.1.1 的源数据包。允许 192.168.1.2 的源数据包访问

方法一:代表放行 192.168.1.2 拒绝所有的其他流量

1
2
3
acl  2000
rule permit source 192.168.1.2 0
rule deny source any // 代表放行 192.168.1.2 拒绝所有的其他流量

方法二:拒绝 192.168.1.1 的流量,其余默认放行

1
2
acl 2000
rule deny source 192.168.1.1 0 // 拒绝 192.168.1.1 的流量,其余默认放行

接口调用

1
2
interface G0/0/X(判断接口的方向)
traffic-filter (inbound / outbound ) acl 2000 // 根据不同的方向 ACL 效果也不一致

补充配置:可以让 ACL 的规则根据不同的时间来执行

例1:工作日允许 9:00 to 18:00 员工访问网络

1
2
3
4
5
time-range A 09:00 to 18:00 working-day  			// 代表 9 点到下午 6 点的工作日,生效

acl 2000
rule 1 permit source any time-range A // 生效时间按 time-range A 执行
rule 2 deny source any

例2:希望凌晨 12 点到第二天的 7 点无法访问网络(周末除外)

1
2
3
4
5
time-range A 0:00  to  7:00  working-day

acl 2000
rule 1 deny source any time-range A
rule 2 permit source any

例3:

晚上 8 点到第二天的早上 8 点无法访问网络

1
2
3
4
5
6
time-range A 20:00  to  0:00  daily 
time-range A 0:00 to 8:00 daily

acl 2000
rule 1 deny source any time-range A
rule 2 permit source any

查看是否生效

1
display acl all					// active 代表生效  inactive 代表无效

修改时间(进入用户视图)

1
clock datetime 9:00:00 2023-5-4			// 可以修改设备时间(默认时间跟随电脑系统)