思科路由器访问控制列表(ACL)是网络管理中至关重要的工具,用于控制数据包的进出流量,实现网络安全策略、流量过滤和访问权限管理,ACL通过一系列匹配条件对数据包进行评估,根据条件允许或拒绝特定流量,以下是思科路由器ACL命令的详细说明,包括标准ACL、扩展ACL、命名ACL、ACL应用与验证等关键内容。

ACL基础概念
ACL根据功能分为标准ACL和扩展ACL,标准ACL基于源IP地址进行过滤,只能配置在离目标地址较近的接口上;扩展ACL基于源IP地址、目标IP地址、协议类型、端口号等多维度进行过滤,灵活性更高,通常配置在离源地址较近的接口上,ACL的执行顺序是从上到下依次匹配,一旦找到匹配项即执行允许或拒绝操作,不再继续检查后续条目,ACL规则的排列顺序直接影响过滤效果。
标准ACL命令
标准ACL的编号范围为1-99和1300-1999,使用access-list
命令配置,基本语法为:access-list [ACL编号] [permit/deny] [源IP地址] [通配符掩码]
,通配符掩码用于匹配连续或离散的IP地址段,0表示精确匹配,1表示任意匹配。access-list 1 permit 192.168.1.0 0.0.0.255
表示允许所有192.168.1.0/24网段的流量,标准ACL默认隐含deny any
规则,即未明确允许的流量将被拒绝。
扩展ACL命令
扩展ACL的编号范围为100-199和2000-2699,语法更复杂,支持协议、端口等条件,基本语法为:access-list [ACL编号] [permit/deny] [协议] [源IP地址] [通配符掩码] [目标IP地址] [通配符掩码] [操作]
。access-list 101 tcp 192.168.1.0 0.0.0.255 10.1.1.0 0.0.0.255 eq 80
表示允许192.168.1.0/24网段访问10.1.1.0/24网段的HTTP服务,协议可以是IP、TCP、UDP、ICMP等,操作符包括eq
(等于)、gt
(大于)、lt
(小于)、range
(范围)等。
命名ACL命令
为便于管理,可使用命名ACL替代编号ACL,命名ACL通过ip access-list
命令创建,分为标准命名ACL和扩展命名ACL,标准命名ACL语法为:ip access-list standard [名称]
,进入配置模式后使用permit/deny [源IP地址] [通配符掩码]
添加规则;扩展命名ACL语法为:ip access-list extended [名称]
,进入配置模式后使用permit/deny [协议] [源IP地址] [通配符掩码] [目标IP地址] [通配符掩码] [操作]
添加规则,命名ACL的优势是可以随时插入或删除规则,而无需重新配置整个列表。

ACL的应用与验证
ACL配置完成后,需应用到接口的入方向(inbound)或出方向(outbound),应用命令为:ip access-group [ACL编号/名称] [in/out]
。ip access-group 101 in
表示将ACL 101应用到接口的入方向,验证ACL配置的命令包括:show access-lists
(显示所有ACL规则及其匹配计数)、show ip access-lists
(显示IP ACL)、show ip interface
(查看接口应用的ACL),若需删除ACL,可使用no access-list [ACL编号]
或no ip access-list [名称]
,并从接口上取消应用。
ACL高级特性
- ACL编辑:在命名ACL中,可使用
sequence-number
为规则指定序号,实现精确插入或删除,例如10 permit 192.168.1.0 0.0.0.255
。 - 日志功能:在ACL规则后添加
log
参数(如access-list 101 permit tcp any any eq 80 log
),可将匹配的流量记录到日志,便于调试。 - 时间范围ACL:结合
time-range
命令,可设置ACL在特定时间段生效,time-range WORKHOURS absolute start 09:00 end 18:00 daily access-list 101 permit tcp any any eq 80 time-range WORKHOURS
- 反射ACL:用于动态会话,允许内部主机主动发起的流量返回,需配合
ip nat inside source route-map
使用。
ACL配置示例
以下为扩展ACL配置示例,拒绝192.168.1.0/24网段访问FTP服务器(10.1.1.100),但允许访问HTTP服务:
! 创建扩展ACL
access-list 101 deny tcp 192.168.1.0 0.0.0.255 host 10.1.1.100 eq 21
access-list 101 deny tcp 192.168.1.0 0.0.0.255 host 10.1.1.100 eq 20
access-list 101 permit tcp 192.168.1.0 0.0.0.255 host 10.1.1.100 eq 80
access-list 101 permit icmp any any
! 应用到接口G0/0的入方向
interface GigabitEthernet0/0
ip access-group 101 in
ACL注意事项
- 默认拒绝:所有ACL末尾隐含
deny any
规则,需明确允许所需流量。 - 性能影响:ACL规则过多可能导致路由器性能下降,建议定期优化规则顺序。
- 方向选择:标准ACL尽量靠近目标接口,扩展ACL尽量靠近源接口,减少不必要的过滤。
- 通配符掩码计算:匹配192.168.0.0/16网段,通配符掩码为0.0.255.255。
ACL常见问题排查
- 流量未按预期过滤:检查ACL规则顺序、通配符掩码是否正确,确认应用方向(in/out)。
- ACL匹配计数为0:使用
debug ip packet
查看数据包匹配情况,注意ACL仅应用于指定接口方向。
相关问答FAQs
Q1: 如何修改已配置的编号ACL规则?
A1: 编号ACL不支持直接修改,需先使用no access-list [ACL编号]
删除整个列表,然后重新配置,若需灵活修改,建议使用命名ACL,通过sequence-number
插入或删除规则,例如no 10
删除序号为10的规则。
Q2: ACL规则过多时如何优化性能?
A2: 优化ACL性能的方法包括:

- 按精确匹配原则排序规则,将高频匹配的规则置于顶部;
- 使用通配符掩码替代冗长的IP地址列表;
- 将复杂ACL拆分为多个简单ACL,分别应用到不同接口;
- 定期使用
show access-lists
检查匹配计数,删除无用规则。