【网络协议详解】——ACL技术(学习笔记)

目录

ACL简介

定义

目的

ACL的基本原理

ACL的组成

交换机支持的ACL

交换机支持的ACL

 VLAN编号及其掩码

ACL的匹配机制

匹配顺序

配置顺序

自动排序

ACL的步长设定

ACL应用模块的ACL默认动作和处理机制

ACL的应用模块

应用模块的ACL默认动作和处理机制

在OSPF中使用基本ACL过滤路由信息示例

组网需求

配置思路


ACL简介

定义

访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。

ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。

ACL配置完成后,必须应用在业务模块中才能生效,其中最基本的ACL应用,就是在简化流策略/流策略中应用ACL,使设备能够基于全局、VLAN或接口下发ACL,实现对转发报文的过滤。此外,ACL还可以应用在Telnet、FTP、路由等模块。

目的

ACL可以实现对网络中报文流的精确识别和控制,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而切实保障网络环境的安全性和网络服务质量的可靠性。

ACL的基本原理

ACL由一系列规则组成,通过将报文与ACL规则进行匹配,设备可以过滤出特定的报文。设备支持软件ACL和硬件ACL两种实现方式。

ACL的组成

一条ACL的结构组成,如图1所示。

图1 ACL的结构组成

  • ACL名称:通过名称来标识ACL,就像用域名代替IP地址一样,更加方便记忆。这种ACL,称为命名型ACL。

    命名型ACL一旦创建成功,便不允许用户再修改其名称。

    仅基本ACL与基本ACL6,以及高级ACL与高级ACL6,可以使用相同的ACL名称;其他类型ACL之间,不能使用相同的ACL名称。

  • ACL编号:用于标识ACL,也可以单独使用ACL编号,表明该ACL是数字型。

    不同的ACL类型使用不同的ACL编号取值标识。

  • 规则:即描述报文匹配条件的判断语句。

    • 规则编号:用于标识ACL规则。可以自行配置规则编号,也可以由系统自动分配。

      ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。系统按照规则编号从小到大的顺序,将规则依次与报文匹配,一旦匹配上一条规则即停止匹配。

    • 动作:报文处理动作,包括permit/deny两种,表示允许/拒绝。

    • 匹配项:ACL定义了极其丰富的匹配项。除了图1中的源地址和生效时间段,ACL还支持很多其他规则匹配项。例如,二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型),三层报文信息(如目的IP地址、协议类型),以及四层报文信息(如TCP/UDP端口号)等

交换机支持的ACL

交换机支持的ACL

如表1所示,交换机支持的ACL规则包括过滤IPv4报文的ACL、过滤IPv6报文的ACL6以及既支持过滤IPv4报文又支持过滤IPv6报文的二层ACL和用户自定义ACL。

表1 交换机支持的ACL

分类

适用的IP版本

规则定义描述

编号范围

基本ACL

IPv4

仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。

2000~2999

高级ACL

IPv4

既可使用IPv4报文的源IP地址,也可使用目的IP地址IP协议类型、ICMP类型、TCP源/目的端口、UDP源/目的端口号、生效时间段等来定义规则。

3000~3999

二层ACL

IPv4和IPv6

使用报文的以太网帧头信息来定义规则,如根据源MAC(Media Access Control)地址、目的MAC地址、二层协议类型等。

4000~4999

用户自定义ACL

IPv4和IPv6

使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则,即以报文头为基准,指定从报文的第几个字节开始与字符串掩码进行“与”操作,并将提取出的字符串与用户自定义的字符串进行比较,从而过滤出相匹配的报文。

5000~5999

用户ACL

IPv4

既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。

6000~9999

基本ACL6

IPv6

可使用IPv6报文的源IPv6地址、分片信息和生效时间段来定义规则。

2000~2999

高级ACL6

IPv6

可以使用IPv6报文的源IPv6地址目的IPv6地址、IPv6协议类型、ICMPv6类型、TCP源/目的端口、UDP源/目的端口号、生效时间段等来定义规则。

3000~3999

用户ACL6

IPv6

既可使用IPv6报文的源IPv6地址或源UCL组,也可使用目的IPv6地址、IPv6协议类型、ICMPv6类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。

6000~9999

 VLAN编号及其掩码

外层VLAN及其掩码格式:vlan-id vlan-id [ vlan-id-mask ]

内层VLAN及其掩码格式:cvlan-id cvlan-id [ cvlan-id-mask ]

二层ACL支持基于外层VLAN或内层VLAN编号过滤报文。

