【发布时间】:2021-10-06 16:21:45
【问题描述】:
我们有一个 Geode 定位器和服务器在 NAT 防火墙后面的机器上运行。我已将防火墙的 IP 地址替换为 A.B.C.D,并将运行 Geode 定位器的机器的内部 IP 地址替换为 W.X.Y.Z。
以前运行 Geode 的机器只启用了 Windows Defender 防火墙,并设置了一个入站规则以允许来自我们列入白名单的远程 IP 地址的端口 10334、1099 和 40404 的流量。这种设置允许我们从那些被列入白名单的远程 IP 地址连接到 Geode 定位器。
但是,一旦我们将同一台机器放在 NAT 防火墙后面并配置了我们在 Windows 防火墙下设置的相同规则,我们就无法再从列入白名单的远程 IP 地址连接到定位器。我们列入白名单的 IP 地址用于防火墙外的机器。
例如,当我们尝试通过 gfsh 连接到定位器时,它给了我们一个 java 连接异常,如下图 1 所示。它似乎能够连接到在 10334 上运行的定位器,但由于端口 1099 上的 JMX 管理器使用运行 Geode 定位器的机器的内部 IP 地址。
在第二次尝试中,我们尝试为 JMX 管理器标签指定防火墙的 IP 地址,但得到的连接异常略有不同,如图 1 所示。
我们还从端口 1099 上的白名单 IP 地址运行了两次 Wireshark 捕获,其中一个 Geode 定位器仅位于图 2 中的 Window 防火墙后面,另一个位于图 3 中的 NAT 防火墙 (A.B.C.D) 后面。我们注意到在NAT 防火墙的捕获,它无法建立 RMI 流,我们认为这是 gfsh 上给出的异常的原因。
我们是否需要使用特定设置启动定位器才能使其正常工作,还是这与允许 NAT 防火墙上的 RMI 流量/流有关?请在图 4 中找到 Geode 定位器启动时的设置。在 Gemfire 属性文件中,我们将 server-bind-address 和 jmx-manager-bind-address 标签设置为机器的内部 IP 地址 (W.X.Y.Z)。
图 2 - 从远程计算机到 Windows Defender 防火墙后面的 Geode 定位器的 Wireshark 捕获
【问题讨论】:
-
this 和 setting the Geode RMI port 可能会有所帮助