我有三台机器:一台本地 PC(公共 IP 1.2.3.4)、数据中心中的 Ubuntu 10 服务器盒(5.6.7.8 公共 IP 上的 eth0),以及托管我网络外部网站的第三方服务器(假设216.34.181.45 上的斜杠)。
我有两个运行 Corosync 和 Pacemaker 的HA 负载平衡器(hollywood
和wolfman
)。所述eth1
接口被连接到广域网,以及eth0
接口的LAN,使用虚拟IP作为网关用于后端服务器。的eth1
IPhollywood
是xxx.xxx.195.45
, 的eth1
IPwolfman
是xxx.xxx.195.46
。该bindnetaddr
在Corosync是xxx.xxx.195.32
,同为广域网的网络地址和端口Corosync是默认的5405
。
两台服务器上的相关IP表规则是:
*filter
--flush
:INPUT DROP
--append INPUT --protocol udp --destination-port 5404 --jump ACCEPT
--append INPUT --protocol udp --destination-port 5405 --jump ACCEPT
Run Code Online (Sandbox Code Playgroud)
这种设置似乎做工精细,但最初我加--in-interface eth1
和--source xxx.xxx.195.46
来wolfman
,并--source xxx.xxx.195.45
到hollywood
。大多数情况下这似乎有效,但重新启动被动平衡器有时会终止负载平衡器之间的通信,将这些错误写入系统日志:
[TOTEM] 由于操作系统或网络故障,图腾无法形成集群。此消息的最常见原因是本地防火墙配置不正确。
因此,我认为所有 Corosync 流量直接在两个负载均衡器之间的简单信念似乎eth1
是错误的,或者是其他原因导致了问题。
我想将5404/5405
IPTables 中的端口锁定到集群。我需要做什么才能实现这一目标?
编辑: …