I have one virual machine that created by VMWare 15 pro. I installed Ubuntu 18.x and RTI DDS 6.0.0. My VM network adapter setting is 'Bridged (Connected directly to the physical network). So my VM can get IP from DHCP server in my local area network. Now my question is my VM can not communicate with other machine that is real machine (ex: another windows machine that installed RTI DDS 6.0.0).
One real machine: Windows 10/RTI DDS 6.0.0/rtishapedemo publish some Shapes/IP is 192.168.10.50
My VM : Ubuntu 18.x (Even Windows Platform is same)/RTI DDS 6.0.0/rtishapedemo subscribe Shapes/IP is 192.168.10.99
By the way. Two machine can ping each other anytime. rtiadminconsole program can not find each other also.
-- Arthur.
It might be a firewall issue. Temporarily disable it on both to see if it makes a difference.
You may also want to use the <allow_interfaces_list> construct to limit communications to specific interface(s): https://community.rti.com/kb/how-do-i-restrict-rti-connext-use-only-subset-interfaces.
VirtualBox and Vmware install a number of virtual networks and that often causes configuration problems.
RTI DDS Ping is a good place to start with problems like this, it has a number of profiles that allow you to limit transports, etc.
Hi garyb,
Thank you for your reply.
It is not firewall issue. Virtual machine (ubuntu) didn't turn on the firewall and host machine (Windows) already turn off firewall.
DDS just can communicate with other real machine by using NDDS_DISCOVERY_PEERS environment variable. My question is machines (no mater what is VM or real machine) located in the same subnet. Their IP is 192.168.10.x. Why the VM need to set NDDS_DISCOVERY_PEERS to discovery same subnet host?
By the way. I set allow_interfaces_list in my Qos XML profile. It still didn't work.
Hi Arthur,
Did you resolve this issue coz I'm facing the same behaviour.
RTI Experts: please advise.
Thank you
Guy
When using Vmware or VirtualBox, it is usually a lot easier to get things running if you use a Bridged type Network Connection versus a NAT or Host connection. In that way, it gets it's own IP address just like any other physical machine.
The next step after disabling your firewalls is to tell Connext DDS what Interfaces to use and if it should use Multicast or Unicast. In general, this all happens behind the scenes and you don't have to worry about it ... well .... until it doesn't work as expected that is.
I use Vmware and VirtualBox extensively and I have run into problems like this also.
One common problem is Connext uses the first 4 network interfaces for its locators. The problem is, with Virtual Machine installed, these create a quite a few of their own interfaces, that combined with your normal set of interfaces, that initial limit of 4 can be exceeded really easy. To get around this, you can use the QoS Property dds.transport.UDPv4.builtin.parent.allow_interfaces_list to manually specify what Interface(s) to use. This is described here:
How do I restrict RTI Connext to use only a subset of interfaces? (this usually solves the problem)
Also, you can use the NDDS_INITIAL_PEERS file/environmental variable to explicitly list unicast locators where you can specify specific IP addresses.
Configuring the Peers List Used in Discovery
Give this a try and let us know how you make out.