eNSP实验——ACL访问控制列表


eNSP实验——ACL访问控制列表

仅供参考


基础概念


一、ACL 简介

ACL(Access Control List)是网络设备(路由器/交换机/防火墙)上用于控制数据流进出的规则集合,类似于ACL就像网络设备的"守门员",通过定义决定哪些数据可以进出(允许Permit),哪些不能(拒绝Deny)规则,实现网络安全管控。


二、ACL 三大类型对比

1. ACL 分类
类型配置编号检查内容用途场景通俗比喻
基本ACL2000-2999只看源IP封禁黑客IP/允许内网访问看身份证
高级ACL3000-3999五元组 (IP+端口+协议)精准控制服务 (如只开放HTTP端口)安检机 (查人+行李+目的地)
二层ACL4000-4999MAC地址/VLAN禁止陌生设备接入Wi-Fi车牌识别
2. 关键区别
  • 基本ACL只管谁来的?(源IP)
  • 高级ACL管谁?去哪?干啥?(IP+端口+协议)
  • 二层ACL谁的网卡?在哪个VLAN?认设备不认人。(MAC+VLAN)

严格顺序匹配:ACL规则按rule ID从小到大逐条匹配,命中第一条后立即生效,后续规则不再检查。


3. ACL 三大核心能力
作用功能说明生活例子配置关键词
保1安封禁恶意IP/放行可信IP小区门禁:只允许业主进入deny/permit
交警控制流量走向(如分流视频会议)高德导航:为救护车规划快速路route-policy
调度员优先保障关键业务(如视频通话)机场VIP通道:优先登机QoS priority

📌 一句话总结:ACL = (IP/MAC) + 去哪(端口/协议) + 怎么管(允许/拒绝/优先)。


4. ACL 特性
类型编号范围检查内容处理性能生活化类比典型应用场景
基本ACL2000-2999仅源IP⚡️ 超快小区门禁(只查身份证)IP黑名单/远程登录控制
高级ACL3000-3999五元组(IP+端口+协议)⏱️ 中等机场安检(查身份+行程+行李)服务级管控(如仅开放HTTP端口)
二层ACL4000-4999MAC地址/VLAN⚠️ 较高时延酒店房卡(只认门卡不认人)IoT设备接入控制(MAC白名单)

基本ACL快但功能单一,高级ACL全能却稍慢,二层ACL专攻MAC控制但时延高,按需选择才能精准管控。


三、ACL 的工作原理

1. 基本组成
  • ACL 由 多条规则(Rule) 组成,每条规则相当于一个 “if-then” 判断语句。
  • 规则按 从上到下顺序匹配,一旦匹配成功即执行动作(允许/拒绝),后续规则不再检查。
  • 默认情况下,ACL 末尾隐含 “deny any”(未匹配任何规则时丢弃数据包)。
2. ACL 匹配逻辑流程图
1. 数据包到达设备(路由器/交换机)  
   ↓  
2. 检查ACL规则:  
   - 按顺序匹配规则1 → 规则2 → ... → 规则N  
   ↓  
3. 命中某条规则?  
   ├─ 是 → 执行允许(permit)或拒绝(deny)动作,流程结束  
   └─ 否 → 继续匹配下一条规则  
   ↓  
4. 所有规则未匹配? → 执行默认拒绝(deny any)  
3. 关键特点
  • 精确控制:可限制访问时间、服务类型(如仅开放Web端口)。
  • 方向性:需指定应用在接口的 入方向(inbound)出方向(outbound)
  • 性能影响:规则越多,匹配耗时越长,可能影响网络延迟。

四、ACL 规则怎么执行

1. ACL 执行举例

ACL 是顺序执行的,匹配即停止,所以精确规则(如封禁某个IP)要放在宽松规则(如允许整个网段)前面,否则宽松规则会"提前截胡"

  1. 严格顺序匹配:ACL 规则按编号从小到大检查,命中即停(类似考试“第一题答对就不看第二题”)。
  2. 默认拒绝所有:若ACL 规则未命中,默认拒绝流量(需手动添加permit放行)。

