【问题标题】:Apache Geode behind NAT firewallNAT防火墙后面的Apache Geode
【发布时间】: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)。

图 1

图 2 - 从远程计算机到 Windows Defender 防火墙后面的 Geode 定位器的 Wireshark 捕获

图 3 - 从远程机器到 NAT 防火墙后的 Geode 定位器的 Wireshark 捕获

图 4

【问题讨论】:

标签: firewall geode


【解决方案1】:

您可能还需要将 jmx-manager-hostname-for-clients 属性设置为指向防火墙的 IP 地址。我认为 gfsh 连接时发生的情况是它实际上首先连接到定位器端口(10334),然后发现 JMX 管理器地址和端口并连接到该端口。

还有另一种让 gfsh 通过 http 连接的方法 - https://geode.apache.org/docs/guide/114/configuring/cluster_config/gfsh_remote.html。如果你不能让 JMX 工作,你可以试试这个。但是,它确实需要启动管理 http 服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 1970-01-01
    • 2017-05-07
    • 1970-01-01
    • 2011-04-17
    • 2023-04-01
    • 2015-08-27
    相关资源
    最近更新 更多