【问题标题】:How to use IPTables to reroute trafffic to either a local connection manager or the main xmpp service (Openfire)如何使用 IPTables 将流量重新路由到本地连接管理器或主 xmpp 服务 (Openfire)
【发布时间】:2023-03-28 23:30:02
【问题描述】:

我正在尝试对 openfire XMPP 服务器的连接进行负载平衡 - 因此我在第二台服务器上托管了一个连接管理器,并尝试使用 IP 表作为负载平衡器。这两个都在 Linux CentOS 6.3 上运行(是的,我知道它很旧 - 正在努力)。

我已经在我的第二台服务器(我们称之为服务器 A)上的端口 5300 上设置了连接管理器,并且 XMPP 服务器(服务器 B)已经运行了好几年,并且继续这样做。

问题在于让负载平衡实际进行任何平衡。

这些是我在服务器 A 上应用的预路由规则(IP 地址已编辑),以尝试在服务器 A 上的连接管理器(端口 5300)和服务器 B 上的 XMPP 服务(端口 5222)之间路由流量:

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination
DNAT       tcp  --  0.0.0.0/0            <server A IP>      tcp dpt:5222 
statistic mode nth every 2 to:<server B IP>:5222
DNAT       tcp  --  0.0.0.0/0            <server A IP>      tcp dpt:5222 
to:<server B IP>:5300

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

我通过 Spark 使用端口 5222 连接到服务器 A,它成功登录到 XMPP 服务。

我希望端口 5222 上与服务器 A 的每个偶数连接都已转发到 :5222 上的 openfire 服务器,并且每个奇数连接都将被引用到 :5300 上的连接管理器。

然而,查看 openfire 中的连接,似乎总是通过连接管理器建立连接。

对于为什么会发生这种情况或如何纠正它有什么想法吗?我知道那里有各种负载平衡软件解决方案,但我更愿意在本地处理这个以最大限度地降低成本。

【问题讨论】:

    标签: centos iptables openfire


    【解决方案1】:

    事实证明,从外观上看,xmpp 服务器从未接收到通过 IPTables 配置转发的数据包 - 但 XMPP 服务器已将所有默认规则设置为“接受”并且没有声明其他规则,并且正在接受来自连接管理器的连接。 Spark 然后重新尝试连接;所以当然会连接到连接管理器,因为这是一个“奇怪的”连接。

    我将 [发布一个新问题/确定一个现有问题] 关于正在使用的 IPTables 规则以及为什么没有转发和/或接收数据包 - 比上述更简单的问题。

    【讨论】:

      猜你喜欢
      • 2013-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-03
      • 2012-04-16
      • 2018-02-03
      • 2015-03-13
      • 1970-01-01
      相关资源
      最近更新 更多