ACL原理与配置
前言
随着网络的飞速发展,网络安全和网络服务质量(QoS)问题日益突出。访问控制列表(ACL, Access Control List)是与其紧密相关的一个技术。ACL通过对网络中报文流的精确识别,与其他技术结合,达到控制网络访问行为、防止网络攻击和提高网络带宽利用率的目的,从而保障网络环境的安全性和网络服务质量的可靠性。
目标
学完本课程后,您将能够:
- 描述ACL的基本原理和基本作用
- 区分ACL的不同种类及特点
- 描述ACL规则的基本组成结构和匹配顺序
- 掌握ACL中通配符的使用方法
- 完成ACL的基本组网配置
目录
- ACL技术概述
- ACL的基本概念及其工作原理
- ACL的基础配置及应用
技术背景
- 需求: 需要一个工具实现流量过滤
- 案例: 某公司为保证财务数据安全,禁止研发部门访问财务服务器,但总裁办公室不受限制。
ACL概述
- 定义: ACL是由一系列permit或deny语句组成的、有序规则的列表。ACL是一个匹配工具,能够对报文进行匹配和区分。
- 应用:
- 匹配IP流量
- 在Traffic-filter中被调用
- 在NAT(Network Address Translation)中被调用
- 在路由策略中被调用
- 在防火墙的策略部署中被调用
- 在QoS中被调用
ACL的组成
- 基本元素:
- ACL由若干条permit或deny语句组成
- 每条语句就是该ACL的一条规则
- 每条语句中的permit或deny就是与这条规则相对应的处理动作
- 规则编号与步长:
- 规则编号: 一个ACL中的每一条规则都有一个相应的编号
- 步长: 系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值,缺省值为5
通配符
- 定义: 通配符是一个32比特长度的数值,用于指示IP地址中哪些比特位需要严格匹配,哪些比特位无需匹配。
- 表示方法: 通配符通常采用类似网络掩码的点分十进制形式表示,但含义与网络掩码不同。
- 使用示例:
- 匹配192.168.1.0/24网段:192.168.1.1 0.0.0.255
- 匹配192.168.1.0/24子网中的奇数IP地址:192.168.1.1 0.0.0.254
ACL的分类与标识
- 基于规则定义方式的分类:
- 基本ACL
- 高级ACL
- 基于标识方法的分类:
- 数字型ACL
- 命名型ACL
ACL的匹配机制
- 匹配原则: 一旦命中即停止匹配
- 匹配流程:
- 引用的ACL是否存在?
- ACL是否存在rule?
- 分析第一条rule
- 命中rule,是否剩余rule?
- 分析下一条rule
- ACL动作是permit还是deny?
ACL的匹配顺序及匹配结果
- 配置顺序: 系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。
- 匹配结果:
- 允许(permit)
- 拒绝(deny)
- 不匹配
ACL的匹配位置
- 入站(Inbound)及出站(Outbound)方向:
- ACL可以配置在接口的入站方向或出站方向,以控制不同方向的流量。
ACL的基础配置命令
基本ACL
[Huawei] acl [ number ] acl-number [ match-order config ]
[Huawei] acl name acl-name { basic | acl-number } [ match-order config ]
[Huawei-acl-basic-2000] rule [ rule-id ] { deny | permit } [ source { source-address source-wildcard | any } | time-range time-name ]
高级ACL
[Huawei] acl [ number ] acl-number [ match-order config ]
[Huawei] acl name acl-name { advance | acl-number } [ match-order config ]
rule [ rule-id ] { deny | permit } ip [ destination { destination-address destination-wildcard | any } | source { source-address source-wildcard | any } | time-range time-name | [ dscp dscp | [ tos tos | precedence precedence ] ] ]
rule [ rule-id ] { deny | permit } { protocol-number | tcp } [ destination { destination-address destination-wildcard | any } | destination-port { eq port | gt port | lt port | range port-start port-end } | source { source-address source-wildcard | any } | source-port { eq port | gt port | lt port | range port-start port-end } | tcp-flag { ack | fin | syn } * | time-range time-name ] *
案例
使用基本ACL过滤数据流量
配置需求: 在Router上部署基本ACL,过滤掉源地址为192.168.1.0/24网段的数据包,放行其他流量。
[Router] acl 2000
[Router-acl-basic-2000] rule deny source 192.168.1.0 0.0.0.255
[Router-acl-basic-2000] rule permit source any
[Router] interface GigabitEthernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 2000
[Router-GigabitEthernet0/0/1] quit
配置需求: 通过Router限制研发部(10.1.1.0/24)和市场部(10.1.2.0/24)之间互访。
[Router] acl 3001
[Router-acl-adv-3001] rule deny ip source 10.1.1.0 0.0.0.255 destination 10.1.2.0 0.0.0.255
[Router-acl-adv-3001] quit
[Router] acl 3002
[Router-acl-adv-3002] rule deny ip source 10.1.2.0 0.0.0.255 destination 10.1.1.0 0.0.0.255
[Router-acl-adv-3002] quit
[Router] interface GigabitEthernet 0/0/1
[Router-GigabitEthernet0/0/1] traffic-filter inbound acl 3001
[Router-GigabitEthernet0/0/1] quit
[Router] interface GigabitEthernet 0/0/2
[Router-GigabitEthernet0/0/2] traffic-filter inbound acl 3002
[Router-GigabitEthernet0/0/2] quit
思考题
- 下列选项中,哪一项才是一条合法的基本ACL的规则?
A.rule permit ip
B.rule deny ip
C.rule permit source any
D.rule deny tcp source any
- 高级ACL可以基于哪些条件来定义规则?
本章总结
ACL是一种应用广泛的网络技术,通过配置ACL规则对经过网络设备的报文进行匹配和处理,实现网络访问控制、安全防护和流量管理等功能。本章节介绍了ACL的基本原理、组成、匹配机制、分类、通配符使用方法以及基础配置命令。
网络地址转换
前言
随着Internet的发展和网络应用的增多,有限的IPv4公有地址已成为制约网络发展的瓶颈。 为解决此问题,NAT(Network Address Translation,网络地址转换)技术应运而生。 NAT技术主要用于实现内部网络的主机访问外部网络,一方面缓解了IPv4地址短缺的问题,另一方面提升了内网的安全性。
目标
学完本课程后,您将能够:
- 了解NAT的技术背景
- 掌握NAT的分类和技术原理
- 掌握不同场景下如何选用不同类型的NAT技术
目录
- NAT概述
- 静态NAT
- 动态NAT
- NAPT、Easy-IP
- NAT Server
NAT产生背景
随着互联网用户的增多,IPv4的公有地址资源越发短缺,且存在分配不均的问题,导致部分地区IPv4可用公有地址严重不足。 为解决该问题,使用过渡技术解决IPv4公有地址短缺显得尤为必要。
私网IP地址
- 公有地址:由专门机构管理、分配,可在Internet上直接通信的IP地址。
- 私有地址:组织和个人可以任意使用,无法在Internet上直接通信,只能在内网使用的IP地址。
- A类:10.0.0.0 ~ 10.255.255.255
- B类:172.16.0.0 ~ 172.31.255.25 5
- C类:192.168.0.0 ~ 192.168.255. 255
NAT技术原理
NAT对IP数据报文中的IP地址进行转换,一般部署在网络出口设备(如路由器或防火墙)。NAT的典型应用场景:在私有网络内部 使用私有地址,出口设备部署NAT,对于“从内到外”的流量,通过NAT将数据包的源地址转换成特定的公有地址; 对于“从外到内”的流量,则对数据包的目的地址进行转换。
静态NAT原理
静态NAT中,每个私有地址都有一个与之对应且固定的公有地址,即一对一映射关系。 支持双向互访:私有地址访问Internet时会被转换成对应的公有地址,外部网络访问内部网络时,公有地址也会被转换成对应的私有地址 。
静态NAT转换示例
- 192.168.1.1访问Internet时,源地址转换为122.1.2.1。 Internet回包目的地址为122.1.2.1,转换回192.168.1.1。
- Internet上的主机访问122.1.2.3时,目的地址转换为192.168.1.3 。 回包源地址192.168.1.3转换为122.1.2.3。
静态NAT配置介绍
[Huawei-GigabitEthernet0/0/0] nat static global {global-address} inside {host-address}
[Huawei] nat static global {global-address} inside {host-address}
[Huawei-GigabitEthernet0/0/0] nat static enable
静态NAT配置示例
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]ip address 122.1.2.1 24
[R1-GigabitEthernet0/0/1]nat static global 122.1.2.1 inside 19 2.168.1.1
[R1-GigabitEthernet0/0/1]nat static global 122.1.2.2 inside 19 2.168.1.2
[R1-GigabitEthernet0/0/1]nat static global 122.1.2.3 inside 19 2.168.1.3
动态NAT原理
动态NAT中,所有可用的公有地址组成地址池。 当内部主机访问外部网络时,临时分配一个地址池中未使用的地址,并标记为“In Use”。主机不再访问时回收地址 ,重新标记为“Not Use”。
动态NAT转换示例
-
选择一个地址池中未使用的地址作为转换后的地址,并标记为“In Use”。
-
生成临时的NAT映射表。
-
根据公有地址查找私有地址,并进行IP数据报文目的地址转换。
动态NAT配置介绍
[Huawei] nat address-group group-index start-address end-address
[Huawei] acl number [Huawei-acl-basic-number] rule permit source source-address source-wildcard
[Huawei-GigabitEthernet0/0/0] nat outbound acl-number address-group group-index [no-pat]
动态NAT配置示例
[R1]nat address-group 1 122.1.2.1 122.1.2.3
[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]quit
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1 no-pat
NAPT原理
NAPT(Network Address and Port Translation,网络地址端口转换)在转换IP地址的同时也会转换端口号,实现公有地址与私有地址 的1:n映射,提高公有地址利用率。
NAPT转换示例
-
选择一个地址池中的地址,同时转换源IP、端口。
-
生成临时的NAT映射表,记录转换前后的IP和端口。
-
根据公有地址和端口信息查找对应的私有地址和端口,并进行IP数据报文目的地址、端口转换。
NAPT配置示例
[R1]nat address-group 1 122.1.2.1 122.1.2.1
[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]quit
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000 address-group 1
Easy IP
Easy IP实现原理和NAPT相同,但使用接口地址作为NAT转换的公有地址,适用于不具备固定公网IP地址的场景。
Easy IP配置示例
[R1]acl 2000
[R1-acl-basic-2000]rule 5 permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000]quit
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]nat outbound 2000
NAT Server使用场景
NAT Server指定公有地址和端口与私有地址和端口的一对一映射关系,将内网服务器映射到公网,供外部网络访问 。
NAT Server转换示例
• 外部网络访问公有地址和端口时,根据NAT映射表转换为私有地址和端口。
• 回包时根据NAT映射表反向转换。
NAT Server配置示例
[R1]interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1]ip address 122.1.2.1 24
[R1-GigabitEthernet0/0/1]nat server protocol tcp global 122.1.2.1 www inside 192.168.1.10 8080
思考题
-
何种NAT转换可以让外部网络主动访问内网服务器?
• 答:NAT Server。
-
NAPT相比较于No-PAT有哪些优点?
• 答:NAPT不仅转换IP地址还转换端口号,实现公有地址与私有地址的1:n映射,提高公有地址 利用率。
本章总结
在私有网络内使用私有地址,并在网络出口使用NAT技术,可以有效减少网络所需的IPv4公有地址数目,NAT技术有效缓解了IPv 4公有地址短缺的问题。 动态NAT、NAPT、Easy IP为私网主机访问公网提供源地址转换。 NAT Server实现了内网主机对公网提供服务。
静态
N
A
T
提供了一对一映射,支持双向互访
\color{red} {静态NAT提供了一对一映射,支持双向互访}
静态NAT提供了一对一映射,支持双向互访
动态
N
A
T
:
地址池
1
:
1
\color{red} {动态NAT:地址池 1:1}
动态NAT:地址池1:1
N
A
T
P
:
I
P
地址转换端口转换
1
:
N
映射
\color{red} {NATP:IP地址转换 端口转换 1:N映射}
NATP:IP地址转换端口转换1:N映射
E
a
s
y
I
P
:
没有地址池
\color{red} {Easy IP:没有地址池}
EasyIP:没有地址池