web-dev-qa-db-ja.com

corosync 1.4はパブリックIPをサポートしていますか?

クラウドベースのクラスターを作成しているので、今のところユニキャストを使用して他のペースメーカー/コロシンクノードに接続しています。プライベート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

これは機能していません。私は何か間違ったことをしていますか?私が見つけることができたすべての参照はcorosync2.xのためのものです

ありがとうございました

1
nwarriorch

私はこれをほとんど忘れていました。誰かがcorosync1.4をパブリックIPを使用してクラウドで動作させようとしている場合。 Corosyncは、指定したバインドされたアドレスに従ってインターフェイスにバインドし、インターフェイスアドレスとなるバインド先アドレスを生成します。

私が理解していることから、このIPは、パケットを受信したアドレスではなく、このアドレスに応答するすべてのノードにブロードキャストされています。

そのため、一部のクラウドのようにパブリックIPがボックスにない場合は、パブリックIPのようにCorosyncをそのまま使用できない可能性があります。

0
nwarriorch

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.
0
Matt Kereczman