五个端口操作符
端口条件是高级或扩展 ACL 的核心:eq 等于、gt 大于、lt 小于、range 区间、neq 不等于。三厂操作符关键字一致,差别在语法位置——华为与 H3C 用 source-port / destination-port 显式命名,思科按源端口到目的端口的顺序紧跟地址之后。
基本信息
| 适用平台 | 三厂高级 ACL / 扩展 ACL |
|---|---|
| 操作符 | eq 等于、gt 大于、lt 小于、range 区间、neq 不等于 |
| 华为与 H3C | destination-port eq 443 / source-port range 1024 65535 |
| 思科 | eq 443 写在地址对之后,顺序为源端口再到目的端口 |
| range 语法 | range 起 止(闭区间,起止顺序不能反) |
| 生效前提 | 仅 TCP 与 UDP 报文有效 |
典型使用场景
- 服务器端口最小化放行,只开业务必需的端口
- 封禁高风险端口段(如 137-139)
- 限制高位端口连接的来源范围
- 排查端口放行策略被前序规则拦截
- 跨厂迁移时核对端口条件的位置写法是否等价
华为 VRP / H3C Comware
华为 VRP / H3C Comware
acl number 3000
rule 5 permit tcp destination-port eq 443 # 放行 HTTPS
rule 10 deny tcp destination-port range 137 139 # 封禁 137-139 段
rule 15 permit tcp destination-port gt 1023 # 只放行高位目的端口
rule 20 permit tcp source-port range 1024 65535 destination-port eq 22 # 限定源端口
display acl 3000 # 看命中计数思科 IOS
思科 IOS
access-list 100 permit tcp any any eq 443
access-list 100 deny tcp any any range 137 139
access-list 100 permit tcp any any gt 1023
access-list 100 permit tcp any range 1024 65535 any eq 22 # 源端口在前
show ip access-lists 100操作符用法
| 操作符 | 含义 | 示例写法 |
|---|---|---|
| eq | 等于某个端口 | destination-port eq 22 |
| gt / lt | 大于 / 小于 | destination-port gt 1023 |
| range | 闭区间,含起止两个端点 | destination-port range 137 139 |
| neq | 不等于某个端口 | destination-port neq 80 |
思科把端口条件按源地址、源端口、目的地址、目的端口的顺序跟在地址对后面,顺序写反语义完全改变;华为与 H3C 用命名参数,可读性更好。从华为或 H3C 迁移到思科时,最容易就在这个位置顺序上出错。
端口条件只对 TCP 与 UDP 有效。写成 permit ip ... eq 80 这类组合会报错或匹配不到任何流量,排查策略不生效时先确认协议关键字与端口条件是否配对。
排查端口策略不生效时,看每条规则的匹配计数最有效:计数不增长的规则说明报文根本没走到它,问题往往出在前面某条更宽的规则;计数正常增长但业务仍异常,则应依次核对协议关键字、生效方向与接口引用这三项。