Multicast Ports: Node to Node Communications

Cluster nodes are configured to communicate with each other using JGroups, an open source toolkit that provides flexibility for protocol configuration.

JGroups provides rich open management features, along with multiple protocol support. JGroups supports multicast (UDP) and TCP-based communication protocols.

When JGroups is configured to use multicast (UDP), all cluster nodes communicate with each other on a specific IP address and port. The multicast ports are configured based on the installation base port. All clusters that are on the same subnet that is configured on the same base port send multicasting messages on the same multicast IP address and port.

To avoid this issue, each cluster on the same subnet must be configured on different base ports. Install your clusters on different port ranges or on different network segments with multicast forwarding restricted so that they do not interfere with each other. The default multicast address that is used is 239.255.166.17. This address is configurable, with a port range of 10 ports, starting with the multicast base port for the instance.

All nodes in the same cluster must be installed on the same multicast base port (the multicastBasePort property in the noapp.properties_platform_ifcresources_ext.in file). This port is computed from the system base (non-multicast) port, but can be configured separately in the noapp.properties_platform_ifcresources_ext.in file, to allow different nodes in a cluster to be installed at different (non-multicast) port ranges. Also, install all the nodes in the cluster in the same subnet.

For node to node communications, the properties are defined in jgroups_cluster.properties. The attributes that are used to define communications are:
  • property_string - default value is UDP.
  • distribution_property_string - default value is TCP. Never set this attribute to UDP.

If you want to change the communication for cluster multicast from the UDP protocol to TCP, you must change the value of the property_string property in the jgroups_cluster.properties.in file (after you back up the file), and then run the setupfiles command. You can change this right after the installation or after you start running the cluster. If you change the file after you start the cluster, you must stop all nodes of the cluster, change the value on each node, and then restart your cluster.

To change the communication for cluster multicast from the UDP protocol to TCP, use the following value for the property_string property in the jgroups_cluster.properties.in file:

property_string=TCP(start_port=any_available_port_number): 
TCPPING (initial_hosts=this_instance_host_ip[start_port_number],
theothernode_instance_host_ip[theothernode_start_port_number];port_range=2;
timeout=5000;num_initial_members=3;up_thread=true;down_thread=true):VERIFY_SUSPECT(timeout=1500):
pbcast.NAKACK(down_thread=true;up_thread=true;gc_lag=100;retransmit_timeout=3000):
pbcast.GMS(join_timeout=5000;join_retry_timeout=2000;shun=false;print_local_addr=
true;down_thread=true;up_thread=true)

For more information about UDP, TCP, and JGroups communications, refer to the Sterling B2B Integrator Clustering documentation.