Limit the Ephemeral Port Range that ROS uses to make XMLRPC Socket Connection
I am working on a project that will require two Robot Operating System (ROS) nodes running in separate containers on separate hosts on separate LANs to communicate over a router. The issue I am having is that ROS uses XMLRPC to open up a dynamic ephemeral port on the host to establish a socket connection between publisher & subscriber nodes. The Docker container that each of the ROS nodes run in has a local port range in the proc/sys/net/ipv4/ip_local_port_range from 32768-60999. I will need to bind the container port to the local host port in order for the two ROS nodes to communicate. Unfortunately, this will require that I bind 28231 ports at docker run command in order to ensure that ROS dynamically chooses an exposed and binded port to communicate over the network. I would like to limit the ephemeral port range that ROS uses to create XMLRPC connection between publisher & subscriber to allow for efficient use of ROS and docker, especially when quickly spinning up new containers for high availability. Below are what I have done thus far:
run docker swarm on each of the hosts to communicate over the docker overlay bridge in Dockerfile--EXPOSE 32768-33768 bind to host--docker run -it --rm -p 32768-33768:32768-33768
looking in the proc/sys/net/ipv4/ip_local_port_range the ephemeral port range is read only from 32768-60999
I am running ubuntu 14.04 LTS, Docker v1.12, ROS Indigo Base
Any help in limiting the Ephemeral Port Range that ROS uses to make XMLRPC Socket Connection between publisher & subscriber?