【计算机网络】ACL工作原理及标准

什么是ACL

在配置后,ACL 将执行以下任务:

限制网络流量以提高网络性能。例如,如果公司政策不允许在网络中传输视频流量,那么就应该配置和应用 ACL 以阻止视频流量。这可以显著降低网络负载并提高网络性能。

提供流量控制。ACL 可以限制路由更新的传输,从而确保更新都来自一个已知的来源。

提供基本的网络访问安全性。ACL 可以允许一台主机访问部分网络,同时阻止其他主机访问同一区域。例如,“人力资源”网络仅限授权用户进行访问。

根据流量类型过滤流量。例如,ACL 可以允许邮件流量,但阻止所有 Telnet 流量。

屏蔽主机以允许或拒绝对网络服务的访问。ACL 可以允许或拒绝用户访问特定文件类型,例如 FTP 或 HTTP。

ACL 工作原理

ACL 定义了一组规则,用于对进入入站接口的数据包、通过路由器中继的数据包,以及从路由器出站接口输出的数据包施加额外的控制。ACL 对路由器自身产生的数据包不起作用。

如图所示,ACL 可配置为应用于入站流量和出站流量。
在这里插入图片描述

入站 ACL - 传入数据包经过处理之后才会被路由到出站接口。因为如果数据包被丢弃,就节省了执行路由查找的开销,所以入站 ACL 非常高效。如果 ACL 允许该数据包,则会处理该数据包以进行路由。当与入站接口连接的网络是需要检测的数据包的唯一来源时,最适合使用入站 ACL 来过滤数据包。

出站 ACL - 传入数据包路由到出站接口后,由出站 ACL 进行处理。在来自多个入站接口的数据包通过同一出站接口之前,对数据包应用相同过滤器时,最适合使用出站 ACL。

ACL 通配符掩码

通配符掩码规则

IPv4 ACE 包括通配符掩码。通配符掩码是由 32 个二进制数字组成的字符串,路由器使用它来确定检查地址的哪些位以确定匹配项。

和子网掩码一样,通配符掩码中的数字 1 和 0 用于标识如何处理相应的 IPv4 地址位。但是,在通配符掩码中,这些位的用途不同,所遵循的规则也不同。

通配符掩码和子网掩码之间的差异在于它们匹配二进制 1 和 0 的方式。通配符掩码使用以下规则匹配二进制 1 和 0:

  • 通配符掩码位 0 - 匹配地址中对应位的值
  • 通配符掩码位 1 - 忽略地址中对应位的值

在这里插入图片描述

上图显示不同通配符掩码过滤 IPv4 地址的方式

通配符掩码关键字

使用二进制通配符掩码位的十进制表示有时可能显得比较冗长。此时可使用关键字 host 和 any 来标识最常用的通配符掩码,从而简化此任务。这些关键字避免了在标识特定主机或完整网络时输入通配符掩码的麻烦。这些关键字还可提供有关条件的来源和目标的可视化提示,使 ACL 更加易于理解。

host 关键字可替代 0.0.0.0 掩码。此掩码表明,所有 IPv4 地址位均必须匹配,才能过滤出一个主机地址。

any 选项可替代 IPv4 地址和 255.255.255.255 掩码。该掩码表示忽略整个 IPv4 地址,这意味着接受任何地址。

在这里插入图片描述

示例 1:匹配单个 IPv4 地址的通配符掩码过程

在该图的示例 1 中,我们可以不输入 192.168.10.10 0.0.0.0,而是使用 host 192.168.10.10。

示例 2:匹配所有 IPv4 地址的通配符掩码过程

在该图的示例 2 中,我们可以不输入 0.0.0.0 255.255.255.255,而是使用关键字 any。

ACL的创建原则

可以为每种协议 (per protocol)、每个方向 (per direction)、每个接口 (per interface) 配置一个 ACL:

  • 每种协议一个 ACL - 要控制接口上的流量,必须为接口上启用的每种协议定义相应的 ACL。
  • 每个方向一个 ACL - 一个 ACL 只能控制接口上一个方向的流量。要控制入站流量和出站流量,必须分别定义两个 ACL。
  • 每个接口一个 ACL - 一个 ACL 只能控制一个接口(例如 GigabitEthernet 0/0)上的流量。

一个路由器最多8个不同的ACL。

使用 ACL 时务必小心谨慎、关注细节。一旦犯错可能导致代价极高的后果,例如停机、耗时的故障排查以及糟糕的网络服务。在配置 ACL 之前,必须进行基本规划。图中显示的指导原则是实施 ACL 最佳做法的基础。

在这里插入图片描述

ACL的放置原则

正确放置 ACL 可以使网络更加高效地运行。可以放置 ACL 以减少不必要的流量。例如,会被远程目标拒绝的流量不应该消耗通往该目标的路由上的网络资源进行转发。

每个 ACL 都应该放置在最能发挥作用的位置。如图所示,基本规则如下:

  • 扩展 ACL - 将扩展 ACL 放置在尽可能靠近需要过滤的流量源的位置上。这样,不需要的流量会在靠近源网络的位置遭到拒绝,而无需通过网络基础设施。
  • 标准 ACL - 由于标准 ACL 不会指定目标地址,所以其位置应该尽可能靠近目标。在流量源附近设置标准 ACL 可以有效阻止流量通过应用了 ACL 的接口到达任何其他网络。

在这里插入图片描述

上图中的拓扑用于演示可以如何放置标准 ACL。管理员想要防止 192.168.10.0/24 网络中产生的流量到达 192.168.30.0/24 网络。

根据将标准 ACL 置于靠近目标位置的基本放置原则,右图显示了 R3 上可能应用标准 ACL 的接口:

  • R3 S0/0/1 接口 - 应用标准 ACL 以阻止来自 192.168.10.0/24 的流量进入 S0/0/1 接口,将会阻止该流量到达 192.168.30.0/24 以及通过 R3 可到达的所有其他网络。这将包括 192.168.31.0/24 网络。由于 ACL 的意图是只过滤指向 192.168.30.0/24 的流量,因此不应将标准 ACL 应用到此接口。
  • R3 G0/0 接口 - 将标准 ACL 应用于从 G0/0 接口流出的流量,可以过滤从 192.168.10.0/24 发送到 192.168.30.0/24 的数据包。这不会影响通过 R3 可到达的其他网络。来自 192.168.10.0/24 的数据包仍可到达 192.168.31.0/24。

配置标准 IPv4 ACL

配置标准IP访问控制列表

标准 ACL 命令的完整语法如下:

Router(config)# access-list access-list-number {
    
     deny | permit | remark } source [ source-wildcard ][ log ] 

要删除 ACL,使用全局配置命令 no access-list。发出 show access-list 命令确认访问列表 10 已删除。

猜你喜欢

转载自blog.csdn.net/weixin_45884316/article/details/123588955