为什么 Cisco 访问列表绑定到特定接口?

为什么 Cisco 访问列表绑定到特定接口?

这似乎是一个简单/愚蠢的问题,但对我来说并非如此。请记住,我不是网络管理员,所以这对我来说并不明显。无论如何,直奔主题:

为什么我需要将 ACL 绑定到特定接口?换句话说,为什么我必须这样做:

interface ethernet0
ip access-group 1 in

而不是仅仅告诉路由器/交换机对所有传入流量使用 ACL(在我的示例 #1 中)?我个人只能想到两个原因(如下),但我有一种奇怪的感觉,可能还有其他原因:

a) 优化。例如,如果硬件为每个网络接口使用一些 ASIC,则可以在传入流量“进入”控制平面之前将其过滤掉。

b) 按照惯例。这种情况不太可能发生。

谢谢。

答案1

路由器操作系统会尝试将 CPU 负载保持在尽可能低的水平。因此,即使接口处理器模块没有自己的 ASIC,它们也会使用单独的数据包处理 CPU 循环/线程。

当 ACL 过滤掉不感兴趣的数据包时,它们会默默地跳过,释放数据包队列内存并且不会影响 CPU。

事实上,单个 64K 串行链路的数据包处理可能会压垮一个好的 RISC 处理器。我在 Cisco 3662 受到 CodeRed 蠕虫攻击时就见过这种情况,该蠕虫使用精心设计的 TCP 选项字段绕过接口快速数据包交换路径并到达要路由的 CPU,导致持续 100% 的负载。

答案2

好吧,我想说他们这样做是为了细化,实际上是为了使事情更容易理解,这样就不会造成任何混淆。当然,为了让事情在真正具体的场景中更容易理解,思科可以在全局模式下实现某种命令,这可以轻松地让你将“ip access-group 1 in”应用于多个接口,但我认为这也可以轻松通过“interface range”命令实现。

此外,您现在可能遇到的情况非常具体,因为要获得更多控制,您需要更具体的 ACL,因此适用于入站流量的规则可能不适用于出站流量,并且与您在网络中定义的不同用途区域(WAN、LAN、DMZ 等)的一部分的接口非常相似,但这些接口的流量可以由同一路由器设备路由。

相关内容