ACL原理与配置

随着网络的飞速发展,网络安全和网络服务质量QoS(QualityofService)问题日益突出。访问控制列表(ACL,AccessControlList)
是与其紧密相关的一个技术。

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

一 ACL概述

ACL是由一系列permit或deny语句组成的、有序规则的列表。

ACL是一个匹配工具,能够对报文进行匹配和区分。

二 ACL的基本概念及其工作原理

1 ACL的组成

ACL由若干条permit或deny语句组成。每条语句就是该ACL的一条规则,每条语句中的permit或deny就是与这条规则相对应的处理动作。

规则的执行顺序从上而下执行,一旦匹配到某一条规则,后续规则不再匹配执行,在书写ACL是我们要遵循精确的规则在上。而粗狂的规则在下的书写原则。

ACL的隐示规则(虽然没有配置不显示,除了流量过滤-源IP以外默认为deny拒绝所有),流量过滤只能控制经过的流量,通常不能控制本地始发的流量。

2 规则编号与步长

规则编号(Rule ID)

一个ACL中的每一条规则都有一个相应的编号。

步长(Step)

步长是系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5。步长的作用是为了方便后续在旧规则之间,插入新的规则。

Rule ID分配规则

系统为ACL中首条未手工指定编号的规则分配编号时,使用步长值(例如步长=5,首条规则编号为5)作为该规则的起始编号;为后续规则分配编号时,则使用大于当前ACL内最大规则编号且是步长整数倍的最小整数作为规则编号。

3 ACL的分类与标识

基于ACL规则定义方式的分类

分类编号范围规则定义描述
基本ACL2000~2999仅使用报文的源IP地址、分片信息和生效时间段信息来定义规则。
高级ACL3000~3999可使用IPv4报文的源IP地址、目的IP地址、IP协议类型、ICMP类型、TCP源/目的端口号、UDP源/目的端口号、生效时间段
等来定义规则。
二层ACL4000~4999使用报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、二层协议类型等。
用户自定义ACL5000~5999使用报文头、偏移位置、字符串掩码和用户自定义字符串来定义规则。
用户ACL6000~6999既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的IP地址或目的UCL组、
IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。

基于ACL标识方法的分类

分类规则定义描述
数字型ACL传统的ACL标识方法。创建ACL时,指定一个唯一的数字标识该ACL。
命名型ACL通过名称代替编号来标识ACL。

相关命令

创建ACL编号
[Huawei]acl ? INTEGER<2000-2999> Basic access-list(add to current using
rules) INTEGER<3000-3999> Advanced access-list(add to current using rules)
INTEGER<4000-4999> Specify a L2 acl group ipv6 ACL IPv6 name Specify a named
ACL number Specify a numbered ACL

在ACL编号下创建规则
[Huawei-acl-basic-2000]rule 5 deny source ? IP_ADDR<X.X.X.X> Address of
source any Any source

在接口下调用流量过滤的ACL规则
[Huawei-GigabitEthernet0/0/0]traffic-filter ? inbound Apply ACL to the
inbound direction of the interface outbound Apply ACL to the outbound direction
of the interface

查看所有的ACL规则
<Huawei>display acl all

实验一:配置基本ACL(入方向)

 主机配置

 

交换机配置
[AR1]acl 2000 \\创建ACL编号2000 [AR1-acl-basic-2000]rule 5 deny source 192.168.1.5
0 \\拒绝PC1的流量 [AR1-acl-basic-2000]rule 10 deny source 192.168.1.10 0 \\拒绝PC2的流量
[AR1-acl-basic-2000]rule 10000 permit source any \\允许其他任何流量通过
[AR1-GigabitEthernet0/0/0]ip address 192.168.1.1 24 \\设置IP和掩码
[AR1-GigabitEthernet0/0/0]traffic-filter inbound acl 2000 \\在接口 GE 0/0/0
的输入方向上应用 acl 2000 的规则
测试连通性

 

 

 通过测试,发现主机1和主机2无法ping通路由器,而其他2台主机可以ping通,配置成功。

实验二:配置基本ACL(出方向)

主机配置同上

路由器AR1配置
[AR1-GigabitEthernet0/0/0]undo traffic-filter inbound \\取消上个实验中在接口 GE
0/0/0的入方向上的ACL规则 [AR1-GigabitEthernet0/0/1]ip address 1.1.1.1 24 \\配置IP和掩码
[AR1-GigabitEthernet0/0/1]traffic-filter outbound acl 2000 \\在接口 GE 0/0/1
的出方向上应用ACL规则
路由器AR2配置
[AR2]ip route-static 0.0.0.0 0 1.1.1.1 \\配置静态默认路由 [AR2-GigabitEthernet0/0/1]ip
address 1.1.1.2 24 \\配置IP和掩码
连通性测试

 

