考虑一个带有空转发表的交换机。连接的客户端是
* A (Port 1)
* B (Port 2)
* C (Port 3)
A
想将包裹 P 发送到C
。当交换机接收到这个包时,交换机知道包A
应该被发送到端口 1。
交换机现在将此包发送到端口 2 和 3。如果所有客户端的行为都正确,则只会C
回复(并且 S 将在其转发表中获得正确的条目)。
假设B
是行为不端,并且总是会回复。然后,交换机将在转发表中创建一个条目,该条目将指向 的所有其他包C
指向B
。
还是那样?
考虑一个带有空转发表的交换机。连接的客户端是
* A (Port 1)
* B (Port 2)
* C (Port 3)
A
想将包裹 P 发送到C
。当交换机接收到这个包时,交换机知道包A
应该被发送到端口 1。
交换机现在将此包发送到端口 2 和 3。如果所有客户端的行为都正确,则只会C
回复(并且 S 将在其转发表中获得正确的条目)。
假设B
是行为不端,并且总是会回复。然后,交换机将在转发表中创建一个条目,该条目将指向 的所有其他包C
指向B
。
还是那样?
当 A 向 C 发送帧时,交换机会学习 A 的MAC 地址并将该帧泛洪到除 1 之外的所有端口(因为它在该端口上收到了该帧)。
这样,B和C都接收到帧。由于该帧包含 C mac 地址作为目标地址,B 知道它不是预期的接收者并丢弃该帧。C 处理帧并回复。交换机获知 C mac 地址并将其添加到其表中。
B 行为不端的唯一可行方法是欺骗 C 的 MAC 地址。在这种情况下,B 和 C 将使用相同的 MAC 地址。
这种情况会导致不可预知的结果和间歇性通信故障。
B & C 都会响应,交换机可能会用最新的更新其表。通常交换机只会在其表中保留一个关联 MAC 地址 < - > 端口,因此根据流量,有时会在端口 2 上发送发往重复 MAC 的帧,有时会在端口 3 上发送,但不会一次在两个端口上发送。
一些交换机具有(可配置的)针对 mac 欺骗的保护,但这非常依赖于品牌/型号。