iptables
Cephクラスタを設定しようとしています。現在、監視サーバーの1つのルールを開発しています。
モニターデーモンのリスニングtcp/6789
(公開アドレスなのでIPアドレスが削除されます):
# netstat -tunlp | grep ceph-mon
tcp 0 0 X.X.X.X:6789 0.0.0.0:* LISTEN 2612/ceph-mon
tcp ポート 6789 への接続を許可し、他のすべてを削除すると、クラスターの残りの部分によってモニターがダウンしているとマークされます。
iptables -F INPUT
iptables -A INPUT -p tcp --dport 6789 -j ACCEPT
iptables -A INPUT -j DROP
混乱しても、TCP ポート 6789 へのすべての接続を削除しても、クラスターは引き続き実行されます。
iptables -F INPUT
iptbales -A INPUT -p tcp --dport 6789 -j DROP
私が許すなら源泉tcpポート6789を削除し、クラスタが実行されている他のすべてのエントリを削除します。
iptables -F INPUT
iptables -A INPUT -p tcp --sport 6789 -j ACCEPT
iptables -A INPUT -j DROP
デーモンがポート6789でリッスンしているため、tcpセグメントの宛先ポートは6789である必要があるため、これは私には理解できません。
送信元ポート 6789 で動作している場合は、tcpdump
宛先ポート 56052 および送信元ポート 6789 に着信パケットを表示できます。モニター・サーバーのポート56052でリッスンしている項目がないため、これは私にとってははるかに理解できません。
ここで何か抜けましたか?私はSLES12とceph 12.2.7を使用していますが、FORWARDおよびOUTPUTチェーンにはルールがなく、すべてのチェーンのポリシーはACCEPTです。
答え1
接続トレースを有効にしていないため、モニターが他のモニターと通信しようとしたときにファイアウォールを介して応答を返すことはできません。問題を解決するために、次のルールを追加しました。
iptables -I INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
ありがとうABステートフルファイアウォールの推奨事項を確認してください。