Firewallを使用している場合、クラスタが正常に動作しないことがあるため、以下のどちらかの設定を行ってください。
PRIMECLUSTERが使用する通信インタフェースを許可する。
PRIMECLUSTERが使用するポート番号を許可する。
ここでは、firewalld、iptables、ip6tablesまたはnftablesでFirewallを設定する場合の設定例を記載します。
実際の設定は、セキュリティポリシーに合った方法で行ってください。
参照
firewalldの詳細については、firewalld(1)コマンドまたはfirewall-cmd(1)のmanマニュアルなどを参照してください。
iptablesの詳細については、iptables(8)コマンドのmanマニュアルなどを参照してください。
ip6tablesの詳細については、ip6tables(8)コマンドのmanマニュアルなどを参照してください。
nftablesの詳細については、nftables(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
nftables の場合
形式)
nft add rule ip filter INPUT oifname <入力インタフェース> accept nft add rule ip filter OUTPUT oifname <出力インタフェース> accept
例)
nft add rule ip filter INPUT oifname "cip0" accept nft add rule ip filter OUTPUT oifname "cip0" accept
PRIMECLUSTERが使用するポート番号を許可する場合
“付録J PRIMECLUSTERのsystemdサービス/起動デーモンとポート番号”を参照し、PRIMECLUSTERが使用する、すべてのポート番号の通信を許可してください。
CF over IPを使用する場合は、CF over IPで使用するプロトコル(プロトコル番号123)についても通信を許可する必要があります。
以下は、自ノードと他ノード間で、クラスタリソース管理機構が使用するポート番号の一部の通信を許可する設定例です。
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
CF over IPの通信を許可する場合、追加で以下を設定してください。
firewall-cmd --permanent --zone=<zone> --add-protocol=123
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
CF over IPの通信を許可する場合、追加で以下を設定してください。
-A INPUT -p 123 -j ACCEPT -A OUTPUT -p 123 -j ACCEPT
nftables の場合
形式)
nft add rule ip filter <INPUT/OUTPUT> <tcp/udp> dport <送信先ポート番号> accept nft add rule ip filter <INPUT/OUTPUT> <tcp/udp> sport <送信元ポート番号> accept
例)
nft add rule ip filter INPUT tcp dport 9383 accept nft add rule ip filter INPUT tcp sport 9383 accept nft add rule ip filter OUTPUT tcp dport 9383 accept nft add rule ip filter OUTPUT tcp sport 9383 accept
CF over IPの通信を許可する場合、追加で以下を設定してください。
nft add rule ip filter INPUT ip protocol 123 accept nft add rule ip filter OUTPUT ip protocol 123 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