我对 Linux 绑定和切换的理解正确吗?

我对 Linux 绑定和切换的理解正确吗?

如果有一台服务器和一台交换机,如果交换机死机,服务器上的服务就会中断。

所以一般会有两个交换机,服务器要连接到这两个交换机,因此服务器上应该有两个网卡。

但即使服务器有两块网卡连接在两台交换机上,由于IP不同,如果服务所监听的IP的网卡出现故障,那么服务也会down掉。

因此就出现了绑定。通过绑定,两个 NIC 共享一个 IP,并且两个 NIC 将连接到两个交换机,因此,如果一个交换机死机,另一个交换机将提供服务,并且如果一个 NIC 死机,另一个 NIC 仍将工作。

我理解的对吗?

答案1

有点。绑定实际上为您提供了一个具有一个 IP 的虚拟接口,因此您提到的“IP 不同”的情况是无稽之谈。绑定可以在故障转移模式或 LACP 模式下工作。在 LACP 模式下,流量通常在所有可用的物理接口上进行平衡,但有一些特定的限制(例如,某些供应商可能只平衡发往不同 MAC 的流量),而在故障转移模式下,一个接口是备用接口,并且只是待命。LACP 模式基本上可以在一台交换机内工作,因此如果您想在两台交换机上使用 LACP 模式,提供真正的高可用性,所选交换机应该支持它 - 它称为跨交换机 LACP(某些供应商(如 Cisco)支持,但这不是一组基本功能)。

答案2

你把事情搞混了。

首先,在多个 IP 上提供服务并且用户足够聪明去使用一个可行的服务并没有什么不妥。

其次,绑定不是基于 IP 的 - 绑定在以太网级别上工作。绑定连接共享一个 mac 地址。它基本上是一个连接。因此,它们实际上并不共享一个 IP - 它们是一个以太网通道。这是“更根本的” - 绑定在底层技术上工作。

第三,bonding 不能跨交换机工作。或者:如果工作方式类似,那么基本上就需要交换机知道如何处理这个问题(堆叠交换机可能具有此功能)。这意味着您可以告别大多数低成本交换机的bonding和正常运行时间。不确定某些高端交换机是否如此,但我不知道有哪款交换机可以处理分布在多个机箱上的bonding。虽然不是专家,但我通常也会先使用 10G 再使用bonding。我听说思科具有此功能(跨交换机 LACP)。

通常,绑定用于为未考虑到这一点的应用程序透明地创建更多带宽。为高吞吐量和正常运行时间而构建的协议可能不需要绑定 - 例如 ISCSI 使用 MPIO(多路径 IO)处理此问题,它实际上通过多个 IP 地址连接到服务器,以这种方式分配负载和处理正常运行时间。微软现在在后续服务器中对文件共享也做了同样的事情,允许使用多个 IP 地址来处理多个并行数据流以获得更多带宽(SMB 3 多通道)。这里不需要绑定,所有处理都在协议和库级别进行。

相关内容