将VLAN编号定义为规则匹配项时,可以在VLAN编号字段后面同时指定VLAN掩码,用来与VLAN编号字段共同确定一个VLAN范围。

VLAN掩码的格式是十六进制形式,取值范围是0x0~0xFFF。如果不指定VLAN掩码,则默认掩码为0xFFF,表示检查VLAN编号的每一位。

ACL的匹配机制

设备将报文与ACL规则进行匹配时,遵循“一旦命中即停止匹配”的机制.

图1 ACL的匹配机制

从上面的ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种结果:“命中规则”和“未命中规则”。

  • 命中规则:指存在ACL,且在ACL中查找到了符合匹配条件的规则。

  • 未命中规则:指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。

报文最终是被允许通过还是拒绝通过,实际是ACL规则中的指定动作和应用ACL的各个业务模块来共同决定。不同的业务模块,对命中和未命中规则报文的处理方式也各不相同。例如,在Telnet模块中应用ACL,只要报文命中了规则且ACL规则动作为permit,就允许通过;而在流策略中应用ACL,如果报文命中了规则且ACL规则动作为permit,但流行为动作配置的是deny,该报文仍会被拒绝通过。

匹配顺序

设备支持两种ACL匹配顺序:配置顺序(config模式)和自动排序(auto模式)缺省的ACL匹配顺序是config模式。

配置顺序

配置顺序,即系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。

  • 如果配置规则时指定了规则编号,则规则编号越小,规则插入位置越靠前,该规则越先被匹配。

  • 如果配置规则时未指定规则编号,则由系统自动为其分配一个编号。该编号是一个大于当前ACL内最大规则编号且是步长整数倍的最小整数,因此该规则会被最后匹配。

自动排序

自动排序,是指系统使用“深度优先”的原则,将规则按照精确度从高到低进行排序,并按照精确度从高到低的顺序进行报文匹配。规则中定义的匹配项限制越严格,规则的精确度就越高,即优先级越高,系统越先匹配。各类ACL的“深度优先”顺序匹配原则如表1所示。

表1 “深度优先”匹配原则

ACL类型

匹配顺序(从高到低)

基本ACL

  1. VPN实例。
  2. 源IP地址范围,源IP地址范围小(IP地址通配符掩码中“0”位的数量多)的规则优先。
  3. 规则编号,规则编号小的优先。

高级ACL

  1. VPN实例
  2. 协议范围,指定了IP协议承载的协议类型的规则优先
  3. 源IP地址范围,源IP地址范围小(IP地址通配符掩码中“0”位的数量多)的规则优先。
  4. 目的IP地址范围,目的IP地址范围小(IP地址通配符掩码中“0”位的数量多)的规则优先。
  5. 四层端口号(TCP/UDP端口号)范围,四层端口号范围小的规则优先。
  6. 规则编号,规则编号小的优先。

二层ACL

  1. 二层协议类型通配符掩码,通配符掩码大(协议类型通配符掩码中“1”位的数量多)的规则优先。
  2. 源MAC地址范围,源MAC地址范围小(MAC地址通配符掩码中“1”位的数量多)的规则优先。
  3. 目的MAC地址范围,目的MAC地址范围小(MAC地址通配符掩码中“1”位的数量多)的规则优先。
  4. 规则编号,规则编号小的优先。

用户自定义ACL

用户自定义ACL规则的匹配顺序只支持配置顺序,即规则编号从小到大的顺序进行匹配。

ACL的步长设定

步长的含义

步长,是指系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值。

系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。例如ACL中包含规则rule 5和rule 12,ACL的缺省步长为5,大于12且是5的倍数的最小整数是15,所以系统分配给新配置的规则的编号为15。

基本ACL6和高级ACL6不支持步长设定,缺省步长为5。
设置步长的作用,在于方便后续在旧规则之间插入新的规则。

ACL应用模块的ACL默认动作和处理机制

ACL的应用模块

配置完ACL后,必须在具体的业务模块中应用ACL,才能使ACL正常下发和生效。

ACL应用的业务模块,主要分为以下几类。

表1 ACL应用的业务模块

业务分类

应用场景

涉及业务模块

对转发的报文进行过滤

基于全局、接口和VLAN,对转发的报文进行过滤,从而使设备能够进一步对过滤出的报文进行丢弃、修改优先级、重定向等处理。

例如,使用ACL限制不同网段用户互访、禁止特定用户主机在特定时间内上网、利用ACL降低P2P下载、网络视频等消耗大量带宽的数据流的服务等级,在网络拥塞时优先丢弃这类流量,减少它们对其他重要流量的影响。

