扩展 ACL 是最常用的过滤工具
思科扩展 ACL 编号使用 100 到 199,另有 2000 到 2699 的扩展编号段,可匹配协议、源与目的地址、源与目的端口以及 TCP 标志,是 IOS 上接口流量过滤的主力工具。与标准 ACL 一样,末尾存在隐式拒绝,所有未显式放行的流量都会被丢弃。规则从上到下匹配,命中即结束,因此规则的书写顺序直接决定最终行为。
基本信息
| 适用平台 | Cisco IOS 与 IOS-XE 路由器、交换机与防火墙模块 |
|---|---|
| 编号范围 | 扩展 ACL 100 到 199,扩展编号段 2000 到 2699 |
| 匹配条件 | 协议、源目地址、源目端口、TCP 标志、分片等 |
| 应用命令 | 接口下 ip access-group 编号或名称 in 或 out |
| 服务名支持 | 端口可写服务名如 eq www、eq domain,但统一写数字更利于跨平台阅读 |
典型使用场景
- 按端口限制访问,例如只放通服务器的 443 端口
- 阻断高危端口的横向传播,例如 445 与 3389
- 只允许特定网段访问外网,其余来源拒绝
- 为策略路由与流量分类提供精细匹配条件
- 临时管控:发现异常流量后快速阻断某个源到目的的组合
思科 IOS
思科 IOS
ip access-list extended 100
permit tcp any host 10.1.1.10 eq 443
deny ip 10.2.0.0 0.0.255.255 any
permit ip any any
show access-lists 100 # 查看规则与匹配计数
show ip access-lists 100 | include matches
interface GigabitEthernet0/1
ip access-group 100 in华为 VRP
华为 VRP
acl number 3000
rule 5 permit tcp destination 10.1.1.10 0 destination-port eq 443
rule 10 deny ip source 10.2.0.0 0.0.255.255
rule 15 permit ip
interface GigabitEthernet0/0/1
traffic-filter inbound acl 3000H3C Comware
H3C Comware
acl advanced 3000
rule 5 permit tcp destination 10.1.1.10 0 destination-port eq 443
rule 10 deny ip source 10.2.0.0 0.0.255.255
rule 15 permit ip
interface GigabitEthernet1/0/1
packet-filter 3000 inbound规则语法逐段读法
| 片段 | 含义 | 注意事项 |
|---|---|---|
| ip access-list extended 编号 | 创建或进入命名扩展 ACL 视图 | 命名表可插入与删除单条,编号表不可 |
| permit 或 deny | 命中后的动作 | 顺序错误会得到与设计相反的过滤结果 |
| 协议关键字 | tcp、udp、icmp、ip 等 | 写 ip 表示匹配所有协议,常用于兜底规则 |
| 源与目的地址 | any、host 加地址、网络地址加通配符 | 通配符写反是匹配范围出错的主因 |
| 端口条件 | eq、lt、gt、range 加端口或服务名 | 只对 tcp 与 udp 有意义,写在其他协议上无效 |
| 末尾 permit ip any any | 兜底放行其余流量 | 不写兜底会连正常业务一起丢弃 |
维护与排障要点
- 优先使用命名扩展 ACL:编号 ACL 无法按条删除,改一条规则往往要整体重建
- 命令行添加规则时会追加到末尾,容易把兜底规则顶到前面,改规则后务必回读确认顺序
- 规则计数是验证手段,逐条观察计数增长能判断流量到底命中哪一条
- 拒绝规则加日志要考虑量级,被拒报文过多时日志会淹没有效信息并占用处理器
- 接口 ACL 只作用于穿越流量,设备自身产生的流量需要控制平面策略
常见疑问
- 命名 ACL 与编号 ACL 怎么选:需要频繁增删单条规则时用命名 ACL,一次写定的简单策略两者都行,但命名可读性更好
- 新规则为什么没生效:命令行添加会追加到末尾,兜底放行规则之后的新规则永远匹配不到,改完必须回读顺序
- 源地址写 any 与写具体网段有区别吗:写法不同匹配范围差异极大,写 any 意味着所有来源,是常见误配来源
- 端口条件为什么不起作用:端口条件只对 TCP 与 UDP 有意义,写在 ICMP 或 ip 上不会生效
- 接口 ACL 拦不住本机流量怎么办:设备自身流量需要控制平面策略,接口过滤只管穿越流量
删除单条规则使用带 no 前缀的完整命令,参数必须与配置完全一致;不一致时设备只会新增一条相反动作的规则,反而把策略改坏,改动后一定要回读核对。
扩展 ACL 更精细也更容易写错:上线前先用测试来源做验证,确认放通的面符合预期,再推广到全量业务,避免一次改动影响一大片用户。