訪問控制列表(ACL)是 Cisco 路由器/交換機實現流量管控、安全防護的核心工具。本文以問答形式,系統梳理 ACL 定義、用途、分類、匹配邏輯、配置步驟、標準/擴展語法細節,並提供實戰避坑指南。
ACL 是一組有序的判斷語句,針對經過介面的封包進行條件匹配,決定 Permit(允許) 或 Deny(拒絕)。隨著網絡互聯擴大,管理員需「拒絕非預期訪問、允許業務必要流量」,ACL 提供介面級精細過濾能力,兼具流量控管與安全防禦雙重價值。
| 類型 | 編號範圍 | 匹配維度 | 適用場景 |
|---|---|---|---|
| 標準 ACL | 1-99、1300-1999 | 僅來源 IP | 簡單來源過濾、路由過濾、NAT 定義 |
| 擴展 ACL | 100-199、2000-2699 | 來源/目的 IP、協議(TCP/UDP/ICMP等)、埠號、TCP 旗標、ToS/DSCP 等 | 精細流量管控、安全策略、QoS 分類、VPN 流量選擇 |
建議:優先使用命名 ACL(ip access-list extended NAME),便於閱讀、修改與版本管理,避免編號衝突。
deny ip any any,故 ACL 內必須至少有一條 permit,否則所有流量被阻斷。! 步驟1:定義 ACL(以命名擴展 ACL 為例)
ip access-list extended WAN_IN
permit tcp any host 203.0.113.10 eq 443 log
permit tcp any host 203.0.113.10 eq 80
deny ip any any log
! 步驟2:應用至介面(方向關鍵)
interface GigabitEthernet0/0
ip access-group WAN_IN in ! 入向過濾:進入路由器的封包
方向選擇:in 過濾進入介面封包(保護路由器及內網);out 過濾離開介面封包(控制內網訪問外網)。
access-list <1-99> {permit|deny} source-addr [wildcard-mask]
! wildcard mask:0=必須匹配,1=忽略。例:host 192.168.1.5 等同 192.168.1.5 0.0.0.0
access-list <100-199> {permit|deny} protocol source-addr src-wildcard [operator port] dest-addr dst-wildcard [operator port] [log]
! protocol: ip/tcp/udp/icmp/ospf/eigrp/ah/esp/pim 等
! operator: eq/neq/gt/lt/range
! 例:permit tcp 192.168.1.0 0.0.0.255 host 203.0.113.10 eq www
ip access-list resequence 重新編號留出插入空間。log / log-input 關鍵字記錄命中封包,但注意高頻日誌可能影響 CPU,生產環境謹慎啟用。show access-lists 統計命中計數器確認生效。ACL 是網絡工程師的「手術刀」,精準銳利但需謹慎操作。掌握其邏輯精髓,配合命名管理與自動化部署,方能在複雜網絡中游刃有餘。