将NIC绑定与独立交换机配合使用

迪特尔·斯科茨(Dieter Scholz)

我正在使用Debian,并想用几个服务器建立一个HA网络。

这是我的配置:

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

我有一堆连接到两个独立网络的服务器(srv)。每个服务器都有两个网卡。每个nic使用非管理型交换机(sw连接到其中一个网络每台服务器将nics用于具有一个固定IP地址的绑定接口。主机应该能够到达的所有服务器。它也有一个绑定界面。

Linux绑定设备是否可能出现上述情况?即使服务器的一个网卡处于不活动状态或网络之一发生故障,主机也应能够联系所有服务器。交叉连接网络不是我想要的。

结合ARP监视结合了活动备份广播的绑定模式进行了一些实验但是没有成功...

使用上述模式,我能够创建一个正常工作的网络,但是一旦链接失败,网络就会中断。

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

提前致谢。

迪特尔

塞拉达

不,这不是绑定的工作方式。

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

因为在两个网络接口srv1srv2srv3srv4,和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
  • 等等...

让服务器在它们之间使用路由协议(例如OSPF)。为此,请使用quagga每台服务器将通过OSPF学习如何通过两条链路(或者只有一条链路打开时,仅通过一条链路)到达其他服务器的环回地址。仅在DNS中发布回送地址。

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章