使用带有独立交换机的 NIC 绑定

使用带有独立交换机的 NIC 绑定

我正在使用 Debian,并且想设置一个包含几台服务器的 HA 网络。

这是我的配置:

   -----sw1--------------sw2------------ host1
  /    /                    \    \        /
srv1 srv2                  srv3 srv4     /
  \    \                    /    /      /
   -----sw3--------------sw4------------

我有很多服务器(服务中心)连接到两个独立的网络。每个服务器有两个网卡。每个网卡都使用非托管交换机连接到其中一个网络(SW)。每台服务器都使用网卡作为具有一个固定 IP 地址的绑定接口。这主持人应该能够到达所有服务器。它也有一个绑定接口。

Linux 绑定设备可以实现上述场景吗?即使服务器的一个网卡处于非活动状态或其中一个网络已关闭,主机也应该能够联系所有服务器。交叉连接网络不是我想要的。

我对粘合模式做了一些实验主动备份播送结合ARP监控。但没有成功...

通过上述模式,我能够创建一个工作网络,但一旦链接出现故障,网络就会崩溃。

你能帮助我吗?有其他选择可以实现我的目标吗?

提前致谢。

迪特尔

答案1

不,这不是联系的运作方式。

绑定使用类似的协议LACP聚合多个以太网链路之间相同的两个设备(2 个主机、2 个交换机或 1 个交换机和 1 个主机)并将它们视为单个链路。

srv1因为、srv2srv3srv4和上的两个网络接口host1连接到不同的以太网接口,绑定/LACP 不适用。

一种选择是将 5 台主机中每台主机上的两个接口桥接在一起,并使主机参与生成树网络,以确保不存在第 2 层环路。不幸的是,由于您提到交换机是非托管的,因此生成树和第 2 层循环在您的场景中可能很危险,因为您无法在非托管交换机上配置生成树参数......或者它们可能根本不实现生成树。此外,STP 通过完全阻塞端口来解决网络中的环路,有效地导致主备配置,这不是您想要的。

另一种选择是使“顶部”和“底部”网络完全独立的IP网络。换句话说,在第 3 层而不是第 2 层实现负载平衡或冗余。

-----+----------------+---------------+--------------
     |                |               |
     |10.0.1.1/24     |10.0.1.2/24    |10.0.1.3/24
  +------+         +------+        +------+
  | srv1 |         | srv2 |        | srv3 |           etc...
  +------+         +------+        +------+
     |10.0.2.1/24     |10.0.2.2/24    |10.0.2.3/24
     |                |               |
-----+----------------+---------------+--------------

简易版:

对于每台服务器,在 DNS 中发布两个 IP 地址,并使用基于 DNS 的负载平衡来允许选择一个链接或另一个链接。

专业人士:

  • 简单的

缺点:

  • 单个 TCP 连接不会故障转移到其他链路
  • 如果在尝试另一个链接之前其中一个链接已关闭,则可能会发生长时间超时
  • 并非所有应用程序都了解如何重试与不同 IP 地址上的主机的连接

加强版:

在不在各个链路的任一子网上的每台主机上添加额外的环回地址。例如,10.0.3.x/32

  • srv1:10.0.3.1/32
    • 配置ip addr add 10.0.3.1/32 dev lo
  • srv2:10.0.3.2/32
  • srv3:10.0.3.3/32
  • ETC...

让服务器之间使用 OSPF 等路由协议。使用斑驴以此目的。每台服务器将通过 OSPF 了解如何通过两条链路(或者如果只有一条链路可用,则仅通过一条链路)到达其他每台服务器的环回地址。仅发布 DNS 中的环回地址。

通过对内核源 IP 地址选择进行一些仔细的附加配置,您可以安排环回地址也用作源地址,这意味着各个 TCP 连接将无缝故障转移。

相关内容