简化流策略/流策略

对上送CPU处理的报文进行过滤

对上送CPU的报文进行必要的限制,可以避免CPU处理过多的协议报文造成占用率过高、性能下降。

例如,当发现某用户向设备发送大量的ARP攻击报文,造成设备CPU繁忙,引发系统中断时,可以在本机防攻击策略的黑名单中应用ACL,将该用户加入黑名单,使CPU丢弃该用户发送的报文。

黑名单

登录控制

对设备的登录权限进行控制,允许合法用户登录,拒绝非法用户登录,从而有效防止未经授权用户的非法接入,保证网络安全性。

例如,一般情况下设备只允许管理员登录,非管理员用户不允许随意登录。这时就可以在Telnet中应用ACL,并在ACL中定义哪些主机可以登录,哪些主机不能。

STelnet、SFTP、FTPTelnetHTTP、SNMP

路由过滤

ACL可以应用在各种动态路由协议中,对路由协议发布、接收的路由信息以及组播组进行过滤。

例如,可以将ACL和路由策略配合使用过滤路由信息,禁止设备将某网段路由发给邻居路由器。

BGP、IS-IS、OSPF、OSPFv3、RIP、RIPng、组播协议

应用模块的ACL默认动作和处理机制

在各类业务模块中应用ACL时,ACL的默认动作各有不同,所以各业务模块对命中/未命中ACL规则报文的处理机制也各不相同。

例如,流策略中的ACL默认动作是permit,在流策略中应用ACL时,如果ACL中存在规则但报文未匹配上,该报文仍可以正常通过。而Telnet中的ACL默认动作是deny,在Telnet中应用ACL时,如果遇到此种情况,该报文会被拒绝通过。

此外,黑名单模块中的ACL处理机制与其他模块有所不同。在黑名单中应用ACL时,无论ACL规则配置成permit还是deny,只要报文命中了规则,该报文都会被系统丢弃。

各类业务模块中的ACL默认动作及ACL处理机制,如表2表3表4所示。

表2 各业务模块的ACL默认动作及ACL处理机制

ACL默认动作及处理规则

Telnet

HTTP

FTP

TFTP

ACL默认动作

deny

deny

deny

deny

命中permit规则

permit(允许登录)

permit(允许登录)

permit(允许登录)

permit(允许登录)

命中deny规则

deny(拒绝登录)

deny(拒绝登录)

deny(拒绝登录)

deny(拒绝登录)

ACL中配置了规则,但未命中任何规则

deny(拒绝登录)

deny(拒绝登录)

deny(拒绝登录)

deny(拒绝登录)

ACL中未配置规则

permit(允许登录)

permit(允许登录)

permit(允许登录)

permit(允许登录)

ACL未创建

permit(允许登录)

permit(允许登录)

permit(允许登录)

permit(允许登录)

表3 各业务模块的ACL默认动作及ACL处理机制

ACL默认动作及处理规则

STelnet

SFTP

SNMP

流策略

简化流策略

本机防攻击策略(黑名单)

ACL默认动作

deny

deny

deny

permit

permit

permit

命中permit规则

permit(允许登录)

permit(允许登录)

permit(允许登录)

  • 流行为是permit时:permit(允许通过)

  • 流行为是deny时:deny(丢弃报文)

  • 流行为是其他动作时:permit(执行流策略动作)

permit(执行简化流策略动作)

deny(丢弃报文)

命中deny规则

deny(拒绝登录)

deny(拒绝登录)

deny(拒绝登录)

deny(丢弃报文)

说明:

报文命中deny规则时,只有在流行为是流量统计、MAC地址不学习或流镜像的情况下,设备才会执行流行为动作,否则流行为动作不生效。

  • 简化流策略动作为报文过滤(traffic-filter或traffic-secure)时:deny(丢弃报文)

  • 简化流策略动作为其他动作时:permit(执行简化流策略动作)

deny(丢弃报文)

ACL中配置了规则,但未命中任何规则

deny(拒绝登录)

deny(拒绝登录)

deny(拒绝登录)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,正常上送报文)

ACL中未配置规则

permit(允许登录)

permit(允许登录)

permit(允许登录)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,正常上送报文)

ACL未创建

permit(允许登录)

permit(允许登录)

permit(允许登录)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,按照原转发方式进行转发)

permit(功能不生效,正常上送报文)

表4 各业务模块的ACL默认动作及ACL处理机制

