我正在努力通过两条完全冗余的路径连接两台 Windows 7 PC(每台都配有 2 端口 Intel NIC)。我想让它对该系统上的服务透明。我考虑在每个系统上的两个 NIC 上创建一个以太网桥,并使用单独的交换机连接两个通道。
.-----------. 1 3 .-----------.
| [NIC1]-------------[Switch1]-------------[NIC1] |
| PC1 |br0 | | br0| PC2 |
| [NIC2]-------------[Switch2]-------------[NIC2] |
.-----------. 2 4 .-----------.
但我不知道这是否是一种有效的方法。我已经读过链路聚合(IEEE 802.3ad/802.1x)使用 LACP,但据我所知,这并不适用,因为这无法在单独的交换机上工作。我进一步阅读并发现最短路径桥接 (IEEE 802.1aq)但无法弄清楚这是否适用于使 2 台 Windows 7 PC 实现通信冗余(它看起来与数据中心规模相当)。
我想知道这是否不适用于简单的以太网?在上述方案中,如果我拔掉 Switch1 上的电源插头会发生什么?此以太网设置上的 TCP 连接会解决此问题吗?或者我必须做什么才能确保此带有冗余交换机的设置确实有效?
保证每个 IP 数据包都到达并不重要,重要的是足够快地检测出故障设备并停止使用它,以便上面的 TCP 能够存活并处理重传。这能行得通吗?或者最好的方法是什么?
编辑:据我所知,交换机是不可堆叠的。
EDIT2:PC1 上可能存在多个尝试,使用覆盖交换机 1 和交换机 2 的冗余以太网路径来到达 PC2。
谢谢你!
答案1
LACP 是目前最流行的实现方式,因为它允许总带宽聚合和链路冗余。但是您正确地指出,您无法使用两个单独的交换机来实现这一点,除非它们可以堆叠在一起形成单个逻辑交换机。
许多英特尔网卡在驱动程序/管理应用程序中提供了多个用于链路绑定/冗余的选项。其中之一是典型的主动/被动设置,其中一个链路处于活动状态,直到发生故障,此时第二个链路将处于活动状态。如果您无法执行 LACP,这是一个明智的选择。
所有这些方法都会在操作系统与之交互的设备上创建一个虚拟 NIC,因此底层设置对您的应用程序来说是透明的。