切換 ACL 詳細信息

網路設備上的ACL(存取控制清單)可以透過硬體和軟體來實現,或者更通俗地說,基於硬體和軟體的ACL。 如果基於軟體的ACL 的一切都應該很清楚- 這些是在RAM 中儲存和處理的規則(即在控制平面上)以及所有隨之而來的限制,那麼我們將了解基於硬體的ACL 是如何實現的並在我們的工作中發揮作用。文章。 作為範例,我們將使用 Extreme Networks 的 ExtremeSwitching 系列交換器。

切換 ACL 詳細信息

由於我們對基於硬體的 ACL 感興趣,因此資料平面的內部實作或實際使用的晶片組 (ASIC) 對我們來說至關重要。 所有 Extreme Networks 交換器系列均基於 Broadcom ASIC 構建,因此以下的大部分資訊也適用於市場上在相同 ASIC 上實現的其他交換器。

從上圖可以看出,「ContentAware Engine」直接負責晶片組中ACL的操作,分別負責「ingress」和「egress」。 從架構上來說,它們是相同的,只是「出口」的可擴展性和功能性較差。 從物理上講,兩個「ContentAware 引擎」都是 TCAM 記憶體加上隨附的邏輯,每個使用者或系統 ACL 規則都是寫入該記憶體的簡單位元遮罩。 這就是晶片組逐包處理流量且不會降低效能的原因。

物理上,同一個 Ingress/Egress TCAM 又在邏輯上被劃分為若干段(取決於記憶體本身的數量和平台),即所謂的「ACL 切片」。 例如,當您在筆記型電腦上建立多個邏輯磁碟機 - C:>、D:> 時,筆記型電腦上實體上相同的 HDD 也會發生相同的情況。 每個 ACL 片又由「字串」形式的儲存單元組成,其中寫入了「規則」(規則/位元遮罩)。

切換 ACL 詳細信息
TCAM 劃分為 ACL 切片是有一定邏輯的。 在每個單獨的 ACL 片中,只能寫入彼此相容的「規則」。 如果任何「規則」與前一個「規則」不相容,那麼它將被寫入下一個 ACL 切片,無論前一個「規則」中還剩下多少行「規則」。

那麼ACL規則的兼容或不相容從何而來呢? 事實上,寫入「規則」的一條 TCAM「行」的長度為 232 位,並分為幾個字段 - 固定、字段 1、字段 2、字段 3。 232 位元或 29 位元組 TCAM 記憶體足以記錄特定 MAC 或 IP 位址的位元遮罩,但比完整的乙太網路封包頭要少得多。 在每個單獨的 ACL 切片中,ASIC 根據 F1-F3 中設定的位元遮罩執行獨立查找。 一般來說,可以使用乙太網路標頭的前 128 個位元組來執行此查找。 實際上,正是因為可以在 128 個位元組上執行搜索,但只能寫入 29 個位元組,所以為了正確查找,必須設定相對於封包開頭的偏移量。 每個 ACL 切片的偏移量在寫入第一個規則時設置,如果在寫入後續規則時發現需要另一個偏移量,則認為該規則與第一個規則不相容並寫入到下一個ACL 切片。

下表顯示了 ACL 中指定的條件的相容性順序。 每條單獨的行都包含產生的位元遮罩,這些位元遮罩彼此相容但與其他行不相容。

切換 ACL 詳細信息
ASIC 處理的每個單獨資料包在每個 ACL 切片中執行並行查找。 檢查會一直執行到 ACL 切片中的第一個匹配項,但相同資料包允許在不同 ACL 切片中出現多個匹配項。 每個單獨的「規則」都有一個相應的操作,如果條件(位元遮罩)匹配,則必須執行該操作。 如果多個 ACL 切片同時發生匹配,則在「操作衝突解決」區塊中,根據 ACL 切片的優先級,決定執行哪個操作。 如果ACL同時包含“action”(允許/拒絕)和“action-modifier”(計數/QoS/log/...),那麼在多個符合的情況下,僅執行較高優先順序的“action”,而「action」則被執行。-modifier 」就全部完成了。 下面的範例顯示兩個計數器都會遞增,並且優先順序較高的「拒絕」將被執行。

切換 ACL 詳細信息
《ACL解決方案指南》 在網站上提供有關 ACL 在公共領域運行的更多詳細信息 extremenetworks.com 網站。 出現或仍然存在的任何問題都可以隨時詢問我們的辦公室工作人員 - [電子郵件保護].

來源: www.habr.com

添加評論