为以太网获得“透明”冗余的最佳方法是什么?

我很抱歉,如果这是一个明显的问题,我是一个新手,只要冗余networking去,我不知道什么关键字谷歌。 我的应用场景是这样的:

  • 该系统由less量基于Linux的服务器组成(从1到20)
  • 每台服务器上都有两个物理以太网接口
  • 系统运行在一个孤立的局域网上 – 它没有以任何方式连接到互联网
  • 运行在每个服务器上的(自定义/内部)应用程序软件通过持久的TCP连接和/或UDP多播与其他服务器上的对等体进行通信。
  • 所有通信都通过IPv6进行
  • 为了获得networking冗余,显而易见的事情是要有两个高速以太网交换机,并将每个Linux服务器连接到两个交换机。 这样,如果其中一个交换机出现故障,或者有人不小心通过以太网电缆切断,则可以通过其他电缆/交换机继续通信,并且系统将保持全部function。

    我的问题是,有没有办法使应用软件的冗余度达到100%? (透明的,我的意思是说,应用软件不应该知道或关心有多个以太网端口;理想情况下,它只会看到一个eth0而不是一个eth1 …如果数据停止stream过其中一个两个物理以太网端口,不pipe是什么原因,应用软件都不应该检测到故障或者做任何特殊的事情来继续工作)。

    额外的带宽对于我的目的并不重要(千兆以太网的一条“通道”足够快),但是简单性和可靠性却是如此。

    你想要的谷歌果汁是“以太网绑定”。 这是一件艺术品。

    如果您想要简单性和可靠性,只需要两台支持多机箱链路聚合的交换机(供应商有自己的名称,有时候只是“堆叠”),并且每台交换机都支持足够的链路聚合以满足您的需求。 在交换机端口服务器上设置LACP ,以便您的所有应用程序在每个服务器上看到一个“bond0”接口。

    Linux也支持称为“自适应负载平衡”的东西,它仍然看起来像应用层的一个“bond0”接口,但不使用LACP,也不要求支持多机箱链路聚合的交换机(但交换机必须交叉连接)连接带宽好)。 此模式使用ARP技巧将传入stream量引导至每个物理接口,而不是使用链路层绑定标准。 它只需要不带特殊function的傻瓜交换机,对于我们使用IPv4的生产来说效果很好,对IPv6不是很确定。