Firewallを使用している場合、クラスタが正常に動作しないことがあるため、以下のどちらかの設定を行ってください。
PRIMECLUSTERが使用する通信インタフェースを許可する。
PRIMECLUSTERが使用するポート番号を許可する。
ここでは、firewalld、iptablesまたはip6tablesでFirewallを設定する場合の設定例を記載します。
実際の設定は、セキュリティポリシーに合った方法で行ってください。
参照
firewalldの詳細については、firewalld(1)コマンドまたはfirewall-cmd(1)のmanマニュアルなどを参照してください。
iptablesの詳細については、iptables(8)コマンドのmanマニュアルなどを参照してください。
ip6tablesの詳細については、ip6tables(8)コマンドのmanマニュアルなどを参照してください。
PRIMECLUSTERが使用する通信インタフェースを許可する場合
PRIMECLUSTERでは、管理LANとクラスタインタコネクトで通信インタフェースを使用します。両方の通信インタフェースを許可する設定を行ってください。
以下は、クラスタインタコネクトの通信インタフェースである“cip0”の送受信を許可する設定例です。
firewalldの場合
zoneに登録されていないインタフェースを zone=trusted に追加する場合と、他のzoneに登録済みのインタフェースをzone=trustedに変更する場合でfirewalldの設定を変更するfirewall-cmdコマンドのオプションは異なります。
zoneに登録されていないインタフェース cip0を zone=trusted に追加
形式) firewall-cmd --permanent --zone=trusted --add-interface=<インタフェース>
例) firewall-cmd --permanent --zone=trusted --add-interface=cip0
他のzoneに登録済みインタフェース cip0の zoneを trusted に変更
形式) firewall-cmd --permanent --zone=trusted --change-interface=<インタフェース>
例) firewall-cmd --permanent --zone=trusted --change-interface=cip0
iptables または ip6tables の場合
形式) -A INPUT -i <入力インタフェース> -j ACCEPT -A OUTPUT -o <出力インタフェース> -j ACCEPT
例) -A INPUT -i cip0 -j ACCEPT -A OUTPUT -o cip0 -j ACCEPT
PRIMECLUSTERが使用するポート番号を許可する場合
“付録I PRIMECLUSTERの起動スクリプト/起動デーモンとポート番号”または、“付録J PRIMECLUSTERのsystemdサービス/起動デーモンとポート番号”を参照し、PRIMECLUSTERが使用する、すべてのポート番号の通信を許可してください。
以下は、自ノードと他ノード間で、クラスタリソース管理機構が使用するポート番号の一部の通信を許可する設定例です。
firewalldの場合
特定のポート番号への通信を許可
形式) firewall-cmd --permanent --zone=<zone> --add-port=<送信先ポート番号>/<tcp/udp>
例) firewall-cmd --permanent --zone=public --add-port=9383/tcp
特定のポート番号からの通信を許可
IPv4とIPv6でコマンドのオプションが異なります。
IPv4の場合
形式) firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p <tcp/udp> --sport <送信元ポート番号> -j ACCEPT
例) firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p tcp --sport 9383 -j ACCEPT
IPv6の場合
形式) firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 -p <tcp/udp> --sport <送信元ポート番号> -j ACCEPT
例) firewall-cmd --permanent --direct --add-rule ipv6 filter INPUT 0 -p tcp --sport 9383 -j ACCEPT
iptables または ip6tables の場合
形式) -A <INPUT/OUTPUT> -p <tcp/udp> -m <tcp/udp> --dport <送信先ポート番号> -j ACCEPT -A <INPUT/OUTPUT> -p <tcp/udp> -m <tcp/udp> --sport <送信元ポート番号> -j ACCEPT
例) -A INPUT -p tcp -m tcp --dport 9383 -j ACCEPT -A OUTPUT -p tcp -m tcp --sport 9383 -j ACCEPT -A INPUT -p tcp -m tcp --sport 9383 -j ACCEPT -A OUTPUT -p tcp -m tcp --dport 9383 -j ACCEPT
注意
firewall-cmd の --permanentオプションによりfirewalldの設定を変更した場合はfirewalldサービスを再起動してください。
iptablesの設定を変更した場合は、iptablesサービスの再起動ではなく、以下のいずれかを行ってください。
クラスタノードの再起動
iptables-restoreによる反映
ip6tablesの設定を変更した場合は、ip6tablesサービスの再起動ではなく、以下のいずれかを行ってください。
クラスタノードの再起動
ip6tables-restoreによる反映
iptablesまたはip6tablesでstateモジュールを使用している場合、stateモジュールの設定より前に、PRIMECLUSTERの通信を許可する設定を行ってください。
以下の例では、stateモジュール設定の前に、クラスタインタコネクトの通信を許可しています。
例) -A INPUT -i cip0 -j ACCEPT -A OUTPUT -o cip0 -j ACCEPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p tcp -m tcp ! --tcp-flags SYN,RST,ACK SYN -m state --state NEW -j DROP