常见踩坑

错误写法

acl 2000  
  rule 5 permit source 10.0.0.0 0.255.255.255  # 允许10网段  
  rule 10 deny source 10.0.0.5 0              # 想封禁10.0.0.5?无效!  

问题原因:规则5已放行所有10.x.x.xIP(包括10.0.0.5),因此规则10永远不会被检查到。


正确写法:调换顺序,先denypermit

acl 2000
rule 5 deny source 10.0.0.0 0.0.0.0         # 先精确封禁10.0.0.0
rule 10 permit source 10.0.0.0 0.255.255.255 # 再放行整个10网段

关键原则:精确规则在前(如封禁单IP),宽松规则在后(如允许整个网段),顺序决定有效性。


2. ACL 规则类比

场景设定

假设机场有不同的通道,通道上有不同的检查点,每个检查点都有相应的指示牌,这些指示牌就相当于 ACL 中的规则。比如,有一个指示牌写着 “禁止携带红色行李箱进入候机厅”(类似 deny 规则),另一个指示牌写着 “允许携带其他颜色行李箱进入候机厅”(类似 permit 规则)。

# ACL规则顺序的机场安检类比

核心原则:规则顺序决定有效性(命中即停)

机场安检通道的指示牌相当于ACL规则:
- 🚫 "禁止红色行李箱" = `deny`规则
- ✅ "允许其他行李箱" = `permit`规则

| 正确顺序 ✔          | 错误顺序 ✘           |
|-------------------|-------------------|
| 1. 禁止红色行李箱    | 1. 允许所有行李箱   |
| 2. 允许其他行李箱    | 2. 禁止红色行李箱   |
| → 精准拦截          | → 拦截失效        |

ACL对应配置:
- "先精确拦截(deny),再宽松放行(permit)"

❌ 错误顺序:先 Permit(允许),再 Deny(禁止)

规则顺序:

  1. 允许所有行李箱进入候机厅permit any
  2. 禁止红色行李箱进入候机厅deny red

