'switchport protected' 是否应该阻止单播泛洪?

网络工程 思科 cisco催化剂 以太网 cisco-ios-12
2021-07-16 21:07:51

switchport protected在接口配置是否可以防止交换机未获知的 MAC 地址的单播泛洪?

我看到的信息有冲突——关于单播泛洪维基百科页面引用保护模式作为阻止泛洪的机制,而思科的文档说这switchport protected无关紧要,这switchport block unicast仍然是防止泛洪所必需的。

但是,我最近遇到了一个问题,在运行一些相对古老的 12.1(22) 代码的 2950G 上,受保护端口的单播泛洪似乎完全被破坏了——交换机上的老化时间为 5 分钟,而路由器的 ARP 超时是 30 分钟,并且使用此接口的一个 TCP 连接倾向于一次休眠 10 分钟 - 在这种情况下,在 10 分钟后醒来时将不起作用。

在主机上运行的捕获显示没有预期的单播泛洪,增加交换机上的 MAC 老化计时器以匹配 ARP 完全解决了问题。

这种行为在较旧的 IOS 版本中是否未定义或不一致,或者这只是旧代码中的错误?

1个回答

我看到的信息有冲突——关于单播泛洪的维基百科页面引用保护模式作为阻止泛洪的机制,而思科的文档说受保护的交换机端口并不重要,并且仍然需要交换机端口阻止单播来防止泛洪.

switchport protected用于在 vlan 中强制实施隐私...该命令可防止端口与其他配置了switchport protected. 该命令减少了泛洪作为在 Vlan 中的所有端口上使用它的副作用,但它不仅仅“只是”从交换机端口中删除泛洪。老实说,我认为有更好的方法来实现你的目标。

switchport protected如果您在同一个 vlan 中聚合托管客户,则很有用;此命令是一种在客户之间提供隐私的方法,而不会出现私有 vlan 的复杂性。您提到的维基百科文章说您可以从默认网关(不应位于受保护的交换机端口上)“反弹”流量以到达其他目的地......

switchport block unicast确实阻止了未知的单播泛洪;但是,请参阅下文了解为什么我认为您不需要此命令。

但是,我最近遇到了一个问题,在运行一些相对古老的 12.1(22) 代码的 2950G 上,受保护端口的单播泛洪似乎完全被破坏了——交换机上的老化时间为 5 分钟,而路由器的 ARP 超时是 30 分钟,并且使用此接口的一个 TCP 连接倾向于一次休眠 10 分钟 - 在这种情况下,在 10 分钟后醒来时将不起作用。

正如我在评论中提到的,如果此网络中存在任何非对称路由路径的可能性,您要么需要未知单播泛洪,要么需要匹配 CAM 和 ARP 计时器以确保 CAM 条目不会在ARP 条目。

在大多数情况下,匹配 ARP 和 CAM 计时器是解决问题的正确方法,但选择权在您手中……

编辑以回应评论:

将计时器设置为匹配作为一种解决方法非常有效 - 我只是不明白为什么洪水没有按预期发生。

引自 Karl Solie、Leah Lynch、Charles Ragan 的“CCIE 实践研究,第 2 卷”,第 115 页:

如果未知的单播和多播流量被转发到受保护的端口,则可能存在安全问题。为了防止未知单播或多播流量从一个端口转发到另一个端口,您可以配置一个端口(受保护或不受保护)来阻止未知单播和多播流量。

3550_switch(config-if)#switchport block unicast
3550_switch(config-if)#switchport block multicast