切换 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 网站。 出现或仍然存在的任何问题都可以随时询问我们的办公室工作人员 - [电子邮件保护].

来源: habr.com

添加评论