执行过程:

  • 旅客携带 红色行李箱 过来:
    • 第 1 条规则(permit any)匹配成功,直接放行。
    • 第 2 条规则(deny red永远不会被检查
  • 结果:红色行李箱仍然能进入,安检失效!

✅ 正确顺序:先 Deny(禁止),再 Permit(允许)

规则顺序:

  1. 禁止红色行李箱进入候机厅deny red
  2. 允许其他颜色的行李箱进入候机厅permit any

执行过程:

  • 旅客携带 红色行李箱 过来:
    • 第 1 条规则(deny red)匹配,直接拦截。
  • 旅客携带 黑色行李箱 过来:
    • 第 1 条规则(deny red)不匹配,继续检查第 2 条(permit any),放行。
  • 结果:只有红色行李箱被禁止,其他行李箱正常通行。

1. 基础ACL:小区大门门禁

功能:只管"谁可以进小区"
检查内容:只看访客的身份证(源IP地址)
举例

  • 规则1:允许3栋业主进入(permit 192.168.3.0/24)
  • 规则2:禁止快递员进入(deny 192.168.5.0/24)

特点

  • 简单粗暴,只认"脸"(源IP)
  • 不关心进来后去哪栋楼、做什么

2. 高级ACL:物业前台登记系统

功能:精细管控"谁+去哪+做什么"
检查内容:访客身份证(源IP)+ 拜访楼栋(目的IP)+ 事由(端口/协议)
举例

  • 允许3栋业主(源IP)去会所(目的IP)健身(端口5000)
  • 禁止所有人进入机房(目的IP)的运维端口(22)

特点

  • 像严格的前台登记,要查证件+访问目的
  • 能精准控制到具体服务(如只开放网页访问)

3. 二层ACL:停车场车牌识别

功能:基于物理设备管控
检查内容:设备"车牌号"(MAC地址/VLAN)
举例

  • 只允许登记车辆(MAC白名单)进入地库
  • 禁止外来电动车(未知MAC)连接充电桩

特点

  • 不认人(IP),只认车(物理设备)
  • 常用于Wi-Fi接入、VLAN隔离等场景

五、 ACL 核心规则

1. 执行机制

🔢 顺序匹配

  • 规则严格按ID从小到大检查
  • 首条匹配后立即生效,后续规则跳过
  • ▶️ 例:rule 5 优先于 rule 10 执行
2. 默认策略

🚫 全拒绝原则

  • 所有ACL隐含最终deny any规则
  • 必须显式添加permit规则放行流量
  • ⚠️ 未匹配任何规则的数据包自动丢弃

规则语法

 # 编号小优先,没许可全拦,写规则要全
 rule [ID] [permit/deny] [匹配条件]  
 # 示例:
 # rule 5 permit source 192.168.1.0 0.0.0.255
 # rule 10 permit source 192.168.1.0 0.0.0.255 				# 放行192.168.1.0/24网段
 # rule 20 deny source 10.1.1.1 0							# 封禁单个IP

反掩码计算反掩码 = 255.255.255.255 - 子网掩码
举例:
24位的反掩码 = 255.255.255.255 - 255.255.255.0 = 0.0.0.255
30位的反掩码 = 255.255.255.255 - 255.255.255.252 = 0.0.0.3


六、ACL 自定义配置

1. 创建 ACL

acl name <名称> <编号>

# 基本格式(二选一):
acl name <策略名称> <编号>    # 命名方式(推荐)
acl number <编号>            # 数字方式

# 示例:
acl name WEB_ACCESS 3001     # 创建名为 WEB_ACCESS 的 ACL

⚠️ 注意:编号范围必须匹配ACL类型(如基础ACL 2000-2999)


2. 添加规则

rule < ID > permit/deny …

rule <规则ID> <permit|deny> <协议>    # 规则ID 越小,优先级越高
    source <源IP> <反掩码>            # 设置来源IP范围
    [destination <目标IP> <反掩码>]    # 设置目标IP(高级ACL才需要)
    [destination-port eq <端口>]      # 限制端口(如 80、443)
    [time-range <时间段>]             # 限制生效时间(可选)
    [logging]                        # 记录日志(可选)
# 示例:(允许 192.168.1.0/24 访问 10.1.1.1 的 443 端口):
rule 10 permit tcp
    source 192.168.1.0 0.0.0.255    # 允许 192.168.1.0/24 网段
    destination 10.1.1.1 0          # 目标 IP 是 10.1.1.1
    destination-port eq 443         # 仅允许 HTTPS(443 端口)

3. 设置反掩码

反掩码计算:反掩码 = 255.255.255.255 - 子网掩码

反掩码匹配范围示例
0.0.0.0单个 IP(精确匹配)10.1.1.1 0
0.0.0.255/24 网段(最后匹配24位)192.168.1.0 0.0.0.255
0.0.255.255/16 网段(最后匹配16位)172.16.0.0 0.0.255.255
0.255.255.255/8 网段10.0.0.0 0.255.255.255

4. 应用ACL

traffic-filter inbound / outbound acl <名称>

入口方向:inbound / 出口方向:outbound

# 进入接口配置模式:
interface <接口名称>    # 如 GigabitEthernet0/0/1

# 在入方向(inbound)或出方向(outbound)应用 ACL:
traffic-filter inbound acl <ACL名称或编号>    # 控制进入设备的流量方向
traffic-filter outbound acl <ACL名称或编号>   # 控制离开设备的流量方向

七、 ACL 出入口方向选择和核心原则

选择ACL的绑定接口和方向(inbound/outbound)需综合考虑 流量路径过滤精度设备性能。以下是具体决策方法:

1. 核心原则:靠近流量源 + 出方向优先

“出向省带宽,入向保安全;近源用出向,近靶用入向;双向配合用,审计不能忘。”

[源设备](outbound ACL 拦截)[网络核心](inbound ACL 保护)[目标服务器]

"靠近源端控制出向(outbound),靠近目标端控制入向(inbound)"

场景推荐方向应用位置优势
限制源设备访问权限outbound离源最近的三层设备出口最早丢弃无效流量,节省核心链路带宽
保护目标网络/服务inbound离目标最近的三层设备入口确保非法流量不进入目标网络
简单封禁源IP(基础ACL)inbound任意三层设备入口只能基于源IP过滤
2. 方向选择的底层逻辑
方向处理阶段过滤时机资源消耗
inbound数据包进入设备后接收完整个帧再决策较高(消耗接收缓冲资源)
outbound数据包离开设备前路由查询后立即过滤较低(节省转发资源)

高级决策因素

考量维度出向优势入向优势
带宽效率⭐⭐⭐⭐⭐⭐⭐
安全性⭐⭐⭐⭐⭐⭐⭐⭐
配置灵活性⭐⭐⭐⭐⭐⭐
设备负载⭐⭐⭐⭐⭐⭐

实验环境


拓扑图

在这里插入图片描述

设备信息划分

设备名称接口地址IP 地址所属网络
Server1Ethernet0/0/0192.168.100.1192.168.100.0/24
AR1GE0/0/0192.168.100.254192.168.100.0/24
GE0/0/110.1.1.210.1.1.0/30
AR2GE0/0/110.1.1.110.1.1.0/30
GE0/0/211.1.1.111.1.1.0/30
GE0/0/012.1.1.112.1.1.0/30
AR3GE0/0/211.1.1.211.1.1.0/30
GE0/0/1192.168.3.254192.168.3.0/24
AR4GE0/0/012.1.1.212.1.1.0/30
GE0/0/1192.168.1.254192.168.1.0/24
GE0/0/2192.168.2.254192.168.2.0/24
SW1Ethernet0/0/2--
Ethernet0/0/3--
PC1Ethernet0/0/1192.168.1.1192.168.1.0/24
PC2Ethernet0/0/1192.168.2.2192.168.2.0/24
PC3Ethernet0/0/1192.168.3.1192.168.3.0/24
PC4Ethernet0/0/1192.168.3.2192.168.3.0/24

在做 ACL 访问控制列表之前,PC1是能和PC2、PC3、PC4、Server1 都能进行这一个通信,全网互通。

备注:环境配置命令在最后

在这里插入图片描述


拓扑图环境的配置命令

备注:这里参照上面拓扑图做的,只用了OSPF单区域

1. AR1 路由器配置

[Huawei]sy R1
[R1]int g0/0/0
[R1-GigabitEthernet0/0/0]ip ad	
[R1-GigabitEthernet0/0/0]ip address 192.168.100.254 24
[R1-GigabitEthernet0/0/0]q
[R1]
[R1]
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]ip ad	
[R1-GigabitEthernet0/0/1]ip address 10.1.1.2 30
[R1-GigabitEthernet0/0/1]q
[R1]
[R1]ospf 1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]netw	
[R1-ospf-1-area-0.0.0.0]network 192.168.100.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]netw	
[R1-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.3
[R1-ospf-1-area-0.0.0.0]

2. AR2 路由器配置

[Huawei]sy R2
[R2]
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]ip address 12.1.1.1 30
[R2-GigabitEthernet0/0/0]q
[R2]int g0/0/1
[R2-GigabitEthernet0/0/1]ip address 10.1.1.1 30
[R2-GigabitEthernet0/0/1]q
[R2]int g0/0/2
[R2-GigabitEthernet0/0/2]ip address 11.1.1.1 30
[R2-GigabitEthernet0/0/2]q
[R2]
[R2]ospf 1	
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]netw	
[R2-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.3
[R2-ospf-1-area-0.0.0.0]netw	
[R2-ospf-1-area-0.0.0.0]network 11.1.1.0 0.0.0.3
[R2-ospf-1-area-0.0.0.0]netw	
[R2-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.3
[R2-ospf-1-area-0.0.0.0]

3. AR3 路由器配置

[Huawei]sy R3
[R3]
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]ip address 192.168.3.254 24
[R3-GigabitEthernet0/0/1]q
[R3]
[R3]int g0/0/2
[R3-GigabitEthernet0/0/2]ip address 11.1.1.2 30
[R3-GigabitEthernet0/0/2]q
[R3]
[R3]ospf 1
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]netw	
[R3-ospf-1-area-0.0.0.0]network 11.1.1.0 0.0.0.3
[R3-ospf-1-area-0.0.0.0]netw	
[R3-ospf-1-area-0.0.0.0]network 192.168.3.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]q
[R3]

