Restrict ROS 2 to Localhost
I'm wondering if anybody has a method to restrict ROS 2 to use only the localhost for communication? Maybe there is (or at least could be) an environment variable to control this?
While setting ROS_DOMAIN_ID
works fine to prevent collisions, it would be nice if this did not have to be set manually for cases where we know that the communication is only going to be within the machine.
I'm confused what you are trying to achieve? If you want to use intra-process communication have a look at this PR https://github.com/ros2/rclcpp/pull/778 . You can set nodes to use intra-process communication by passing rclcpp::NodeOptions().use_intra_process_comms(true) into the node. I.e.
I believe it is also possible to set intra-process communication at a subscriber or publisher level, but I haven't tried this yet.
Right now it does not support transient(-local) durability so you may have to change your QoS profile to VOLATILE for durability.
Sorry, @MCornelis, I think I could have been more clear in my wording... I'm not referring to intra-process communication, I'm more referring to restricting DDS discovery to only the local subnet.