一、ACL(访问控制列表)原理
(一)基本概念
访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的规则对经过路由器或三层交换机的数据包进行过滤。通过 ACL,可以允许或拒绝特定的 IP 数据包通过设备,从而实现对网络访问的控制。
(二)工作原理
- 匹配规则
- 当数据包进入设备时,设备会按照 ACL 中定义的规则顺序进行检查。每条规则都包含了匹配条件(如源 IP 地址、目的 IP 地址、协议类型、端口号等)和动作(允许或拒绝)。
- 一旦数据包满足某条规则的匹配条件,就会执行该规则对应的动作,不再检查后续规则。如果数据包没有匹配任何规则,设备将根据 ACL 的默认动作(通常是拒绝)来处理。
- 分类
- 标准 ACL:只使用源 IP 地址进行过滤。例如,标准 ACL 可以用于禁止某个网段的主机访问特定资源。它的编号范围是 1 - 99 和 1300 - 1999。
- 扩展 ACL:可以根据源 IP 地址、目的 IP 地址、协议类型、端口号等多种条件进行过滤。扩展 ACL 功能更强大,例如,可以用于允许特定主机通过特定协议(如 HTTP)访问某个服务器。它的编号范围是 100 - 199 和 2000 - 2699。
二、ACL 配置步骤
(一)标准 ACL 配置步骤
- 定义 ACL
- 在全局配置模式下,使用命令
access - list [ACL编号] [permit/deny] [源IP地址] [通配符掩码]
。例如,access - list 1 deny 192.168.1.0 0.0.0.255
,这条命令定义了一个标准 ACL(编号为 1),拒绝来自 192.168.1.0 网段的所有数据包。
- 在全局配置模式下,使用命令
- 应用 ACL
- 将 ACL 应用到接口上,在接口配置模式下,使用命令
ip access - group [ACL编号] [in/out]
。例如,如果要在进入接口的方向应用上述 ACL,在接口配置模式下使用ip access - group 1 in
。
- 将 ACL 应用到接口上,在接口配置模式下,使用命令
(二)扩展 ACL 配置步骤
- 定义 ACL
- 在全局配置模式下,使用命令
access - list [ACL编号] [permit/deny] [协议类型] [源IP地址] [通配符掩码] [目的IP地址] [通配符掩码] [操作符(如eq代表等于,gt代表大于等)] [端口号]
。 - 例如,
access - list 101 permit tcp 192.168.1.10 0.0.0.0 192.168.2.10 0.0.0.0 eq 80
,这条命令定义了一个扩展 ACL(编号为 101),允许源 IP 地址为 192.168.1.10 的主机通过 TCP 协议访问目的 IP 地址为 192.168.2.10 的主机的 80 端口(通常用于 HTTP 访问)。
- 在全局配置模式下,使用命令
- 应用 ACL
- 同样将 ACL 应用到接口上,在接口配置模式下,使用命令
ip access - group [ACL编号] [in/out]
。例如,ip access - group 101 out
可以在接口的出方向应用该扩展 ACL。
- 同样将 ACL 应用到接口上,在接口配置模式下,使用命令
三、华为 eNSP 模拟器操作案例
(一)实验拓扑
- 有三个网络设备:路由器 R1、主机 PC1 和主机 PC2。PC1 的 IP 地址为 192.168.1.10/24,PC2 的 IP 地址为 192.168.2.10/24。R1 的两个接口分别连接 PC1 和 PC2 所在的网段,接口 IP 地址分别为 192.168.1.1/24 和 192.168.2.1/24。
- 目标是配置扩展 ACL,允许 PC1 通过 HTTP(端口 80)访问 PC2,但拒绝 PC1 通过其他端口访问 PC2。
(二)操作步骤
-
搭建拓扑并配置接口 IP 地址
- 在 eNSP 中拖放路由器 R1 和两台主机 PC1、PC2,并用网线连接它们。
- 进入 R1 的系统视图,配置接口 IP 地址:
- 对于连接 PC1 的接口(假设为 GigabitEthernet0/0/0):
interface GigabitEthernet0/0/0
ip address 192.168.1.1 24
- 对于连接 PC2 的接口(假设为 GigabitEthernet0/0/1):
interface GigabitEthernet0/0/1
ip address 192.168.2.1 24
- 对于连接 PC1 的接口(假设为 GigabitEthernet0/0/0):
-
配置扩展 ACL
- 在 R1 的全局配置模式下配置 ACL:
access - list 101 permit tcp 192.168.1.10 0.0.0.0 192.168.2.10 0.0.0.0 eq 80
access - list 101 deny tcp 192.168.1.10 0.0.0.0 192.168.2.10 0.0.0.0
- 在 R1 的全局配置模式下配置 ACL:
-
应用 ACL 到接口
- 将 ACL 应用到连接 PC2 的接口(GigabitEthernet0/0/1)的出方向:
interface GigabitEthernet0/0/1
ip access - group 101 out
- 将 ACL 应用到连接 PC2 的接口(GigabitEthernet0/0/1)的出方向:
-
验证配置
- 在 PC1 上使用浏览器尝试访问 PC2 的 IP 地址(192.168.2.10)。如果配置正确,当访问 HTTP 服务(端口 80)时可以成功访问,而访问其他服务(如尝试使用其他端口进行连接)将被拒绝。
在配置 ACL 时,如何根据不同的需求选择合适的 ACL 类型?
在华为ensp模拟器中,如何创建一个简单的 ACL 配置案例?
如何在华为ensp模拟器中测试 ACL 的配置效果?