corosync 1.4 是否支持公共 IP?

corosync 1.4 是否支持公共 IP?

我正在创建一个基于云的集群,因此现在使用单播连接到其他 pacemaker/corosync 节点。我能够使用私有 IP 创建集群。要创建跨区域集群,我想使用公共 IP。我尝试使用通用配置,为 memberaddr 提供公共 IP,为 bindnetaddr 提供节点的公共 IP。类似这样的配置

  interface {

           member {
             memberaddr: <public ip 1>
           }
           member {
              memberaddr: <public ip 2>
           }
           member {
              memberaddr: <public ip 3>
           }
           ringnumber: 0
           bindnetaddr: <current nodes public Ip>
           mcastport: 5405
           ttl: 1
  }
  transport: udpu

这不起作用。我做错了什么吗?我能找到的所有参考资料都是针对 corosync 2.x 的

谢谢

答案1

如果 Corosync 配置适用于您的专用网络,那么它也应该适用于您的公共网络。我将验证是否存在允许 UDP 端口 5404 和 5405 在节点之间进行通信的防火墙规则。

此外,bindnetaddr它不一定是 IP 地址;它正在寻找网络地址。只需确保您为网络掩码使用正确的网络地址即可。

来自 Corosync.conf 手册页:

bindnetaddr
          This specifies the network address the corosync executive should
          bind to.

          bindnetaddr should be an IP address configured on the system, or
          a network address.

          For example, if the local interface is 192.168.5.92 with netmask
          255.255.255.0, you should set  bindnetaddr  to  192.168.5.92  or
          192.168.5.0.   If  the local interface is 192.168.5.92 with net‐
          mask  255.255.255.192,  set  bindnetaddr  to   192.168.5.92   or
          192.168.5.64, and so forth.

          This  may also be an IPV6 address, in which case IPV6 networking
          will be used.  In this case, the exact address must be specified
          and  there  is  no  automatic selection of the network interface
          within a specific subnet as with IPv4.

          If IPv6 networking is used, the nodeid field in nodelist must be
          specified.

答案2

我几乎忘记了这一点,如果有人试图让 corosync 1.4 在具有公共 IP 的云上运行。Corosync 根据您提供的绑定地址绑定到接口,并生成一个绑定地址,该地址将是您的接口地址。

据我了解,它会将此 IP 广播到所有节点,这些节点依次响应此地址,而不是接收数据包的地址。

因此,如果你的公共 IP 不像某些云那样在盒子上,那么可能无法像公共 IP 那样使用 Corosync

相关内容