Infinispan jgroups防火墙端口
当使用JGroups,使用Infinispan等组件时,需要在防火墙中打开哪些端口?Infinispan jgroups防火墙端口
我的JGroups CONFIGRATION文件是:
<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>
现在,我有如下的防火墙开放的端口(链INPUT(政策接受))
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嵌入式缓存数后分我得到
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 在此先感谢
你是如何设置你的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个主机之间。
什么是模式1呢?故障转移我认为?没有负载平衡的权利? 也许你需要使用iptables -i INTF,其中INTF是eth0或eth1?我不是iptables的专家,但也许你需要定义逻辑名,例如iptables -i bond0? 我建议使用wireshark来查看哪些数据包已被接收和/或在两个盒子上的iptables中启用DROP的调试。
模式1 =故障转移。发现我们阻止了IGMP数据包。更新防火墙以允许IGMP。顺便使用RHEL。但是,我们仍然看到如上所述的来自FD_ALL的心跳消息,但现在只在加载期间。消息中的时间每2秒持续增加,但节点似乎不会离开群集。我们没有收到任何关于它离开群集的消息。根据上面的配置,如果在节点上看到心跳消息的分钟数,是否应该从群集中删除?当节点重新启动时,它不能加入群集。它与自己形成独立的群集。 – 2014-11-13 16:58:39
有什么建议吗? – 2014-11-13 16:59:30
在我的环境,我有叶接合 相同的底盘上的两个叶片(模式1构造)时eth0接口是在两个刀片活性然后 一切工作完全。当eth0的是活跃在一个刀片和eth1 是活跃在其他群集,然后获得创建和一段时间后它 开始扔“还没有收到心跳”异常并没有进程 离开集群的时间甚至更长周期(小时)
有一个在JGroups的这个bug可以与您的问题有关:Don't receive heartbeat in Nic Teaming configuration after NIC switch
解决方法:切换到TCP。
参见:
这是发生由于开关滴速因为对开关的UDP数据包定义的限制UDP包...
感谢您的回复,我打开上面指定的相同端口,并且我一直打开它,但它仍然无法工作。在我的环境中,当两个刀片上的eth0接口处于活动状态时,我在同一个机箱上安装了带有Ip绑定(已配置模式1)的两个刀片,然后一切正常。当eth0的是活跃在一个刀片和eth1是活跃在其他群集,然后获得创建和一段时间后它开始抛出“没有收到心跳”异常并没有进程离开集群甚至很长一段时间(小时) – 2014-11-06 16:58:52