VPC 对等链路有一些特殊的作用 - 它承载 CFSoE 流量(如下所述)以允许对等方同步(打开时自动启用feature vpc
)并承载孤立端口的流量。它的行为并不完全像普通端口通道,因此,最好将非 VPC VLAN 保留在不同的物理链路上。如前所述,一个显着的区别是,广播流量是通过对等链路发送的,但通常不会发送到任何非孤立成员链路。孤儿仍然需要接收广播。 本设计最佳实践指南适用于 7K,但或多或少同样适用于 5K、9K 或 3K。
CFS 基本上是在 VPC 成员之间同步状态的机制。它是交换参数以确保配置一致性的方式,是标准化 STP 配置的地方,编程多播/IGMP 信息的地方,以及如果配置了 IP ARP 和/或 IPv6 ND 信息的抢先同步方式。显然情况并非如此,CFS 以每个数据包为基础跟踪哪些流量应该和不应该通过对等链路。它的工作基本上是保持基本配置状态的同步,而不是实时流量控制。
对于您的具体问题-
VPC 环境中的假设是,在正常操作条件下,所有设备都具有到两个 VPC 对等点的成员链接。因此,在您的图表中的 NXOS1 上接收到的广播将被发送到同一交换机上的其他成员链接(......也就是说 NXOS2)。它还通过对等链路发送到 NXOS2。NXOS2 不会将在对等链路上接收到的广播发送到它的任何成员端口(同样,假设 NXOS1 已经这样做了)。但是,如果它有任何孤立端口,它将复制到它们。举个例子——想象一下从 SW1 到 NXOS1 的链接失败了。SW2 向 NXOS1 发送恰好散列的广播。NXOS1 通过其对等链路转发到 NXOS2,NXOS2 认为 SW1 正在作为孤儿运行(通过 CFS 学习)并将相应地发送广播。
对于您的第二个问题 - 如果 VPC 对等链路发生故障但保持活动状态仍处于启动状态,则作为辅助设备运行的 VPC 对等方将关闭其 VPC 成员端口(包括 L3 SVI),从而迫使下游交换机仅使用链路到 VPC 主节点。有一些旋钮可以解决这个问题 - 例如,允许孤儿或某些 SVI 保持正常运行,但这应该非常小心,因为您很容易陷入辅助交换机从上游吸引 L3 流量的情况,它可以' t 实际上到达 L2。
编辑(回答评论中的问题)
在脑裂情况(即 P/L 和 keep-alive 失败)中出了什么问题的问题取决于周围的拓扑结构。在您绘制的拓扑中,实际上只有 L2 设备并且交换机都双连接到两个 VPC 对等设备并且没有任何其他链接?如果下游交换机继续将成员链路视为正确聚合,则不会有很大的环路风险,因为将正确维护水平分割以进行广播。可能存在一些协议问题,具体取决于 VPC 配置,因为下游交换机会看到 STP PDU 具有来自端口通道的不同成员的不同来源,但该行为取决于 VPC 在两个交换机上的配置方式。
双/独立(非同步)IGMP 会破坏一些事情,并且可能会看到重复的多播数据包被淹没,因为两个 VPC 主服务器将独立执行相同的功能(......这是 CFS 通过对等链路处理的重要事情之一) .
现在 - 如果拓扑涉及更多?它可以变得更丑陋。在该 VPC 对上添加 L3,也许还有一些孤立链接,突然之间,您将丢弃流量,因为两个路由器向它们只能部分看到的子网通告可达性。在 S1 和 S2 之间建立一个链接,您最终可能会遇到一个不稳定的网络,因为他们一直看到 TCN,因为两个 VPC 对不断发送带有冲突信息的 BPDU。或者想象一个背靠背的 VPC,其中上游 VPC 对现在正在跨两个 VPC 交换机散列流量(包括广播/多播),这反过来又会在各个下游成员链路上泛滥相同的数据包。重复广播、不当泛滥等的大量机会。
最后 - 如果这些问题中的任何一个导致 LACP 中断 - 或者如果看到不同通道上显示的不同 LACP 捆绑信息会破坏下游交换机,那么您就会遇到下游交换机现在可能在 VPC 交换机之间转发的情况。对于 L2 循环来说,这绝对是成熟的。
这些类型的场景是为什么最佳实践文档如此严格地强调物理冗余对等链路的必要性(5K 上的两个链路,分布在 9500 或 7K 上的多个模块)以及为什么在一组完全独立的链路上运行保活流量(和基础设施)非常重要。与任何主动/主动集群系统一样,脑裂总是很危险的。