我正在使用Debian,并想用几个服务器建立一个HA网络。
这是我的配置:
-----sw1--------------sw2------------ host1
/ / \ \ /
srv1 srv2 srv3 srv4 /
\ \ / / /
-----sw3--------------sw4------------
我有一堆连接到两个独立网络的服务器(srv)。每个服务器都有两个网卡。每个nic使用非管理型交换机(sw)连接到其中一个网络。每台服务器将nics用于具有一个固定IP地址的绑定接口。该主机应该能够到达的所有服务器。它也有一个绑定界面。
Linux绑定设备是否可能出现上述情况?即使服务器的一个网卡处于不活动状态或网络之一发生故障,主机也应能够联系所有服务器。交叉连接网络不是我想要的。
我结合ARP监视结合了活动备份和广播的绑定模式进行了一些实验。但是没有成功...
使用上述模式,我能够创建一个正常工作的网络,但是一旦链接失败,网络就会中断。
你能帮助我吗?有其他选择可以达到我的目标吗?
提前致谢。
迪特尔
不,这不是绑定的工作方式。
绑定使用类似LACP的协议来聚合同一两台设备(2台主机,2台交换机或1台交换机和1台主机)之间的多个以太网链路,并将它们视为一条链路。
因为在两个网络接口srv1
,srv2
,srv3
,srv4
,和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的负载平衡来选择一个链接或另一个链接。
优点:
和:
增强版:
在每个主机上的每个主机上添加一个额外的回送地址,该地址不在单个链接的子网中。例如10.0.3.x/32
:
ip addr add 10.0.3.1/32 dev lo
让服务器在它们之间使用路由协议(例如OSPF)。为此,请使用quagga。每台服务器将通过OSPF学习如何通过两条链路(或者只有一条链路打开时,仅通过一条链路)到达其他服务器的环回地址。仅在DNS中发布回送地址。
通过对内核源IP地址选择进行一些仔细的附加配置,您可能还可以安排将环回地址也用作源地址,这将意味着各个TCP连接将无缝地进行故障转移。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句