ACL常用命令及工作原理

What

ACL 是一系列 IOS 命令,根据数据包报头中找到的信息来控制路由器应该转发还是应该丢弃数据包。ACL 是思科 IOS 软件中最常用的功能之一。
在配置后,ACL 将执行以下任务:

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

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

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

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

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

默认情况下,路由器并未配置 ACL;因此,路由器不会默认过滤流量。进入路由器的流量仅根据路由表内的信息进行路由。但是,当 ACL 应用于接口时,路由器会在网络数据包通过接口时执行另一项评估所有网络数据包的任务,以确定是否可以转发数据包。

除了允许或拒绝流量外,ACL 还可用于选择需要以其他方式进行分析、转发或处理的流量类型。例如,ACL 可用于对流量进行分类,以实现按优先级处理流量的功能。此功能与音乐会或体育赛事中的 VIP 通行证类似。VIP 通行证使选定的客人享有未向普通入场券持有人提供的特权,例如优先进入或能够进入专用区。

How

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

如图所示,ACL 可配置为应用于入站流量和出站流量。

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

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

  • 查看路由器ACL

show access-lists

  • 删除

a. 在串行 l0/0/0 接口下,删除以前作为出站过滤器应用到接口的访问列表 11:

R1(config)# int se0/0/0
R1(config-if)#no ip access-group 11 out
b. 在全局配置模式下,输入下列命令可删除 ACL:

R1(config)# no access-list 11
c. 验证 PC1 现在可以 ping 到 DNS 服务器和 PC4。

  • 创建ACL(要在思科路由器上使用编号标准 ACL,您必须先创建标准 ACL,然后在接口上激活 ACL。)

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

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

【例一】可用于允许或拒绝单个主机或一组主机地址。要在编号 ACL 10 中创建一条 host 语句以允许 IPv4 地址为 192.168.10.10 的特定主机,您应该输入:

R1(config)# access-list 10 permit host 192.168.10.10

【例二】要在允许 192.168.10.0/24 网络中所有 IPv4 地址的编号 ACL 10 中创建一条允许一组 IPv4 地址的语句,您应该输入:

R1(config)# access-list 10 permit 192.168.10.0 0.0.0.255

. 默认情况下,访问列表将拒绝与任何规则都不匹配的所有流量。 要允许所有其他流量,请配置以下语句:

R2(config)# access-list 1 permit any

  • 将标准 IPv4 ACL 应用于接口
    配置标准 IPv4 ACL 之后,可以在接口配置模式下使用 ip access-group 命令将其关联到接口:

Router(config-if)# ip access-group { access-list-number | access-list-name } { in | out }

要从接口上删除 ACL,首先在接口上输入 no ip access-group 命令,然后输入全局命令 no access-list 删除整个 ACL。

posted @ 2018-06-02 20:45  Loading~  阅读(1776)  评论(0编辑  收藏  举报