Hi! I am trying to set up a distributed testing config when the controller host 
(Master-client) is on the main network and the remote (slave-server) is behind 
a NAT.
 
Just to share my half day experiments (‘cos i did not find a clear explanation 
on the Net) and ask a couple of questions:
 
1. First of all I dont use SSL and disable it on both types of hosts 
(master/slave)
in jmeter.properties: server.rmi.ssl.disable=true  //or jmeter [-n -t 
jmeter.jmx -RXXX] -Jserver.rmi.ssl.disable=true’.
 
2. On the remote (slave-server), which is behind NAT, RMI should be told its 
external IP (otherwise it publishes its internal NAT IP)
in jmeter-server: RMI_HOST_DEF=-Djava.rmi.server.hostname=EXTERNAL_IP
 
3. Ports part in jmeter.properties (setup):
- on the controller (master-client) we setup host:port of the remote 
(slave-server) in remote_hosts=
- on the controller (master-client) we set port client.rmi.localport=NNNN (will 
use NNNN++1 iptables block ingress)
- on the remote (slave-server) we set server.rmi.localport=MMMM
 
4. Comments on ports (interaction):
- «Main» port of the communication (which i dont change) by default is 1099 and 
used to listen by RMI registry on the remote (slave-server) host.
- After the first step of connection from controller_master_client:RANDOM to 
remote_slave_server:1099 the remote (slave-server) announces (tells) its port 
for farther communication MMMM (remote function calls, 
server.rmi.localport=MMMM). So farther calls do look like so: from 
controller_master_client:RANDOM to remote_slave_server:MMMM.
 
- So for the remote (slave-server) NAT there should be farwarded 
(published,exposed) only two ports 1099 and MMMM
 
- At this point the Test plan is already sent to the remote (slave-server) and 
executed
 
- Also, while communicating, the controller (master-client) announces (tells) 
its port for backward traffic (remote Jmeter Listeners, 
client.rmi.localport=NNNN).
So the traffic is: from remote_slave_server:RANDOM to 
controller_master_client:NNNN++1
 
(NNNN multiple ports starting from NNNN+1 and incrementing in my case those 
were two)
 
Issues and my ask for help:
 
According to docs the default 1099 port can be changed by the server_port in 
jmeter.properties.
- What is the role of server.rmi.port (on either hosts)?
* I can assume that it is used on the controller (master-client) side to 
override default port when it’s not specified in remote_hosts?
* Or server_port is internal port for communication with RMI service? And the 
server.rmi.port is the actual main external port for remote (slave-server)? 
(this statment does not agree with docs)
 
And the last: My CentOS firewalld did block the NNNN+1 port incoming 
connections untill I systemctl stop’ed it. Why? (CentOS 8 from the box)
 
Thanx!
 
--
Aki Shidary

Reply via email to