【问题标题】:Infinispan jgroups firewall portsInfinispan jgroups 防火墙端口
【发布时间】:2015-01-02 02:42:05
【问题描述】:

在使用 JGroups 和 Infinispan 等组件时,我需要在防火墙中打开哪些端口??

我的 JGroups 配置文件是:

    <config xmlns="urn:org:jgroups"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.4.xsd">
<UDP
         mcast_addr="${test.jgroups.udp.mcast_addr:239.255.0.1}"
         mcast_port="${test.jgroups.udp.mcast_port:46655}"
         bind_addr="${test.jgroups.udp.bind_addr:match-interface:eth0}"
         bind_port="${test.jgroups.bind.port:46656}"
         port_range="${test.jgroups.bind.port.range:20}"
         tos="8"
         ucast_recv_buf_size="25M"
         ucast_send_buf_size="1M"
         mcast_recv_buf_size="25M"
         mcast_send_buf_size="1M"

         loopback="true"
         max_bundle_size="64k"
         ip_ttl="${test.jgroups.udp.ip_ttl:2}"
         enable_diagnostics="false"
         bundler_type="old"

         thread_naming_pattern="pl"

         thread_pool.enabled="true"
         thread_pool.min_threads="3"
         thread_pool.max_threads="10"
         thread_pool.keep_alive_time="60000"
         thread_pool.queue_enabled="true"
         thread_pool.queue_max_size="10000"
         thread_pool.rejection_policy="Discard"
         oob_thread_pool.enabled="true"
         oob_thread_pool.min_threads="2"
         oob_thread_pool.max_threads="4"
         oob_thread_pool.keep_alive_time="60000"
         oob_thread_pool.queue_enabled="false"
         oob_thread_pool.queue_max_size="100"
         oob_thread_pool.rejection_policy="Discard"

         internal_thread_pool.enabled="true"
         internal_thread_pool.min_threads="1"
         internal_thread_pool.max_threads="4"
         internal_thread_pool.keep_alive_time="60000"
         internal_thread_pool.queue_enabled="true"
         internal_thread_pool.queue_max_size="10000"
         internal_thread_pool.rejection_policy="Discard"
         />

    <PING timeout="3000" num_initial_members="3"/>
    <MERGE2 max_interval="30000" min_interval="10000"/>
    <FD_SOCK bind_addr="${test.jgroups.udp.bind_addr:match-interface:eth0}" start_port="${test.jgroups.fd.sock.start.port:9780}" port_range="${test.jgroups.fd.sock.port.range:10}" />
    <FD_ALL timeout="15000" interval="3000" />
    <VERIFY_SUSPECT timeout="1500" bind_addr="${test.jgroups.udp.bind_addr:match-interface:eth0}"/>

    <pbcast.NAKACK2
        xmit_interval="1000"
        xmit_table_num_rows="100"
        xmit_table_msgs_per_row="10000"
        xmit_table_max_compaction_time="10000"
        max_msg_batch_size="100"/>
    <UNICAST3
        xmit_interval="500"
        xmit_table_num_rows="20"
        xmit_table_msgs_per_row="10000"
        xmit_table_max_compaction_time="10000"
        max_msg_batch_size="100"
        conn_expiry_timeout="0"/>

   <pbcast.STABLE stability_delay="500" desired_avg_gossip="5000" max_bytes="1m"/>
   <pbcast.GMS print_local_addr="false" join_timeout="3000" view_bundling="true"/>
   <tom.TOA/> <!-- the TOA is only needed for total order transactions-->

   <UFC max_credits="2m" min_threshold="0.40"/>
   <MFC max_credits="2m" min_threshold="0.40"/>
   <FRAG2 frag_size="30k"  />
   <RSVP timeout="60000" resend_interval="500" ack_on_delivery="false" />
</config>

现在,我在防火墙中打开了以下端口(链输入(策略接受))

ACCEPT     udp  --  anywhere             anywhere            multiport dports 46655:46676 /* 205 ipv4 */ state NEW

ACCEPT     tcp  --  anywhere             anywhere            multiport dports 9780:9790 /* 204 ipv4 */ state NEW

但在运行 infinispan 嵌入式缓存几分钟后,我仍然得到 ​​p>

2014-11-05 18:21:38.025 DEBUG org.jgroups.protocols.FD_ALL - haven't received a heartbeat from <hostname>-47289 for 15960 ms, adding it to suspect list

如果我关闭 iptables 就可以正常工作 提前致谢

【问题讨论】:

    标签: jboss firewall ports infinispan jgroups


    【解决方案1】:

    您是如何设置 iptables 规则的?我用过(在 Fedora 18 上)

    iptables -A INPUT -i lo -j ACCEPT
    iptables -A OUTPUT -o lo -j ACCEPT
    iptables -A INPUT  -p udp --dport 46655:46676  -j ACCEPT
    iptables -A OUTPUT -p udp --dport 46655:46676  -j ACCEPT
    iptables -A INPUT  -p tcp --dport 9780:9790    -j ACCEPT
    iptables -A OUTPUT -p tcp --dport 9780:9790    -j ACCEPT
    iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -j DROP
    

    这对我有用,在 2 个主机之间。

    【讨论】:

    • 感谢您的回复,我打开了与您在上面指定的相同的端口,并且我一直将它们打开,但仍然无法正常工作。在我的环境中,当两个刀片上的 eth0 接口都处于活动状态时,我在同一机箱上有两个刀片,并使用 Ip 绑定(配置模式 1),然后一切正常。当 eth0 在一个刀片上处于活动状态而 eth1 在另一个刀片上处于活动状态时,将创建集群并在一段时间后开始抛出“尚未收到心跳”异常,并且即使很长一段时间(小时)也没有进程离开集群跨度>
    【解决方案2】:

    在我的环境中,我在同一个机箱上有两个刀片,通过 Ip 绑定 (模式 1 配置)当 eth0 接口在两个刀片上都处于活动状态时 一切正常。当 eth0 在一个刀片上处于活动状态并且 eth1 在其他集群上处于活动状态,然后创建集群,一段时间后它 开始抛出“还没有收到心跳”异常并且没有进程 离开集群甚至很长一段时间(小时)

    JGroups 中的这个错误可能与您的问题有关:Don't receive heartbeat in Nic Teaming configuration after NIC switch

    解决方法:切换到 TCP。

    另见:

    【讨论】:

      【解决方案3】:

      又是什么模式1?我假设故障转移?不是负载均衡吗? 也许您需要使用 iptables -i INTF ,其中 INTF 是 eth0 或 eth1 ?我不是 iptables 方面的专家,但也许您需要定义逻辑名称,例如iptables -i 键0 ? 我建议使用 wireshark 查看收到了哪些数据包和/或在两个盒子上启用 iptables 中的 DROP 调试。

      【讨论】:

      • 模式 1=故障转移。发现我们正在阻止 IGMP 数据包。更新了防火墙以允许 IGMP。顺便说一下,使用 RHEL。但是,如上所述,我们仍然可以看到来自 FD_ALL 的心跳消息,但现在仅在加载期间。消息中的时间每 2 秒不断增加,但节点似乎没有离开集群。无论如何,我们都没有收到关于它离开集群的消息。如果根据上面的配置在几分钟内看到节点的心跳消息,是否应该从集群中删除它?当节点重新启动时,它无法加入集群。它与自身形成单独的集群。
      【解决方案4】:

      这是由于交换机上为 UDP 数据包定义的限制而丢弃 UDP 数据包...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-02
        • 2023-04-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-28
        • 2015-06-17
        相关资源
        最近更新 更多