4. AR4 路由器配置

[Huawei]sy R4
[R4]
[R4]
[R4]int g0/0/1
[R4-GigabitEthernet0/0/1]ip ad	
[R4-GigabitEthernet0/0/1]ip address 192.168.1.254 24
[R4-GigabitEthernet0/0/1]q
[R4]
[R4]int g0/0/2
[R4-GigabitEthernet0/0/2]ip ad	
[R4-GigabitEthernet0/0/2]ip address 192.168.2.254 24
[R4-GigabitEthernet0/0/2]q
[R4]
[R4]int g0/0/0
[R4-GigabitEthernet0/0/0]ip address 12.1.1.2 30
[R4]ospf 
[R4-ospf-1]a	
[R4-ospf-1]area 0
[R4-ospf-1-area-0.0.0.0]netw	
[R4-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]netw	
[R4-ospf-1-area-0.0.0.0]network 192.168.2.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]netw	
[R4-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255
[R4-ospf-1-area-0.0.0.0]q
[R4-ospf-1]q
[R4]q


ACL 配置

备注:创建ACL及rule规则后,它是不会直接生效的,设备之间通信依然不变,需要把这个编号应用绑到设备的接口的出入方向才会生效!!!(这里仅做部分ACL配置)


1. 禁止 192.168.1.0/24 和 192.168.2.0/24 网段通信

接口的入口方向绑定 ACL 规则更好 。当数据包从各自网段进入路由器时,就能立即被检查和过滤。比如从 PC1 网段发往 PC2 网段的数据包,在进入 GigabitEthernet 0/0/1 接口时就被拦截,避免路由器对无效数据包进行不必要的内部转发处理,提升网络效率,也能更精准地控制非法流量进入网络。

[R4]acl	
[R4]acl number 3001		# 创建高级ACL 3001(3000系列ACL可匹配源/目的IP、协议、端口)
[R4-acl-adv-3001]rule deny ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255	# 规则1:禁止192.168.1.0/24访问192.168.2.0/24(双向阻断)
[R4-acl-adv-3001]rule deny ip source 192.168.2.0 0.0.0.255 destination 192.168.1.0 0.0.0.255	# 规则2:禁止192.168.2.0/24访问192.168.1.0/24(实现双向隔离)
[R4-acl-adv-3001]q
[R4]
[R4]int g0/0/1		# 此接口连接192.168.1.0/24网络  
[R4-GigabitEthernet0/0/1]traffic-filter inbound acl 3001	 # 配置ACL 3001 在入方向过滤数据包
[R4-GigabitEthernet0/0/1]
[R4-GigabitEthernet0/0/1]int g0/0/2		# 此接口连接192.168.2.0/24网络  
[R4-GigabitEthernet0/0/2]traffic-filter inbound acl 3001	# 配置ACL 3001 在入方向过滤数据包
[R4-GigabitEthernet0/0/2]
测试

可以看到PC1除了PC2不能进行通信,PC1还是可以和其他主机通信。

在这里插入图片描述


2. 禁止192.168.3.2 访问 192.168.1.0/24 网段

禁止 192.168.3.2 主机访问192.168.1.0/24网段

[R3]acl	
[R3]acl number 3002		# 创建ACL 3002
[R3-acl-adv-3002]rule deny ip source 192.168.3.2 0 destination 192.168.1.0 0.0.0.255	# 拒绝来自192.168.3.2访问192.168.1.0/24网段的所有IP流量
[R3-acl-adv-3002]q
[R3]
[R3]int g0/0/1
[R3-GigabitEthernet0/0/1]taff
[R3-GigabitEthernet0/0/1]traffic-filter inbound acl 3002	 # 将ACL 3002应用到接口的入方向(inbound)
[R3-GigabitEthernet0/0/1]q
[R3]
[R3]
测试

这里可以看到192.168.3.1的主机仍然可以和192.168.1.1的主机通信,但是192.168.3.2的主机已经不能和PC1(192.168.1.1)通信了

在这里插入图片描述

3. 只允许192.168.2.0/24和192.168.3.0/24两个网段和server1服务器通信

# AR2
[R1]acl
[R1]acl number 3003
[R1-acl-adv-3003]rule
[R1-acl-adv-3003]rule permit ip source 192.168.2.0 0.0.0.255 destination 192.168.100.1 0
[R1-acl-adv-3003]rule permit ip source 192.168.3.0 0.0.0.255 destination 192.168.100.1 0
[R1-acl-adv-3003]rule deny ip source any destination 192.168.100.1 0
[R1-acl-adv-3003]q
[R1]
[R1]int g0/0/1
[R1-GigabitEthernet0/0/1]
[R1-GigabitEthernet0/0/1]traffic-filter inbound acl 3003
[R1-GigabitEthernet0/0/1]q
[R1]
测试

这里只有PC1不能和server1通信

在这里插入图片描述
在这里插入图片描述


### ENSPACL 接口调用方法及示例 #### 配置ACL并应用到特定接口 为了在Elastic Network Simulation Platform (eNSP)中实现对流量的有效过滤,通常会创建访问控制列表(Access Control List, ACL),并将这些规则应用于指定的网络设备端口。对于接近数据流起点的位置,比如路由器R1上的GigabitEthernet 0/0/1端口,可以编写单一的ACL来管理进出该端口的数据包[^1]。 当完成ACL定义之后,下一步就是将其绑定至目标接口的方向(入站inbound或出站outbound)。例如,在华为设备环境下,通过命令`[Huawei-GigabitEthernet0/0/1]traffic-filter outbound acl 3000`可把编号为3000的高级ACL应用于GE0/0/1端口向外发送的数据流上[^2]。 #### 时间范围内的ACL生效策略 除了基本的ACL设置外,还可以进一步细化配置以适应不同的业务需求。这包括设定ACL的时间有效性窗口——即仅允许某些时间段内执行特定的访问控制政策。此功能有助于提高网络安全性和灵活性,确保只有授权时间内才开放必要的通信路径。 #### VLAN与Trunk模式下的ACL处理 考虑到实际环境中可能存在的多VLAN场景,交换机S1和S2之间的连接往往采用trunk链路形式传输多个VLAN的信息。此时可以在S1一侧使用指令`[S1-GigabitEthernet0/0/1]port trunk allow-pass vlan all`让所有VLAN ID都能经由这条干道传递;而在另一侧,则需依据具体的安全策略部署相应的ACL措施[^3]。 ```bash # 创建标准IP ACL [Huawei]acl number 2000 [Huawei-acl-basic-2000]rule permit source any # 定义时间区间time-range-name from-to HH:MM to HH:MM [Huawei]time-range work_hours [Huawei-time-range-work_hours]period daily 09:00 to 18:00 # 修改现有ACL条目加入时间条件 [Huawei-acl-basic-2000]rule name rule_with_time_range [Huawei-acl-basic-2000-rule-with_time_range]time-range work_hours # 将ACL应用于出口方向 [Huawei-GigabitEthernet0/0/1]traffic-filter outbound acl 2000 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值