ACL默认动作及处理规则

Route Policy

Filter Policy

igmp-snooping ssm-policy

igmp-snooping group-policy

ACL默认动作

deny

deny

deny

deny

命中permit规则

  • 匹配模式是permit时:permit(允许执行路由策略)

  • 匹配模式是deny时:deny(不允许执行路由策略)

permit(允许发布或接收该路由)

permit(允许加入SSM组播组范围)

permit(允许加入组播组)

命中deny规则

deny(功能不生效,不允许执行路由策略)

deny(不允许发布或接收该路由)

deny(禁止加入SSM组地址范围)

deny(禁止加入组播组)

ACL中配置了规则,但未命中任何规则

deny(功能不生效,不允许执行路由策略)

deny(不允许发布或接收该路由)

deny(禁止加入SSM组地址范围)

deny(禁止加入组播组)

ACL中未配置规则

permit(对经过的所有路由生效)

deny(不允许发布或接收路由)

deny(禁止加入SSM组地址范围,所有组都不在SSM组地址范围内)

deny(禁止加入组播组)

ACL未创建

deny(功能不生效,不允许执行路由策略)

permit(允许发布或接收路由)

deny(禁止加入SSM组地址范围,只有临时组地址范围232.0.0.0~232.255.255.255在SSM组地址范围内)

deny(禁止加入组播组)

在OSPF中使用基本ACL过滤路由信息示例

组网需求

如图1,运行OSPF协议的网络中,RouterA从Internet网络接收路由,并为OSPF网络提供了Internet路由。要求OSPF网络中只能访问172.1.17.0/24、172.1.18.0/24和172.1.19.0/24三个网段的网络,其中RouterC连接的网络只能访问172.1.18.0/24网段的网络。

图1 配置对接收和发布的路由过滤组网图

配置思路

采用如下的思路配置对路由进行过滤:

  1. 在RouterA上配置ACL,在路由发布时应用ACL,使RouterA仅提供路由172.1.17.0/24、172.1.18.0/24、172.1.19.0/24给RouterB,实现OSPF网络中只能访问172.1.17.0/24、172.1.18.0/24、172.1.19.0/24三个网段的网络。

  2. RouterC上配置ACL,在路由引入时应用ACL,使RouterC仅接收路由172.1.18.0/24,实现RouterC连接的网络只能访问172.1.18.0/24网段的网络。

RouterA的配置文件

#
sysname RouterA 
#
acl number 2002                                                                 
 rule 5 permit source 172.16.17.0 0.0.0.255                                      
 rule 10 permit source 172.16.18.0 0.0.0.255                                     
 rule 15 permit source 172.16.19.0 0.0.0.255                                     
#                                                                               
interface GigabitEthernet1/0/0                                                  
 ip address 192.168.1.1 255.255.255.0  
#
ospf 1
 filter-policy 2002 export static 
 import-route static
 area 0.0.0.0
  network 192.168.1.0 0.0.0.255
#
ip route-static 172.16.16.0 255.255.255.0 NULL0
ip route-static 172.16.17.0 255.255.255.0 NULL0
ip route-static 172.16.18.0 255.255.255.0 NULL0
ip route-static 172.16.19.0 255.255.255.0 NULL0
ip route-static 172.16.20.0 255.255.255.0 NULL0
#
return

RouterB的配置文件

sysname RouterB 
#
interface GigabitEthernet1/0/0
 ip address 192.168.1.2 255.255.255.0
#
interface GigabitEthernet2/0/0
 ip address 192.168.3.1 255.255.255.0
#
interface GigabitEthernet3/0/0
 ip address 192.168.2.1 255.255.255.0
#
ospf 1
 area 0.0.0.0
  network 192.168.1.0 0.0.0.255
  network 192.168.2.0 0.0.0.255
  network 192.168.3.0 0.0.0.255
#
return

RouterC的配置文件

#
sysname RouterC
#
acl number 2003  
 rule 5 permit source 172.16.18.0 0.0.0.255
#
interface GigabitEthernet1/0/0
 ip address 192.168.2.2 255.255.255.0
#
ospf 1
 filter-policy 2003 import
 area 0.0.0.0
  network 192.168.2.0 0.0.0.255
#
return

RouterD的配置文件

#
 sysname RouterD
#
interface GigabitEthernet1/0/0
 ip address 192.168.3.2 255.255.255.0
#
ospf 1
 area 0.0.0.0
  network 192.168.3.0 0.0.0.255
#
return

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值