Networking

為什麼 IP 轉發中的訪問控制列表使用反向遮罩?

  • August 19, 2021

當我了解訪問控制的概念時,我發現 ACL 使用反向遮罩。但是,在瀏覽cisco site關於控制列表的解釋時,我注意到在他們的所有解釋中,他們將反向遮罩轉換為原始遮罩,然後執行必要的操作。

如果是這樣的話,為什麼我們需要反向遮罩呢?據我了解,反向遮罩只有在與 IP 地址進行位或運算時才會被證明是有用的。但我懷疑情況是否如此。那麼使用反向遮罩的真正原因是什麼?

與僅使用網路遮罩相比,反向位遮罩為您提供更大的靈活性。絕大多數應用程序只是將網路遮罩反轉為反向遮罩,如下所示:

! Deny tcp/25 traffic from all sources going to addresses 
! in the seqence matching [172.16.0.4, 172.16.1.4, 172.16.2.4, etc...]
ip access-list 101 deny tcp any 172.16.0.4 0.0.0.0 eq 25
ip access-list 101 deny tcp any 172.16.1.4 0.0.0.0 eq 25
ip access-list 101 deny tcp any 172.16.2.4 0.0.0.0 eq 25
ip access-list 101 deny tcp any 172.16.3.4 0.0.0.0 eq 25
ip access-list 101 deny tcp any 172.16.4.4 0.0.0.0 eq 25
ip access-list 101 deny tcp any 172.16.5.4 0.0.0.0 eq 25
! keep repeating the pattern all the way to 172.16.255.4

本質上,acl 101 基於 /32 網路遮罩阻止數據包。一種更緊湊的表達方式是

! 255 in the third octet of the wildcard mask matches from 0-255
ip access-list 102 deny any 172.16.0.4 0.0.255.0 eq 25

ACL 102 只是表達第一個 ACL 的更緊湊的方式。

在 Cisco IOS 僅根據 CPU 功率切換所有流量並且沒有內置內部 acl 模式優化的日子裡,由於 ACL 101 中的條目數量,ACL 101 會比 ACL 102 慢得多。現在,Cisco IOS 包括模式匹配引擎和高端平台中的一些重要優化甚至使用 ASIC 進行過濾……因此將 ACL 表示為 102 更方便。

請記住,您的 IOS 配置僅與您的員工在凌晨 3 點出現故障時一樣好;因此,如果您盡可能巧妙地編寫 ACL,那麼在清晨危機期間,您可能需要更多時間來調試事物。

引用自:https://serverfault.com/questions/405079