ポート5701でJavaプロセス(Hazelcast)を実行するLinuxサーバーがあります。ただし、このサーバーへの接続に問題があり、接続拒否の問題が発生しています。詳細は次のとおりです。
3つのノードがあります。ノードの2つ(ノードAとノードB)は、Telnet経由でポート5701を介して互いに接続されています。ただし、3番目のノード(ノードC)があります。ノードCがTelnetを介してノードAに接続しようとすると機能します。ただし、ノードCがTelnetを介してノードBに接続しようとすると、接続は拒否されます。
Telnetの出力は次のとおりです。
ノードAはノードBに接続される。
11:54:16 # telnet <node B hostname> 5701
Trying <node B hostname>...
Connected to <node B hostname>.
Escape character is '^]'.
ノードCはノードBに接続される。
11:38:44 # telnet <node B hostname> 5701
Trying <node B hostname>...
telnet: connect to address <node B hostname>: Connection refused
Node Bのファイアウォールの状態も確認しました。
12:30:57 # firewall-cmd --list-all
public
target: DROP
icmp-block-inversion: no
interfaces:
sources:
services: dhcpv6-client ssh
ports: 5701/tcp 8089/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
ノードAのファイアウォールの状態
12:32:02 # firewall-cmd --list-all
public (active)
target: DROP
icmp-block-inversion: no
interfaces: ens160
sources:
services: dhcpv6-client ssh
ports: 5701/tcp 8089/tcp 8000/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
ファイアウォールステータスノードC:
12:32:30 # firewall-cmd --list-all
public (active)
target: DROP
icmp-block-inversion: no
interfaces: ens160
sources:
services: dhcpv6-client ssh
ports: 8443/tcp 8089/tcp 5701/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
注:私が投稿したものは次のとおりです。スタックオーバーフローしかし、まだ答えを受けていません。だからここに投稿します。
答え1
この問題は、私たちが使用するクラウドプロバイダーのNAT設計によって引き起こされます。フローティングIPを介して同じアベイラビリティーゾーン内のノード間の通信が制限され、接続が拒否されます。 DNSエイリアスは常にフローティングIPにマッピングされるため、ノードCの/ etc / hostsを更新してプライベートIPをDNSエイリアスにマッピングする必要があります。クラウド プロバイダーは、同じ AZ 内および AZ 間の通信にプライベート IP を使用できるようにします。