通过测试发现,主机1和主机2虽然可以ping通路由器AR1的GE 0/0/1接口,但是不能ping通路由器AR2的GE
0/0/0接口,而其他主机都可以ping通路由器AR2的GE 0/0/0接口。

实验三:配置高级ACL(基于目标IP地址)

主机配置同上

路由器AR1配置
[AR1]acl 3000 [AR1-acl-adv-3000]rule 5 deny ip destination 1.1.1.2 0
[AR1-acl-adv-3000]rule 10000 permit ip source any destination any
[AR1-GigabitEthernet0/0/1]undo traffic-filter outbound
[AR1-GigabitEthernet0/0/0]traffic-filter inbound acl 3000
连通性测试

 

 

通过测试可以看出,四台主机都能ping通1.1.1.1,但是不能ping通1.1.1.2,实验成功。

实验四:配置高级ACL(基于协议)

路由器AR2配置
[AR2]user-interface vty 0 4 \\进入用户VTY 0 4接口 [AR2-ui-vty0-4]authentication-mode
password \\修改认证模式为密码方式 [AR2-ui-vty0-4]set authentication password cipher 123456
\\设置密文密码123456 [AR2-ui-vty0-4]user privilege level 15 \\配置用户权限等级为15
[AR2-ui-vty0-4]protocol inbound telnet \\开启telnet方式登录 [AR2]acl 3100
\\创建ACL编号3100 [AR2-acl-adv-3100]rule 5 deny icmp \\拒绝ICMP流量
[AR2-acl-adv-3100]rule 20 permit tcp \\允许TCP流量
[AR2-GigabitEthernet0/0/0]traffic-filter inbound acl 3100 \\在接口GE
0/0/0的入方向应用ACL3100规则
在路由器AR1上测试效果

 

测试发现ping(ICMP)不通,但是telnet(TCP)没问题,实验成功。

三 通配符掩码(Wildcard)

通配符掩码是一个32比特长度的数值,用于指示IP地址中,哪些比特位需要严格匹配,哪些比特位无需匹配,用于匹配多个特定的IP地址、或者一段连续的IP地址。

通配符掩码通常采用类似网络掩码的点分十进制形式表示,但是含义却与网络掩码完全不同。

匹配规则:
“0”表示“严格匹配”;“1”表示“任意”

严格匹配:意思是对应的IP地址中的这一位不发生变化。

任意:意思是对应的IP地址中的这一位既可以是0也可以是1。

举例一:匹配两个地址

192.168.1.5     0.0.0.1

首先将IP地址和通配符掩码转换为二进制

11000000‭10101000‬000000010000‭0101‬
00000000000000000000000000000001
分析:通配符掩码的前面31位都是0,那么IP地址对应的前面31位都不可以发生变化,而最后位是1
,那么IP地址中的最后位既可以是0,也可以是1。计算后,它匹配的是192.168.1.4和192.168.1.5这2个地址。

举例二:匹配多个地址

192.168.1.5     0.0.0.3

11000000‭10101000‬000000010000‭0101‬
00000000000000000000000000000011
分析:通配符掩码的前面30位都是0,那么IP地址对应的前面30位都不可以发生变化,而最后2位是1
,那么IP地址中的最2位既可以是0,也可以是1。计算后,它匹配的是192.168.1.4 --- 192.168.1.7这4个地址。

举例三:匹配整个网段

192.168.1.5     0.0.0.255

11000000‭10101000‬000000010000‭0101‬
00000000000000000000000011111111
分析:通配符掩码的前面24位都是0,那么IP地址对应的前面24位都不可以发生变化,而最后8位是1
,那么IP地址中的最8位既可以是0,也可以是1。计算后,它匹配的是192.168.1.0 --- 192.168.1.255,也就是
192.168.1.0/24这个网段。

举例四:匹配多个不连续的地址

192.168.1.5     0.0.0.254

11000000‭10101000‬000000010000‭0101‬
00000000000000000000000011111110
分析:通配符掩码的前面24位和第32位都是0,那么IP地址对应的前面24位和第32位都不可以发生变化,而第25位到31是1
,那么IP地址中的第25位到31既可以是0,也可以是1。计算后,它匹配的是192.168.1.1、192.168.1.3、192.168.1.5、192.168.1.7、192.168.1.9、192.168.1.11~~~~~~,也就是
192.168.1.0/24这个网段中所有的奇数。

技术
©2019-2020 Toolsou All rights reserved,
C语言——qsort函数CSS实现溢出显示省略号网络层协议——ICMP协议C语言小游戏-俄罗斯方块Qt入门教程【基础控件篇】QCalendarWidget日历控件用python来控制wifi连接vue中input框只能输入数字Python内置函数C语言数据结构-顺序表删除重复V2.0.0abaqus质量缩放系数取值_ABAQUS的质量缩放