ACL (Access Control List,**訪問控制列表**) 是網絡設備 (路由器/交換機/防火牆) **按順序匹配的規則集**,用於**識別流量**並執行 **許可/拒絕/重定向/限速/標記** 等動作。
本質:**有序的條件-動作規則鏈**,**首匹配生效** (Top-down first match)。
| 分類維度 | 類型 | 匹配字段 | 編號範圍 (Cisco) | 典型用途 |
|---|---|---|---|---|
| 按匹配深度 | 標準 ACL | **僅源 IP 地址** | 1-99, 1300-1999 | 簡單源地址過濾、路由過濾 |
| 擴展 ACL | 源/目的 IP、協議 (TCP/UDP/ICMP)、源/目的端口、TCP 标志位、ICMP 類型/代碼、DSCP/ToS | 100-199, 2000-2699 | 精細流量控制、安全策略、QoS 分類、NAT 匹配 | |
| 命名 ACL | 同標準/擴展,但用名字標識 | 無編號限制 | 可讀性強、支持編輯插入刪除、重排序 | |
| 按應用方向 | 入方向 (in) | 進接口前處理 | — | 節省 CPU、防止無效流量進設備 |
| 出方向 (out) | 出接口前處理 | — | NAT 後過濾、對稱路由場景 | |
| VLAN 映射 / VACL | VLAN 內部流量 (L2/L3/L4) | — | 同一 VLAN 內主機隔離、租戶隔離 | |
| 按功能擴展 | 反射 ACL (Reflexive) | 動態臨時許可返程流量 (模擬狀態檢測) | — | 簡易防火牆、CBAC 前身 |
| 動態 ACL (Lock-and-Key) | 用戶認證後動態下發臨時許可 | — | 遠程訪問臨時開放 | |
| 基於時間 | time-range 關聯 | — | 上班/非上班時段不同策略 | |
| IPv6 ACL | IPv6 地址/下一頭部/流標籤/DSCP | — | IPv6 網絡同等控制 | |
| 對象組 ACL | 網絡/服務/端口組對象引用 | — | 大規模策略簡化維護 |
access-list 10 permit 192.168.10.0 0.0.0.255 ! 管理網段
access-list 10 deny any log ! 其餘拒絕並記錄
line vty 0 4
access-class 10 in ! 應用於 VTY 入方向
ip access-list extended WEB_SRV_IN
permit tcp any host 10.1.1.80 eq 80 ! HTTP
permit tcp any host 10.1.1.80 eq 443 ! HTTPS
permit icmp any host 10.1.1.80 echo-reply ! 允許 Ping 回應
permit icmp any host 10.1.1.80 packet-too-big ! PMTUD 必需
deny ip any any log ! 其餘拒絕記錄
!
interface GigabitEthernet0/1
ip access-group WEB_SRV_IN in
time-range WORK_HOURS
periodic weekdays 09:00 to 18:00
!
ip access-list extended LAN_OUT
permit ip 192.168.10.0 0.0.0.255 any time-range WORK_HOURS
deny ip any any log
!
interface GigabitEthernet0/0
ip access-group LAN_OUT out
vlan access-map ISOLATE 10
match ip address 100 ! ACL 100 匹配需隔離的主機對
action drop
!
vlan access-map ISOLATE 20
action forward ! 其餘放行
!
vlan filter ISOLATE vlan-list 10,20,30