【什么是ACL】
ACL( access control list, 访问控制列表),是定义好的一组规则的集合,通常用于
- 标识感兴趣网络流量
- 过滤经过路由器的数据包
实际上就是告诉路由器,允许或拒绝哪些数据包
【ACL分类】
ACL类型 | 编号范围 | 规则依据 |
基本ACL | 2000--2999 | 报文的源ip地址 |
高级ACL | 3000--3999 | 报文的源IP地址,目的IP地址,报文优先级,ip承载的协议类型及特性等二、三层信息 |
二层ACL | 4000--4999 | 报文的源MAC地址、目的MAC地址、802.1p优先级、链路层协议等二层信息 |
用户自定ACL | 5000-5999 | 用户自定义的报文的偏移位置和偏移量、从报文中提取出来的相关内容 |
【ACL匹配顺序】
华为设备支持两种匹配顺序
- 按照用户配置的ACL规则的先后进行匹配,先配置的规则先匹配。这是默认配置。
- 如果没有任何一条规则匹配一个数据包,那么:
- 转发模块:通过
- Telnet模块:丢弃
- 路由过滤模块:丢弃
- 如果没有任何一条规则匹配一个数据包,那么:
- 自动排序(auto)使用“深度优先”的原则进行匹配。“深度优先”是根据ACL规则的精确度排序,如果匹配条件(如协议 类型、源和目的IP地址范围等)越严格,规则就越先匹配。
【ACL配置】
基本ACL
- acl [2000-2999]
- rule [permit/deny] source ip 通配符
- interface [接口]
- traffic-filter [inbound/outbound] acl [number] (in/out是站在路由器的角度来看)
- user-interface vty 0 4 (配置Telnet)
- acl [nubmer] [in/out - bound]
- interface [接口]
- 尽可能靠近目的地
扩展ACL
- 与基本类似
- 尽可能靠近源
【拓展阅读】
记住 3P 原则,您便记住了在
路由器
上应用 ACL 的一般规则。您可以为每种协议 (per protocol)、每个方向 (per direction)、每个接口 (per interface) 配置一个 ACL:
- 每种协议一个 ACL:要控制接口上的流量,必须为接口上启用的每种协议定义相应的 ACL。
- 每个方向一个 ACL :一个 ACL 只能控制接口上一个方向的流量。要控制入站流量和出站流量,必须分别定义两个 ACL。
- 每个接口一个 ACL :一个 ACL 只能控制一个接口(例如快速以太网0/0)上的流量。
ACL 的编写可能相当复杂而且极具挑战性。每个接口上都可以针对多种协议和各个方向进行定义。示例中的
路由器
有两个接口配置了 IP、AppleTalk 和 IPX。该
路由器
可能需要 12 个不同的 ACL :协议数 (3) 乘以方向数 (2),再乘以端口数 (2)。